mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 15:04:52 +09:00
Pre-compile Message validator
Use a script to pre-compile the validator for the Message class to reduce the loading time for ctl by about 40ms.
This commit is contained in:
1 parent
ae542e9501
commit
5eb91be6fb
5 files changed
+36
-2
No files matched your search
@@ -0,0 +1 @@
|
||||
src/data/message_validate.js
|
||||
Whitespace-only changes.
@@ -4,6 +4,10 @@
|
||||
"version": "2.0.0-alpha.13",
|
||||
"repository": "https://github.com/clusterio/clusterio",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"prepare": "pnpm run compile_validator",
|
||||
"compile_validator": "node scripts/compile_validator.js"
|
||||
},
|
||||
"browser": "browser.js",
|
||||
"keywords": [
|
||||
"factorio"
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
"use strict";
|
||||
const fs = require("fs-extra");
|
||||
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.outputFileSync(path.join(__dirname, "../src/data/message_validate.js"), "");
|
||||
|
||||
const { Message } = require("../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);
|
||||
fs.outputFileSync(
|
||||
path.join(__dirname, "../src/data/message_validate.js"),
|
||||
`// generated by scripts/compile_validator.js\n/* eslint-disable */\n${moduleCode}`
|
||||
);
|
||||
@@ -1,5 +1,6 @@
|
||||
// Note: Run compile_validator script after making changes to this file.
|
||||
"use strict";
|
||||
const libSchema = require("../schema");
|
||||
const message_validate = require("./message_validate.js");
|
||||
|
||||
|
||||
/** @memberof module:lib */
|
||||
@@ -851,7 +852,7 @@ Message.jsonSchema = {
|
||||
MessageDisconnect.jsonSchema,
|
||||
],
|
||||
};
|
||||
Message.validate = libSchema.compile(Message.jsonSchema);
|
||||
Message.validate = message_validate;
|
||||
|
||||
/** @memberof module:lib */
|
||||
class PingRequest {
|
||||
|
||||
Reference in new issue
Block a user