Use a custom codec from your own package
Print a codec from your own package, such as myCodec.uint64(), and add its import to the generated file.
To print int64 fields as myCodec.uint64() from your own package, override the bigint printer node and call this.import(...) in it. The generated file gets the import, and Kubb keeps the package path as written.
kubb.config.ts
import { defineConfig } from 'kubb/config'import { ast } from 'kubb/kit'import { pluginZod } from '@kubb/plugin-zod'export default defineConfig({ input: './petStore.yaml', output: { path: './src/gen', clean: true }, plugins: [ pluginZod({ output: { path: 'zod', mode: 'directory' }, printer: { nodes: { bigint() { this.import(ast.factory.createImport({ name: ['myCodec'], path: 'my-codec/zod' })) return 'myCodec.uint64()' }, }, }, }), ],})Output example
src/gen/zod/counterSchema.ts
import * as z from 'zod'import { myCodec } from 'my-codec/zod'export const counterSchema = z.object({ total: myCodec.uint64(),})TIP
Leave root unset on the import. With root set, Kubb rewrites the path as a relative path such as ../../../my-codec/zod.