import fs from "node:fs"; import path from "node:path"; import Ajv from "ajv"; import standaloneCode from "ajv/dist/standalone/index.js"; /* eslint-disable node/no-sync */ // Provide an empty file for message_core to load fs.writeFileSync(path.join(import.meta.dirname, "../dist/node/src/data/message_validate.js"), "export default {};"); const { Message } = await import("../dist/node/src/data/messages_core.js"); const ajv = new Ajv({ allowUnionTypes: true, strict: "log", strictTuples: false, verbose: true, code: { source: true, esm: true, }, }); const validate = ajv.compile(Message.jsonSchema); let moduleCode = standaloneCode(ajv, validate); function write(output) { fs.writeFileSync( path.join(import.meta.dirname, output), `// generated by scripts/compile_validator.js\n// @ts-nocheck\n/* eslint-disable */\n${moduleCode}` ); } write("../dist/node/src/data/message_validate.js"); write("../src/data/message_validate.js");