fix: fix worker configuration merge issue
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerFactory.ts
index 833c939f1767e832b021f152a5d2725caf221f72..67da00d88a5b2d32572fa2f8a5f422fe3b73a843 100644 (file)
@@ -1,5 +1,7 @@
 import { isMainThread } from 'node:worker_threads'
 
+import { mergeDeepRight } from 'rambda'
+
 import type { WorkerAbstract } from './WorkerAbstract.js'
 import { DEFAULT_WORKER_OPTIONS } from './WorkerConstants.js'
 import { WorkerDynamicPool } from './WorkerDynamicPool.js'
@@ -21,7 +23,7 @@ export class WorkerFactory {
     if (!isMainThread) {
       throw new Error('Cannot get a worker implementation outside the main thread')
     }
-    workerOptions = { ...DEFAULT_WORKER_OPTIONS, ...workerOptions }
+    workerOptions = mergeDeepRight<WorkerOptions>(DEFAULT_WORKER_OPTIONS, workerOptions ?? {})
     let workerImplementation: WorkerAbstract<T>
     switch (workerProcessType) {
       case WorkerProcessType.workerSet: