36 行
1.1 KiB
JavaScript
36 行
1.1 KiB
JavaScript
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);
|
|
});
|