Prisma Repositoryコード生成器

schema.prismaのmodel定義を貼り付けるだけで、Repositoryインターフェース定義・PrismaClientを利用した実装クラス・Expressコントローラーでの利用例(依存性注入パターン)の3点セットをブラウザ内で自動生成するツールです。クラス命名ルールやasync/await、戻り値の型付与を切り替えられます。

入力したスキーマはブラウザ内のみで処理され、外部サーバーへ送信されることはありません。
生成オプション
クラス命名ルール

使い方

  1. 入力欄にschema.prismaのmodel定義を貼り付けます。「サンプルモデルを読み込む」で動作を確認することもできます。
  2. 複数のモデルが含まれる場合は「対象モデル」のドロップダウンから生成対象を選択します。
  3. 「生成オプション」でクラス命名ルール(Iプレフィックス/Interfaceサフィックス)、async/awaitの使用、戻り値の型付与を切り替えます。
  4. 「①Repositoryインターフェース」「②PrismaClient実装クラス」「③Express利用例」のタブを切り替えながら、それぞれのコードを確認・コピーできます。

このツールについて

Prisma Repositoryコード生成器は、schema.prismaに書かれたmodel定義から、データアクセス層でよく使われるRepositoryパターンのコード一式を自動生成するツールです。新しいモデルを追加するたびに手作業でCRUD処理を書く手間を省き、チームでのコーディング規約の統一にも役立ちます。

生成されるインターフェース・実装クラスは、Prismaが自動生成する`Prisma.XxxCreateInput`や`Prisma.XxxUpdateInput`といった型をそのまま利用するため、スキーマの変更にも追従しやすく、実際のプロジェクトにそのまま組み込みやすい形になっています。PrismaClientはコンストラクタ経由で注入する依存性注入(DI)パターンを採用しており、テスト時にはモック実装に差し替えることができます。

モデルの主キー(`@id`が付与されたフィールド、なければ`id`という名前のフィールド)を自動的に検出し、`findUnique`や`update`・`delete`の引数の型に反映します。Express用のコントローラー例では、Repositoryをrouter生成関数に引数として渡せるようにしており、単体テスト時にモックRepositoryへ差し替えやすい設計になっています。

「model User {」「id Int @id」「name String」「}」を改行して入力し、Iプレフィックスと戻り値の型付与を選ぶと、IUserRepositoryに findUnique(id: number): Promise<User | null> が生成されます。主キーをStringへ変えれば引数もstringへ変わります。

PrismaClientを受け取る実装は、生成時にDBへ問い合わせるのではなく、プロジェクトに組み込むコードです。複合主キーなど単一のid引数に収まらない設計は出力を調整してください。入力スキーマの解析と3種類のコード生成はブラウザ内で行います。

よくある質問

生成されたコードはそのままプロジェクトで使えますか?

`@prisma/client`が生成済みであることが前提のコード例です。インポートパスやルート構成を調整してください。特にInt・BigInt主キーではURLパラメーターを明示的に変換・検証する必要があり、型アサーションだけでは値は変換されません。

複数のモデルをまとめて生成できますか?

入力欄には複数のmodel定義を貼り付けられますが、コードは一度に1モデル分ずつ生成されます。複数のモデルが検出された場合は「対象モデル」のドロップダウンで生成したいモデルを切り替えてください。

リレーション(他モデルへの参照)フィールドはどう扱われますか?

生成される`create`・`update`メソッドの引数にはPrismaが自動生成する`Prisma.XxxCreateInput`・`Prisma.XxxUpdateInput`型をそのまま使用しているため、ネストしたリレーションの作成・更新も型定義上サポートされます。個別のフィールドを手動で組み立てる必要はありません。

入力したスキーマはサーバーに送信されますか?

送信されません。スキーマの解析とコード生成は、すべてブラウザ内のJavaScriptで完結します。