-import {
- ChargingStationWorkerData,
- ChargingStationWorkerMessage,
- ChargingStationWorkerMessageEvents,
-} from '../types/ChargingStationWorker';
-import Utils from '../utils/Utils';
-import WorkerConstants from '../worker/WorkerConstants';
-import ChargingStation from './ChargingStation';
-import { ChargingStationUtils } from './ChargingStationUtils';
-
-// Conditionally export ThreadWorker instance for pool usage
-export let threadWorker: ThreadWorker;
-if (ChargingStationUtils.workerPoolInUse()) {
- threadWorker = new ThreadWorker<ChargingStationWorkerData>(startChargingStation, {
- maxInactiveTime: WorkerConstants.POOL_MAX_INACTIVE_TIME,
- async: false,
- });
-} else {
- // Add message listener to start charging station from main thread
- addMessageListener();
- if (Utils.isUndefined(workerData) === false) {
- startChargingStation(workerData as ChargingStationWorkerData);
- }
-}
-
-/**
- * Listen messages send by the main thread
- */
-function addMessageListener(): void {
- parentPort?.on('message', (message: ChargingStationWorkerMessage<ChargingStationWorkerData>) => {
- if (message.id === ChargingStationWorkerMessageEvents.START_WORKER_ELEMENT) {
- startChargingStation(message.data);
- }
- });
-}
+import { ChargingStation } from './ChargingStation.js'
+import { BaseError } from '../exception/index.js'
+import type { ChargingStationWorkerData } from '../types/index.js'
+import { Configuration } from '../utils/index.js'
+import { type WorkerMessage, WorkerMessageEvents } from '../worker/index.js'