UNPKG

@scefira/dfw-nodejs

Version:
106 lines 4.04 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const DatabaseManager_1 = __importDefault(require("../modules/DatabaseManager")); const SessionManager_1 = __importDefault(require("../modules/SessionManager")); const APIManager_1 = __importDefault(require("../modules/APIManager")); const SecurityManager_1 = __importDefault(require("../modules/SecurityManager")); const lodash_1 = __importDefault(require("lodash")); const cookieParser = require("cookie-parser"); class DFWInstance { /** * Initialices all dependencies and middlewares for DFW */ constructor(config) { /** * default DFW config */ this.config = { databases: { default: { username: "root", password: "", database: "dfw", host: "localhost", dialect: "mysql", logging: false } } }; /** * */ this.modules = { "DatabaseManager": new DatabaseManager_1.default(), "SessionManager": new SessionManager_1.default(), "APIManager": new APIManager_1.default(), "SecurityManager": new SecurityManager_1.default(), }; this.config = lodash_1.default.merge({}, this.config, config); // combine config object Object.keys(this.modules).forEach(key => { if (this.modules[key].initialice(this)) { console.log(`[DFW] Module ${key} initialiced`); } }); console.log("[DFW] Core loaded mode: " + process.env.NODE_ENV); } /** * Initialices the express server * @param port * @param callback */ startServer(port = process.env.NODE_ENV !== 'production' ? parseInt(process.env.PORT || '3000', 10) : 80, callback) { if (this.server === undefined) { this.server = require("express")(); this.server.use(cookieParser()); let listener = this.server.listen(port, () => { console.log("[DFW] Express server running on port " + listener.address().port); if (callback != undefined && callback != null) { callback(); } }); } return this.server; } /** * * @param req * @param res */ touchAsync(req, res) { return __awaiter(this, void 0, void 0, function* () { let dfw = { session: { isLogged: false, model: {} }, request: req, response: res, }; var moduleKeys = Object.keys(this.modules); for (var i = 0; i < moduleKeys.length; i++) { yield this.modules[moduleKeys[i]].touchAsync(dfw); } return dfw; }); } /** * * @param name */ getDatabase(name = "default") { return this.modules.DatabaseManager.getDatabase(name); } } exports.default = DFWInstance; //# sourceMappingURL=DFWInstance.js.map