import chalk from 'chalk';
-import { type AbstractUIServer, ChargingStationUtils, UIServerFactory } from './internal';
+import type { AbstractUIServer } from './ui-server/AbstractUIServer';
+import { UIServerFactory } from './ui-server/UIServerFactory';
import packageJson from '../../package.json' assert { type: 'json' };
import { BaseError } from '../exception';
import { type Storage, StorageFactory } from '../performance';
type StationTemplateUrl,
type Statistics,
} from '../types';
-import { Configuration, Utils, logger } from '../utils';
+import { Configuration, ErrorUtils, Utils, logger } from '../utils';
import { type MessageHandler, type WorkerAbstract, WorkerFactory } from '../worker';
const moduleName = 'Bootstrap';
private constructor() {
// Enable unconditionally for now
- this.logUnhandledRejection();
- this.logUncaughtException();
+ ErrorUtils.handleUnhandledRejection();
+ ErrorUtils.handleUncaughtException();
this.initializedCounters = false;
this.started = false;
this.initializeCounters();
this.workerImplementation = null;
this.workerScript = path.join(
- path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../'),
- 'charging-station',
+ path.dirname(fileURLToPath(import.meta.url)),
`ChargingStationWorker${path.extname(fileURLToPath(import.meta.url))}`
);
Configuration.getUIServer().enabled === true &&
`Charging stations simulator ${
this.version
} started with ${this.numberOfChargingStations.toString()} charging station(s) from ${this.numberOfChargingStationTemplates.toString()} configured charging station template(s) and ${
- ChargingStationUtils.workerDynamicPoolInUse()
+ Configuration.workerDynamicPoolInUse()
? `${Configuration.getWorker().poolMinSize?.toString()}/`
: ''
}${this.workerImplementation?.size}${
- ChargingStationUtils.workerPoolInUse()
+ Configuration.workerPoolInUse()
? `/${Configuration.getWorker().poolMaxSize?.toString()}`
: ''
} worker(s) concurrently running in '${Configuration.getWorker().processType}' mode${
}
}
- private logUncaughtException(): void {
- process.on('uncaughtException', (error: Error) => {
- console.error(chalk.red('Uncaught exception: '), error);
- });
- }
-
- private logUnhandledRejection(): void {
- process.on('unhandledRejection', (reason: unknown) => {
- console.error(chalk.red('Unhandled rejection: '), reason);
- });
- }
-
private async startChargingStation(
index: number,
stationTemplateUrl: StationTemplateUrl
await this.workerImplementation?.addElement({
index,
templateFile: path.join(
- path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../'),
+ path.dirname(fileURLToPath(import.meta.url)),
'assets',
'station-templates',
stationTemplateUrl.file