UNPKG

gamelet-cli

Version:

Download project from code.gamelet.com, edit/test in vscode and sync back to server.

113 lines 9.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.initServer = void 0; const express_1 = __importDefault(require("express")); const http_1 = __importDefault(require("http")); const socket_io_1 = __importDefault(require("socket.io")); const cors_1 = __importDefault(require("cors")); const UserManager_1 = require("./managers/UserManager"); const Database_1 = require("./managers/Database"); const MonitorManager_1 = require("./managers/MonitorManager"); // let app = express_1.default(); let packageRoot = __dirname + '/../../..'; let res = packageRoot + '/assets/server'; app.use(express_1.default.static(res + '/static')); app.use(express_1.default.json()); app.use(express_1.default.urlencoded({ extended: true })); app.set('views', res + '/views'); app.set('view engine', 'twig'); app.set('twig options', { strict_variables: false }); app.get('/', (_req, res) => { res.render('index.twig'); }); app.get('/monitor', (_req, res) => { res.render('monitor.twig'); }); function getServerTimeCode(add = 0) { return Math.floor((Date.now() + add) / 1000).toString(36); } function createServer(clientCode, port) { app.get('/client', cors_1.default(), (_req, res) => { res.json({ client: { code: clientCode, }, time: Math.floor(Date.now() / 1000), }); }); app.get('/login', cors_1.default(), (_req, res) => { let user = UserManager_1.userManager.login(clientCode, false); res.json({ user: user, }); }); app.get('/timecode', cors_1.default(), (_req, res) => { res.send(Math.floor(Date.now() / 1000).toString(36)); }); app.get('/requestGuestToken', cors_1.default(), (_req, res) => { let user = UserManager_1.userManager.login(clientCode, true); res.json({ user: user, ip: user.ip, token: user.token, }); }); app.post('/jsonrpc/cmd', cors_1.default(), (_req, res) => { let command = _req.body.command; let user = UserManager_1.userManager.getByToken(_req.body.token); Database_1.database.executeCommand(user, command) .then(result => { res.json({ result: result, time: getServerTimeCode(), }); }) .catch(err => { res.status(400); res.send(err); MonitorManager_1.monitorManager.error(clientCode, 'jsonrpc/cmd', err); }); }); app.post('/jsonrpc/cmds', cors_1.default(), (_req, res) => { let commands = _req.body.commands; let user = UserManager_1.userManager.getByToken(_req.body.token); return Promise.all(commands.map(command => Database_1.database.executeCommand(user, command))) .then(results => { res.json({ results: results, time: getServerTimeCode(), }); }) .catch(err => { res.status(400); res.send(err); MonitorManager_1.monitorManager.error(clientCode, 'jsonrpc/cmd', err); }); }); return new Promise(resolve => { let server = http_1.default.createServer(app); server.listen(port, () => resolve(server)); }); } function initServer(clientCode, port) { return createServer(clientCode, port) .then(server => { const io = socket_io_1.default(server); const gameIO = io.of('/game'); return { app: app, server: server, io: io, gameIO: gameIO, port: port, }; }); } exports.initServer = initServer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0RBQThCO0FBQzlCLGdEQUF3QjtBQUN4QiwwREFBaUM7QUFDakMsZ0RBQXdCO0FBQ3hCLHdEQUFxRDtBQUNyRCxrREFBK0M7QUFDL0MsOERBQTJEO0FBUzNELEVBQUU7QUFDRixJQUFJLEdBQUcsR0FBRyxpQkFBTyxFQUFFLENBQUM7QUFDcEIsSUFBSSxXQUFXLEdBQUcsU0FBUyxHQUFHLFdBQVcsQ0FBQztBQUMxQyxJQUFJLEdBQUcsR0FBRyxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7QUFFekMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxpQkFBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUN6QyxHQUFHLENBQUMsR0FBRyxDQUFDLGlCQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN4QixHQUFHLENBQUMsR0FBRyxDQUFDLGlCQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRCxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUM7QUFDakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUU7SUFDcEIsZ0JBQWdCLEVBQUUsS0FBSztDQUMxQixDQUFDLENBQUM7QUFFSCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtJQUN2QixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDO0FBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDOUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQztBQUVILFNBQVMsaUJBQWlCLENBQUMsTUFBYyxDQUFDO0lBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUdELFNBQVMsWUFBWSxDQUFDLFVBQWtCLEVBQUUsSUFBWTtJQUNsRCxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxjQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ0wsTUFBTSxFQUFFO2dCQUNKLElBQUksRUFBRSxVQUFVO2FBQ25CO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3BDLElBQUksSUFBSSxHQUFHLHlCQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ0wsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLGNBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3ZDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLGNBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2hELElBQUksSUFBSSxHQUFHLHlCQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDSCxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMzQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNoQyxJQUFJLElBQUksR0FBRyx5QkFBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELG1CQUFRLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDTCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsK0JBQWMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQTtJQUVWLENBQUMsQ0FBQyxDQUFDO0lBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsY0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDNUMsSUFBSSxRQUFRLEdBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekMsSUFBSSxJQUFJLEdBQUcseUJBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFRLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNaLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ0wsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLElBQUksRUFBRSxpQkFBaUIsRUFBRTthQUM1QixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCwrQkFBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksT0FBTyxDQUFjLE9BQU8sQ0FBQyxFQUFFO1FBQ3RDLElBQUksTUFBTSxHQUFHLGNBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLFVBQWtCLEVBQUUsSUFBWTtJQUN2RCxPQUFPLFlBQVksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO1NBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNYLE1BQU0sRUFBRSxHQUFHLG1CQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixPQUFPO1lBQ0gsR0FBRyxFQUFFLEdBQUc7WUFDUixNQUFNLEVBQUUsTUFBTTtZQUNkLEVBQUUsRUFBRSxFQUFFO1lBQ04sTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQTtBQUNWLENBQUM7QUFiRCxnQ0FhQyJ9