fix: fix worker set elementsPerWorker sanity check
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerSet.ts
index b4a1ec2048f8799bcc12ad59a0f21c70fd3bd5a8..10606d2e498639bb6d0097f2d6c3740465746113 100644 (file)
@@ -36,7 +36,10 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
     if (!Number.isSafeInteger(this.workerOptions.elementsPerWorker)) {
       throw new TypeError('Elements per worker must be an integer')
     }
-    if (this.workerOptions.elementsPerWorker <= 0) {
+    if (
+      typeof this.workerOptions.elementsPerWorker === 'number' &&
+      this.workerOptions.elementsPerWorker <= 0
+    ) {
       throw new RangeError('Elements per worker must be greater than zero')
     }
     this.workerSet = new Set<WorkerSetElement>()
@@ -99,7 +102,6 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
     this.emitter?.emit(WorkerSetEvents.stopped, this.info)
     this.started = false
     this.emitter?.emitDestroy()
-    this.emitter?.removeAllListeners()
   }
 
   /** @inheritDoc */
@@ -115,9 +117,9 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
     ++workerSetElement.numberOfWorkerElements
     // Add element sequentially to optimize memory at startup
     // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-    if (this.workerOptions.elementStartDelay! > 0) {
+    if (this.workerOptions.elementAddDelay! > 0) {
       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-      await sleep(randomizeDelay(this.workerOptions.elementStartDelay!))
+      await sleep(randomizeDelay(this.workerOptions.elementAddDelay!))
     }
   }