- parentPort?.on('message', (message: WorkerMessage<ChargingStationWorkerData>) => {
- if (message.id === WorkerMessageEvents.startWorkerElement) {
- this.runInAsyncScope(
- startChargingStation.bind(this) as (data: ChargingStationWorkerData) => void,
- this,
- message.data
- );
+ parentPort?.on('message', (message: WorkerMessage<Data>) => {
+ switch (message.event) {
+ case WorkerMessageEvents.startWorkerElement:
+ try {
+ startChargingStation(message.data);
+ parentPort?.postMessage({
+ event: WorkerMessageEvents.startedWorkerElement,
+ });
+ } catch (error) {
+ parentPort?.postMessage({
+ event: WorkerMessageEvents.startWorkerElementError,
+ data: {
+ name: (error as Error).name,
+ message: (error as Error).message,
+ stack: (error as Error).stack,
+ },
+ });
+ }
+ break;
+ default:
+ throw new BaseError(
+ `Unknown worker event: '${message.event}' received with data: '${JSON.stringify(
+ message.data,
+ undefined,
+ 2,
+ )}'`,
+ );