コンテンツにスキップ

Introduction

mysql-to-zodとは何か?

mysql-to-zodは、MySQLのテーブル定義から、Zodの型定義を生成するツールです。

使い方

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