const fs = require("node:fs"); const path = require("node:path"); function readSchema() { const schemaPath = path.resolve(__dirname, "../../prisma/schema.prisma"); return fs.readFileSync(schemaPath, "utf8"); } function assertCondition(condition, message) { if (!condition) { throw new Error(message); } } async function main() { const schema = readSchema(); assertCondition( /enum\s+OcrProvider\s*\{[\s\S]*\bmock\b[\s\S]*\}/m.test(schema), "schema.prisma 中 OcrProvider 未包含 mock,请先确认 OCR mock 迁移是否存在。", ); const prismaClient = require("@prisma/client"); const generatedOcrProvider = prismaClient.$Enums?.OcrProvider ?? prismaClient.OcrProvider ?? {}; assertCondition( generatedOcrProvider.mock === "mock", "Prisma Client 生成物缺少 OcrProvider.mock,请在 server/ 下执行 npm run prisma:generate。", ); process.stdout.write("[prisma-generated-check] OcrProvider.mock is available\n"); } main().catch((error) => { process.stderr.write(`[prisma-generated-check][FAIL] ${error?.message ?? error}\n`); process.exit(1); });