Introduction
mysql-to-zodとは何か?
mysql-to-zodは、MySQLのテーブル定義から、Zodの型定義を生成するツールです。
使い方
npx mysql-to-zod mysql://user:password@localhost:3306/dbname
上記コマンドを実行すると、./mysqlToZod/schema.ts
にzodの型定義が生成されます。
例
DB:my_todoに以下のようなテーブル定義があったとします。
CREATE TABLE todo ( id INT NOT NULL AUTO_INCREMENT, task VARCHAR(255) NOT NULL, completed BOOLEAN NOT NULL DEFAULT false, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id));
上記のテーブル定義から、以下のようなzodの型定義が生成されます。
import { z } from "zod";
export const todoSchema = z.object({ id: z.number(), task: z.string(), completed: z.number(), created_at: z.date().nullish(), updated_at: z.date().nullish(),});export type Todo = z.infer<typeof todoSchema>;
以上が基本的な使用方法となります。
多くのケースでは上記だけで良いですが、カスタマイズすることができるオプションもあります。
例: 変数名をtodoSchema
ではなくTODO_SCHEMA
にしたい、など。
詳しいオプションについては、次ページよりご覧ください。
お知らせ
使用方法に関する質問や改善点などありましたら、Disucussionsにてお願いします。