Skip to content

Instantly share code, notes, and snippets.

@mizchi
mizchi / jsx_pure_adder.ts
Created September 12, 2023 08:29
Add pure annotation to jsx
import ts from "typescript";
import { cloneNode } from "ts-clone-node";
import { expect, test } from "vitest";
test("jsx pure adder", async (t) => {
const transformer: ts.TransformerFactory<any> = (context) => {
return (sourceFile) => {
const visitor: ts.Visitor = (node) => {
if (ts.isCallExpression(node)) {
if (ts.isIdentifier(node.expression) && (node.expression.text === "_jsx" || node.expression.text === "_jsxs")) {
@mizchi
mizchi / Root.tsx
Last active September 6, 2023 11:15
Minimum Vite SSR (dev)
// src/Root.tsx
import {useState} from "react";
export default function Root() {
const [count, setCount] = useState(0);
return <div>
<h1>App</h1>
<button type="button" onClick={() => setCount(n => n+1)}>{count}</button>
</div>
}
import { Kysely } from "kysely";
import type { Adapter, AdapterSession, AdapterUser } from "@auth/core/adapters";
import type { Generated, GeneratedAlways } from "kysely";
export interface Database {
User: {
id: Generated<string>;
name: string | null;
email: string;
@mizchi
mizchi / result
Last active September 4, 2023 12:35
$ cat test.sql
select 1;
-- comment;
select 2;⏎
$ env WRANGLER_LOG=debug pnpm wrangler d1 execute mydb2 --file test.sql --batch-size 1
--------------------
🚧 D1 is currently in open alpha and is not recommended for production data and traffic
🚧 Please report any bugs to https://github.com/cloudflare/workers-sdk/issues/new/choose
🚧 To request features, visit https://community.cloudflare.com/c/developers/d1
import { Miniflare } from "miniflare";
const mf = new Miniflare({
modules: true,
script: `export default {
async fetch(req, env, ctx) {
return new Response("ok");
}
}
`,
d1Persist: true,
@mizchi
mizchi / cloudflareLocal.ts
Created September 1, 2023 17:18
Cloudflare env emulator
/**
* cloudflare local emulator
*/
import { parse } from "@iarna/toml";
type WranglerConfig = {
d1_databases?: Array<{
database_name: string;
database_id: string;
binding: string;
@mizchi
mizchi / db.ts
Created September 1, 2023 16:34
Create kysely client on qwik dev
import {
CompiledQuery,
DatabaseConnection,
DatabaseIntrospector,
Dialect,
Driver,
Kysely,
SqliteAdapter,
SqliteIntrospector,
SqliteQueryCompiler,
import * as vscode from "vscode";
import { type CodeBlock, extractCodeBlocks } from "./markdown";
const MDXV_SCHEMA = "mdxv";
type CodeBlockWithMetadata = CodeBlock & {
vFileName: string;
vContent: string;
};
@mizchi
mizchi / _README.md
Last active August 16, 2023 07:02
Delegate routing from qwik-city to react-router

react-router in qwik

CAUTION: No data loader

  • routing under / by qwik-city
  • routing under /react-routed/* by react-router
  • call qwik-city routing action in /react-routed/*

import * as qwikOptimizer from "@builder.io/qwik/optimizer";
const optimizer = await qwikOptimizer.createOptimizer();
const code = `
export default () => {
return (
<>
<h1>Hello</h1>
</>
);