UNPKG

pandora

Version:

A powerful and lightweight application manager for Node.js applications powered by TypeScript.

62 lines 2.15 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); const Daemon_1 = require("./Daemon"); const pandora_env_1 = require("pandora-env"); const const_1 = require("../const"); const pandora_metrics_1 = require("pandora-metrics"); const GlobalConfigProcessor_1 = require("../universal/GlobalConfigProcessor"); const LoggerBroker_1 = require("../universal/LoggerBroker"); const pandora_metrics_2 = require("pandora-metrics"); /** * Class DaemonBootstrap */ class DaemonBootstrap { constructor() { this.daemonLogger = LoggerBroker_1.getDaemonLogger(); this.globalConfigProcessor = GlobalConfigProcessor_1.GlobalConfigProcessor.getInstance(); this.globalConfig = this.globalConfigProcessor.getAllProperties(); } /** * Start the daemon * @return {Promise<void>} */ start() { // Register a default env for daemon process const daemonEnvironment = new pandora_env_1.DefaultEnvironment({ processName: 'daemon', appName: pandora_metrics_1.MetricsConstants.METRICS_DEFAULT_APP, pandoraLogsDir: LoggerBroker_1.getPandoraLogsDir() }); daemonEnvironment.set(const_1.PANDORA_GLOBAL_CONFIG, this.globalConfig); pandora_env_1.EnvironmentUtil.getInstance().setCurrentEnvironment(daemonEnvironment); this.daemon = new Daemon_1.Daemon(); // Start daemon return this.daemon.start().then(() => { // Set daemon to metrics pandora_metrics_2.MetricsInjectionBridge.setDaemon(this.daemon); if (process.send) { process.send(const_1.DAEMON_READY); } }).catch(err => { this.daemonLogger.error(err); throw err; }); } /** * Stop the Daemon * @return {Promise<void>} */ stop() { return this.daemon.stop(); } } exports.DaemonBootstrap = DaemonBootstrap; function cmd() { const daemonBootstrap = new DaemonBootstrap; return daemonBootstrap.start(); } exports.cmd = cmd; if (require.main === module) { cmd(); } //# sourceMappingURL=DaemonBootstrap.js.map