import chalk from 'chalk';
-import { type AbstractUIServer, ChargingStationUtils, UIServerFactory } from './internal';
+import { ChargingStationUtils } from './ChargingStationUtils';
+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 &&
}
}
- 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