-/**
- * Listen messages send by the main thread
- */
-const addMessageListener = (): void => {
- parentPort?.on('message', (message: WorkerMessage<ChargingStationWorkerData>) => {
- if (message.id === WorkerMessageEvents.startWorkerElement) {
- startChargingStation(message.data);
- }
- });
-};
+class ChargingStationWorker extends AsyncResource {
+ constructor() {
+ super(moduleName);
+ // Add message listener to create and start charging station from the main thread
+ parentPort?.on('message', (message: WorkerMessage<ChargingStationWorkerData>) => {
+ if (message.event === WorkerMessageEvents.startWorkerElement) {
+ this.runInAsyncScope(
+ startChargingStation.bind(this) as (data?: ChargingStationWorkerData) => void,
+ this,
+ message.data,
+ );
+ }
+ });
+ }
+}