/* eslint-disable @typescript-eslint/no-var-requires */ const fs = require('fs'); const path = require('path'); const { getDMMF, getSchemaPath } = require('@prisma/internals'); async function generateTypes() { const schemaPath = await getSchemaPath(); const dmmf = await getDMMF({ datamodel: fs.readFileSync(schemaPath, 'utf-8'), }); let content = '// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.\n'; content += "import { Prisma } from '@prisma/client';\n\n"; content += 'export type ModelSelectMap = {\n'; for (const model of dmmf.datamodel.models) { content += ` ${model.name}: Prisma.${model.name}Select;\n`; } content += '};\n'; fs.writeFileSync( path.join(__dirname, '../src/utils/prisma-select/model-select-map.ts'), content, ); } generateTypes().catch((e) => { console.error(e); process.exit(1); });