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にてお願いします。