ModelFile.ts•878 B
import * as ts from '@prisma/ts-builders'
import { GenerateContext } from '../GenerateContext'
import { Model } from '../Model'
export function createModelFile(context: GenerateContext, modelName: string): string {
  const jsDocHeader = `/*
 * This file exports the \`${modelName}\` model and its related types.
 *
 * 🟢 You can import this file directly.
 */
`
  const imports = [
    ts.moduleImport(context.runtimeImport).asNamespace('runtime').typeOnly(),
    ts.moduleImport(context.importFileName(`../enums`)).asNamespace('$Enums').typeOnly(),
    ts.moduleImport(context.importFileName(`../internal/prismaNamespace`)).asNamespace('Prisma').typeOnly(),
  ]
  const importsString = imports.map((i) => ts.stringify(i)).join('\n')
  const model = context.dmmf.typeAndModelMap[modelName]
  return jsDocHeader + importsString + '\n' + new Model(model, context).toTS()
}