refactor: add type enforcement to message passing
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 5 Jan 2024 13:04:40 +0000 (14:04 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 5 Jan 2024 13:04:40 +0000 (14:04 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/pools/cluster/fixed.ts
src/pools/thread/fixed.ts
src/worker/cluster-worker.ts
src/worker/thread-worker.ts

index e4cc7d6e232d30d0da85607ec87661a31892c2c9..c60266e3d72b623fb9225dcc20882c064d29438c 100644 (file)
@@ -55,7 +55,7 @@ export class FixedClusterPool<
     this.workerNodes[workerNodeKey].worker.send({
       ...message,
       workerId: this.getWorkerInfo(workerNodeKey)?.id
-    })
+    } satisfies MessageValue<Data>)
   }
 
   /** @inheritDoc */
index 78ef12f87744729733f7434bdbb21a299f286b63..d22d75fb3b5a397e8a2371a700d53d4f243160ba 100644 (file)
@@ -53,7 +53,10 @@ export class FixedThreadPool<
     transferList?: TransferListItem[]
   ): void {
     this.workerNodes[workerNodeKey].messageChannel?.port1.postMessage(
-      { ...message, workerId: this.getWorkerInfo(workerNodeKey)?.id },
+      {
+        ...message,
+        workerId: this.getWorkerInfo(workerNodeKey)?.id
+      } satisfies MessageValue<Data>,
       transferList
     )
   }
@@ -68,7 +71,7 @@ export class FixedThreadPool<
         ready: false,
         workerId: this.getWorkerInfo(workerNodeKey)?.id,
         port: port2
-      },
+      } satisfies MessageValue<Data>,
       [port2]
     )
   }
index 1a9deb304aaebf8f919cf91716427e865d58a02d..eedf13bd9265cb30b6d7cd689c42e2c517367acd 100644 (file)
@@ -62,6 +62,9 @@ export class ClusterWorker<
   protected readonly sendToMainWorker = (
     message: MessageValue<Response>
   ): void => {
-    this.getMainWorker().send({ ...message, workerId: this.id })
+    this.getMainWorker().send({
+      ...message,
+      workerId: this.id
+    } satisfies MessageValue<Response>)
   }
 }
index 3635d92c56006b0d0f6dbcf6f855fdfaf52865bf..638de2ba2f9c8f090360c528cd1169cfcd52e823 100644 (file)
@@ -84,7 +84,10 @@ export class ThreadWorker<
   protected readonly sendToMainWorker = (
     message: MessageValue<Response>
   ): void => {
-    this.port?.postMessage({ ...message, workerId: this.id })
+    this.port?.postMessage({
+      ...message,
+      workerId: this.id
+    } satisfies MessageValue<Response>)
   }
 
   /**