JavaScriptNode.jsTypeScriptprisma

Prisma でモデル名を取得したい

はじめに

Prisma Client で Model 名(文字列)を使いたい場面に遭遇した。 Prisma は node_modules/.prisma/client/index.d.ts に型定義が存在する

Model 名を取得する

以下に記載するような schema.prisma が定義されているとする。

model User {
  id   String  @id
  name String
}

npx prisma generate 等何でも良いので node_modules/.prisma/client/index.d.ts を生成する。 下記のように記述すれば ModelName を取得できる。

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

prisma.user.name;
// -> User

全件欲しい場合は、以下のように記述すれば良い。

import { Prisma } from '@prisma/client';

Prisma.ModelName;

Ref