X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FBootstrap.ts;h=66b2d5f835146782bdb9a703b5002c9ab540146c;hb=6501eda9e69fff639911308b3f2de26593ae18c9;hp=76b2c2999d00318960199be014bfab9a49b60150;hpb=357a5553eba0104e7017b3d955a3ea6da0ef6a6d;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/Bootstrap.ts b/src/charging-station/Bootstrap.ts index 76b2c299..66b2d5f8 100644 --- a/src/charging-station/Bootstrap.ts +++ b/src/charging-station/Bootstrap.ts @@ -8,9 +8,9 @@ import { isMainThread } from 'node:worker_threads'; import chalk from 'chalk'; import { availableParallelism } from 'poolifier'; +import { waitChargingStationEvents } from './Helpers'; import type { AbstractUIServer } from './ui-server/AbstractUIServer'; import { UIServerFactory } from './ui-server/UIServerFactory'; -import { waitChargingStationEvents } from './Utils'; import { version } from '../../package.json' assert { type: 'json' }; import { BaseError } from '../exception'; import { type Storage, StorageFactory } from '../performance'; @@ -45,8 +45,10 @@ import { type WorkerAbstract, WorkerFactory } from '../worker'; const moduleName = 'Bootstrap'; enum exitCodes { + succeeded = 0, missingChargingStationsConfiguration = 1, noChargingStationTemplates = 2, + gracefulShutdownError = 3, } export class Bootstrap extends EventEmitter { @@ -97,7 +99,7 @@ export class Bootstrap extends EventEmitter { performanceStorageConfiguration.uri!, this.logPrefix(), )); - Configuration.setConfigurationChangeCallback(async () => Bootstrap.getInstance().restart()); + Configuration.configurationChangeCallback = async () => Bootstrap.getInstance().restart(); } public static getInstance(): Bootstrap { @@ -109,7 +111,7 @@ export class Bootstrap extends EventEmitter { public async start(): Promise { if (!isMainThread) { - throw new Error('Cannot start charging stations simulator from worker thread'); + throw new BaseError('Cannot start charging stations simulator from worker thread'); } if (this.started === false) { if (this.starting === false) { @@ -176,7 +178,7 @@ export class Bootstrap extends EventEmitter { public async stop(): Promise { if (!isMainThread) { - throw new Error('Cannot stop charging stations simulator from worker thread'); + throw new BaseError('Cannot stop charging stations simulator from worker thread'); } if (this.started === true) { if (this.stopping === false) { @@ -185,7 +187,7 @@ export class Bootstrap extends EventEmitter { this.uiServer.buildProtocolRequest( generateUUID(), ProcedureName.STOP_CHARGING_STATION, - Constants.EMPTY_FREEZED_OBJECT, + Constants.EMPTY_FROZEN_OBJECT, ), ); await Promise.race([ @@ -389,11 +391,11 @@ export class Bootstrap extends EventEmitter { console.info(`${chalk.green('Graceful shutdown')}`); this.stop() .then(() => { - process.exit(0); + process.exit(exitCodes.succeeded); }) .catch((error) => { console.error(chalk.red('Error while shutdowning charging stations simulator: '), error); - process.exit(1); + process.exit(exitCodes.gracefulShutdownError); }); };