Prisma Repositoryコード生成器
schema.prismaのmodel定義を貼り付けるだけで、Repositoryインターフェース定義・PrismaClientを利用した実装クラス・Expressコントローラーでの利用例(依存性注入パターン)の3点セットをブラウザ内で自動生成するツールです。クラス命名ルールやasync/await、戻り値の型付与を切り替えられます。
使い方
- 入力欄にschema.prismaのmodel定義を貼り付けます。「サンプルモデルを読み込む」で動作を確認することもできます。
- 複数のモデルが含まれる場合は「対象モデル」のドロップダウンから生成対象を選択します。
- 「生成オプション」でクラス命名ルール(Iプレフィックス/Interfaceサフィックス)、async/awaitの使用、戻り値の型付与を切り替えます。
- 「①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で完結します。