diff --git a/src/lifecycle/Application.ts b/src/lifecycle/Application.ts index 344e919..5b7c481 100644 --- a/src/lifecycle/Application.ts +++ b/src/lifecycle/Application.ts @@ -54,6 +54,8 @@ export class Application extends Container { protected applicationUnits: (typeof Unit)[] = [] protected instantiatedUnits: Unit[] = [] + public forceStartupMessage: boolean = true + constructor() { super() @@ -70,6 +72,10 @@ export class Application extends Container { } } + public hasUnit(unitClass: typeof Unit) { + return this.applicationUnits.includes(unitClass) + } + get root() { return this.basePath.concat() } @@ -150,7 +156,7 @@ export class Application extends Container { async up() { const logging: Logging = this.make(Logging) - logging.info('Starting Extollo...', true) + logging.info('Starting Extollo...', this.forceStartupMessage) for ( const unitClass of this.applicationUnits ) { const unit: Unit = this.make(unitClass) this.instantiatedUnits.push(unit) @@ -161,8 +167,8 @@ export class Application extends Container { async down() { const logging: Logging = this.make(Logging) - logging.info('Stopping Extollo...', true) - for ( const unit of this.instantiatedUnits ) { + logging.info('Stopping Extollo...', this.forceStartupMessage) + for ( const unit of [...this.instantiatedUnits].reverse() ) { if ( !unit ) continue await this.stopUnit(unit) } diff --git a/src/lifecycle/RunLevelErrorHandler.ts b/src/lifecycle/RunLevelErrorHandler.ts index c6e1e99..16f98b4 100644 --- a/src/lifecycle/RunLevelErrorHandler.ts +++ b/src/lifecycle/RunLevelErrorHandler.ts @@ -27,6 +27,7 @@ export class RunLevelErrorHandler { const error = new ErrorWithContext(e.message) error.originalError = e error.context = context + error.stack = e.stack return error } @@ -51,9 +52,9 @@ ${color.bgRed(' ')} ${color.bgRed(' UNCAUGHT RUN-LEVEL ERROR ')} ${color.bgRed(' ')} -${e.constructor ? e.constructor.name : e.name} +${operativeError.constructor ? operativeError.constructor.name : operativeError.name} ${color.red(`---------------------------------------------------`)} -${e.stack} +${operativeError.stack} ` if ( contextDisplay ) {