build(deps-dev): apply updates
[poolifier.git] / examples / typescript / websocket-server-pool / ws-hybrid / src / websocket-server-worker.ts
index 437fae1b45600c5cb0bc700d690569c820b44b5e..e52f0c06c9331ee011b17b75c8724974c8329a3b 100644 (file)
@@ -1,9 +1,10 @@
 import {
+  availableParallelism,
   ClusterWorker,
-  DynamicThreadPool,
-  availableParallelism
+  DynamicThreadPool
 } from 'poolifier'
 import { type RawData, WebSocketServer } from 'ws'
+
 import {
   type ClusterWorkerData,
   type ClusterWorkerResponse,
@@ -15,7 +16,7 @@ import {
 } from './types.js'
 
 const emptyFunction = (): void => {
-  /** Intentional */
+  /* Intentional */
 }
 
 class WebSocketServerWorker extends ClusterWorker<
@@ -32,7 +33,7 @@ ClusterWorkerResponse
     workerData?: ClusterWorkerData
   ): ClusterWorkerResponse => {
     const { port, workerFile, minWorkers, maxWorkers, ...poolOptions } =
-      workerData as ClusterWorkerData
+      workerData!
 
     WebSocketServerWorker.requestHandlerPool = new DynamicThreadPool<
     ThreadWorkerData<DataPayload>,
@@ -50,7 +51,7 @@ ClusterWorkerResponse
       )
     })
 
-    WebSocketServerWorker.wss.on('connection', (ws) => {
+    WebSocketServerWorker.wss.on('connection', ws => {
       ws.on('error', console.error)
       ws.on('message', (message: RawData) => {
         const { type, data } = JSON.parse(
@@ -61,28 +62,31 @@ ClusterWorkerResponse
           case MessageType.echo:
             WebSocketServerWorker.requestHandlerPool
               .execute({ data }, 'echo')
-              .then((response) => {
+              .then(response => {
                 ws.send(
                   JSON.stringify({
                     type: MessageType.echo,
                     data: response.data
                   })
                 )
-                return null
+                return undefined
               })
               .catch(emptyFunction)
             break
           case MessageType.factorial:
             WebSocketServerWorker.requestHandlerPool
               .execute({ data }, 'factorial')
-              .then((response) => {
+              .then(response => {
                 ws.send(
-                  JSON.stringify({
-                    type: MessageType.factorial,
-                    data: response.data
-                  })
+                  JSON.stringify(
+                    {
+                      type: MessageType.factorial,
+                      data: response.data
+                    },
+                    (_, v) => (typeof v === 'bigint' ? v.toString() : v)
+                  )
                 )
-                return null
+                return undefined
               })
               .catch(emptyFunction)
             break