Plugin to generate TypeScript row types and optional Zod schemas from your chkit schema definitions.
Part of the chkit monorepo. This plugin extends the chkit CLI with TypeScript code generation.
bun add -d @chkit/plugin-codegen zodzod is a peer dependency (^4.0.0): the plugin uses it at runtime, and any
generated Zod schemas (emitZod: true) import zod from your project. Install
the same zod your project already uses to avoid duplicate copies.
Register the plugin in your config:
// clickhouse.config.ts
import { defineConfig } from '@chkit/core'
import { codegen } from '@chkit/plugin-codegen'
export default defineConfig({
schema: './src/db/schema/**/*.ts',
outDir: './chkit',
plugins: [
codegen({
outFile: './src/generated/chkit-types.ts',
emitZod: false,
emitIngest: false,
}),
],
clickhouse: {
url: process.env.CLICKHOUSE_URL ?? 'http://localhost:8123',
},
})Then run:
bunx chkit codegenCodegen also runs automatically after chkit generate when runOnGenerate is enabled (default).
When emitIngest is enabled, generated ingest helpers gzip-compress request bodies by default. Pass { compressed: false } as the third argument to disable compression for a specific insert.
See the chkit documentation.