文件
hyb-oa/server/src/scripts/check-prisma-client-generated.js
T

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);
});