UNPKG

pinusmod

Version:

[![Build Status](https://travis-ci.org/node-pinus/pinus.svg?branch=master)](https://travis-ci.org/node-pinus/pinus)

101 lines (100 loc) 3.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerDefaultModules = exports.startModules = exports.loadModules = void 0; const os = require("os"); const admin = require("pinusmod-admin"); const utils = require("./utils"); const Constants = require("./constants"); const pathUtil = require("./pathUtil"); const starter = require("../master/starter"); const pinusmod_logger_1 = require("pinusmod-logger"); const masterwatcher_1 = require("../modules/masterwatcher"); const monitorwatcher_1 = require("../modules/monitorwatcher"); const watchServer_1 = require("../modules/watchServer"); const onlineUser_1 = require("../modules/onlineUser"); const console_1 = require("../modules/console"); const path = require("path"); let logger = (0, pinusmod_logger_1.getLogger)('pinus', path.basename(__filename)); /** * Load admin modules */ function loadModules(self, consoleService) { // load app register modules let _modules = self.app.get(Constants.KEYWORDS.MODULE); if (!_modules) { return; } let modules = []; for (let m in _modules) { modules.push(_modules[m]); } let record, moduleId, module; for (let i = 0, l = modules.length; i < l; i++) { record = modules[i]; if (typeof record.module === 'function') { module = new record.module(record.opts, consoleService); } else { module = record.module; } moduleId = record.moduleId || module.moduleId; if (!moduleId) { logger.warn('ignore an unknown module.'); continue; } consoleService.register(moduleId, module); self.modules.push(module); } } exports.loadModules = loadModules; function startModules(modules, cb) { // invoke the start lifecycle method of modules if (!modules) { return; } startModule(null, modules, 0, cb); } exports.startModules = startModules; /** * Append the default system admin modules */ function registerDefaultModules(isMaster, app, closeWatcher) { if (!closeWatcher) { if (isMaster) { app.registerAdmin(masterwatcher_1.MasterWatcherModule, { app: app }); } else { app.registerAdmin(monitorwatcher_1.MonitorWatcherModule, { app: app }); } } app.registerAdmin(watchServer_1.WatchServerModule, { app: app }); app.registerAdmin(console_1.ConsoleModule, { app: app, starter: starter }); if (app.enabled('systemMonitor')) { if (os.platform() !== Constants.PLATFORM.WIN) { app.registerAdmin(admin.modules.systemInfo); app.registerAdmin(admin.modules.nodeInfo); } app.registerAdmin(onlineUser_1.OnlineUserModule); app.registerAdmin(admin.modules.monitorLog, { path: pathUtil.getLogPath(app.getBase()) }); app.registerAdmin(admin.modules.scripts, { app: app, path: pathUtil.getScriptPath(app.getBase()) }); if (os.platform() !== Constants.PLATFORM.WIN) { app.registerAdmin(admin.modules.profiler); } } } exports.registerDefaultModules = registerDefaultModules; let startModule = function (err, modules, index, cb) { if (err || index >= modules.length) { utils.invokeCallback(cb, err); return; } let module = modules[index]; if (module && typeof module.start === 'function') { module.start((err) => { startModule(err, modules, index + 1, cb); }); } else { startModule(err, modules, index + 1, cb); } };