"use strict"; const fs = require("node:fs"); const path = require("path"); const Ajv = require("ajv"); const standaloneCode = require("ajv/dist/standalone").default; /* eslint-disable node/no-sync */ // Provide an empty file for message_core to load fs.writeFileSync(path.join(__dirname, "../dist/node/src/data/message_validate.js"), ""); const { Message } = require("../dist/node/src/data/messages_core"); const ajv = new Ajv({ allowUnionTypes: true, strict: "log", strictTuples: false, verbose: true, code: { source: true, }, }); const validate = ajv.compile(Message.jsonSchema); let moduleCode = standaloneCode(ajv, validate); function write(output) { fs.writeFileSync( path.join(__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");