UNPKG

@xpresser/events-server

Version:

Xpresser's Official Events Server Plugin.

86 lines (85 loc) 2.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadEventServerConfig = exports.md5 = exports.now = void 0; const moment_1 = __importDefault(require("moment")); const exports_1 = require("object-collection/exports"); const abolish_1 = require("abolish"); const crypto = require("crypto"); /** * Get current date formatted. * @param date */ function now(date) { return (0, moment_1.default)(date).format("D/MM/yyyy|HH:mm:ss.SSSS"); } exports.now = now; /** * Create Md5 hash function * @param str */ function md5(str) { return crypto.createHash("md5").update(str).digest("hex"); } exports.md5 = md5; /** * load events server config * @param $ * @param omitSecretKey */ function loadEventServerConfig($, omitSecretKey = false) { // Get EventsServer Config let eventsServerConfig = $.config.get("eventsServer"); // Return error and stop process if eventsServer is not defined. if (!eventsServerConfig) return [new Error("Config: {eventsServer} is required!")]; if ($.engineData.has("eventsServerConfigLoaded")) { return [undefined, eventsServerConfig]; } eventsServerConfig = (0, exports_1.Obj)({ server: "localhost", port: 7000, keepAlive: false, logs: { args: false }, dbPaths: { server: "./storage/events-server/serverDB.json", access: "./storage/events-server/accessDB.json", communicator: "./storage/events-server/communicatorDB.json" }, controlPanel: { enabled: true, password: "password", routePath: "/__es__" } }) .merge(eventsServerConfig) .all(); const validator = abolish_1.Abolish.compileObject({ secretKey: [ "required|typeof:string", { $name: "{eventsServer.secretKey}", $skip: omitSecretKey } ], port: ["required|typeof:number", { $name: "{eventsServer.port}" }], dbPaths: { required: true, typeof: "object", $name: "{eventsServer.dbPaths}", object: abolish_1.Abolish.compileObject({ server: ["required|typeof:string", { $name: "{eventsServer.dbPaths.server}" }], access: ["required|typeof:string", { $name: "{eventsServer.dbPaths.access}" }], communicator: [ "required|typeof:string", { $name: "{eventsServer.dbPaths.communicator}" } ] }) } }); const [err] = validator.validateObject(eventsServerConfig); // Set config to merged config. $.engineData.set("eventsServerConfigLoaded", true); $.config.set("eventsServer", eventsServerConfig); return [err, eventsServerConfig]; } exports.loadEventServerConfig = loadEventServerConfig;