@xpresser/events-server
Version:
Xpresser's Official Events Server Plugin.
61 lines (60 loc) • 2.37 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = void 0;
const EventsServerCommunicator_1 = __importDefault(require("./src/EventsServerCommunicator"));
const functions_1 = require("./src/functions");
/**
* Xpresser plugin function.
* @param plugin
* @param $
*/
function run(plugin, $) {
if ($.isNativeCliCommand())
return;
function startEventServerCommunicator(connect = true) {
return new Promise((resolve, reject) => {
const isEventsServer = $.engineData.get("isEventsServer", false);
if (!isEventsServer) {
const [err, eventsServerConfig] = (0, functions_1.loadEventServerConfig)($);
if (err)
return $.logErrorAndExit(`Config: ${err.message}`);
// Get Secret key
const { secretKey, controlPanel, communicatorName } = eventsServerConfig;
// remove secret key.
$.config.unset("eventsServer.secretKey");
// Initialize event server.
$.eServer = new EventsServerCommunicator_1.default(secretKey, $, communicatorName);
if (connect)
$.eServer.connect(resolve, reject);
else {
resolve();
}
// Set control panel.
if (!$.options.isConsole && controlPanel.enabled) {
$.on.expressInit((next) => {
// Start Cookie parser
const cookieParser = require("cookie-parser");
// Use cookie parser on routePath
$.app.use(controlPanel.routePath, cookieParser());
return next();
});
}
}
});
}
$.ifConsole(() => {
// Set EventServerCommunicator starter function.
$.startEServerCommunicator = startEventServerCommunicator;
}, () => {
$.on.boot((next) => {
// Start EventServer Communicator
startEventServerCommunicator().catch(console.log);
// Continue server boot
next();
});
});
}
exports.run = run;