X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fworker%2FWorkerSet.ts;h=b09ea711df718bbcd508dfba52dd99112e90b285;hb=ce0abd8248cbc1c976bb298e45daeb0749387619;hp=7636a167a5548993b68f6a17791f22dc33bfbd5d;hpb=65d2250205186eaab80febce407d1f7fdf830473;p=e-mobility-charging-stations-simulator.git diff --git a/src/worker/WorkerSet.ts b/src/worker/WorkerSet.ts index 7636a167..b09ea711 100644 --- a/src/worker/WorkerSet.ts +++ b/src/worker/WorkerSet.ts @@ -153,18 +153,32 @@ export class WorkerSet extends Worke }) worker.on('message', this.workerOptions.poolOptions?.messageHandler ?? EMPTY_FUNCTION) worker.on('message', (message: WorkerMessage) => { - if (this.promiseResponseMap.has(message.uuid)) { + const { uuid, event, data } = message + if (this.promiseResponseMap.has(uuid)) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const { resolve, reject, workerSetElement } = this.promiseResponseMap.get(message.uuid)! - if (message.event === WorkerMessageEvents.addedWorkerElement) { - this.emitter?.emit(WorkerSetEvents.elementAdded, this.info) - workerSetElement.numberOfWorkerElements++ - resolve(message.data) - } else if (message.event === WorkerMessageEvents.workerElementError) { - this.emitter?.emit(WorkerSetEvents.elementError, message.data) - reject(message.data) + const { resolve, reject, workerSetElement } = this.promiseResponseMap.get(uuid)! + switch (event) { + case WorkerMessageEvents.addedWorkerElement: + this.emitter?.emit(WorkerSetEvents.elementAdded, this.info) + ++workerSetElement.numberOfWorkerElements + resolve(data) + break + case WorkerMessageEvents.workerElementError: + this.emitter?.emit(WorkerSetEvents.elementError, data) + reject(data) + break + default: + reject( + new Error( + `Unknown worker message event: '${event}' received with data: '${JSON.stringify( + data, + undefined, + 2 + )}'` + ) + ) } - this.promiseResponseMap.delete(message.uuid) + this.promiseResponseMap.delete(uuid) } }) worker.on('error', this.workerOptions.poolOptions?.errorHandler ?? EMPTY_FUNCTION)