🔥
Hono Takibi 0.6.2 🔥
Hono Takibi 0.6.2
npm
GitHub
Hono Takibi 0.6.2の変更点
-
コマンドライン引数から、変数名の形式を指定できるようにしました。
-
passthroughの生成をサポートしました。
-
スキーマと型の出力形式が変わりました。
-
その他
変数名の形式
0.6.2以前では、hono-takibi.json
で指定して、カスタマイズすることができました。
{
"schema": {
"name": "PascalCase",
"export": true
},
"type": {
"name": "PascalCase",
"export": true
}
}
生成される型とスキーマ。
import { createRoute, z } from '@hono/zod-openapi'
const ASchema = z.object({ id: z.string(), name: z.string() }).openapi('A')
const BSchema = z.object({ count: z.string(), tags: z.string().optional() }).openapi('B')
const CSchema = z.object({ active: z.string(), note: z.string().optional() }).openapi('C')
export const schemas = {
ASchema,
BSchema,
CSchema,
}
export type A = z.infer<typeof ASchema>
export type B = z.infer<typeof BSchema>
export type C = z.infer<typeof CSchema>
...
0.6.2
以降では、コマンドライン引数でも指定できます。
⚠️ 注意点
コマンドライン引数を利用する際は、必ず
0.6.2
以降を指定してください。
PascalCase
指定
pnpm hono-takibi openapi.yaml -o route.ts --export-type --export-schema --naming-case-type PascalCase --naming-case-schema PascalCase
import { createRoute, z } from '@hono/zod-openapi'
export const ASchema = z.object({ id: z.string(), name: z.string() }).openapi('A')
export type A = z.infer<typeof ASchema>
export const BSchema = z.object({ count: z.string(), tags: z.string().optional() }).openapi('B')
export type B = z.infer<typeof BSchema>
export const CSchema = z.object({ active: z.string(), note: z.string().optional() }).openapi('C')
export type C = z.infer<typeof CSchema>
...
camelCase
指定
pnpm hono-takibi openapi.yaml -o route.ts --export-type --export-schema --naming-case-type camelCase --naming-case-schema camelCase
import { createRoute, z } from '@hono/zod-openapi'
export const aSchema = z.object({ id: z.string(), name: z.string() }).openapi('A')
export type a = z.infer<typeof aSchema>
export const bSchema = z.object({ count: z.string(), tags: z.string().optional() }).openapi('B')
export type b = z.infer<typeof bSchema>
export const cSchema = z.object({ active: z.string(), note: z.string().optional() }).openapi('C')
export type c = z.infer<typeof cSchema>
...
また、スキーマは個別にexport
し、それに続けて型を出力するように変更しています。
passthrough の対応
additionalProperties
をtrue
にすると、passthroughを生成できるようになりました。
おわりに
Hono Takibi
0.6.2の変更点を記事にまとめました。今後も、メンテナンスを継続し、精度が高いライブラリを目指します。
Discussion