UNPKG

pandora

Version:

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

61 lines (53 loc) 1.64 kB
'use strict'; import {ApplicationRepresentation} from '../domain'; import {ComplexHandler} from '../daemon/ComplexHandler'; import {consoleLogger} from '../universal/LoggerBroker'; import {ProcessBootstrap} from '../application/ProcessBootstrap'; import {GlobalConfigProcessor} from '../universal/GlobalConfigProcessor'; const globalConfigProcessor = GlobalConfigProcessor.getInstance(); /** * Class DebugApplicationLoader * For a profile.js application to debugging */ export class DebugApplicationLoader { protected options: ApplicationRepresentation; protected master: ComplexHandler | ProcessBootstrap; constructor(options: ApplicationRepresentation) { this.options = options; } /** * Start debug application * @return {Promise<void>} */ async start() { globalConfigProcessor.getAllProperties(); globalConfigProcessor.mergeProperties({ logger: { appLogger: { stdoutLevel: 'ALL', level: 'NONE' } } }); process.env.PANDORA_DEV = 'true'; process.env.NODE_ENV = process.env.NODE_ENV || 'local'; const mode = this.options.mode || 'procfile.js'; const appName = this.options.appName || 'debug'; const options = { ...this.options, mode, appName }; if(!this.master) { if('fork' === mode) { this.master = new ProcessBootstrap(options.entryFile, options); } else { this.master = new ComplexHandler(options); } } this.master.start().then(() => { console.log('Debug application start successful.'); }).catch((err) => { consoleLogger.error(err); }); } }