build(deps): bump poolifier
[poolifier.git] / examples / typescript / http-server-pool / express-hybrid / src / express-worker.ts
index a8ffbcb28fe0a5e6205b48964596d79d9520be41..ac2e34d43bfc9ab2f97f51c4a874f2dee782495c 100644 (file)
@@ -1,5 +1,5 @@
-import type { Server } from 'http'
-import type { AddressInfo } from 'net'
+import type { Server } from 'node:http'
+import type { AddressInfo } from 'node:net'
 import {
   ClusterWorker,
   DynamicThreadPool,
@@ -15,7 +15,7 @@ import {
 } from './types.js'
 
 const emptyFunction = (): void => {
-  /** Intentional */
+  /* Intentional */
 }
 
 class ExpressWorker extends ClusterWorker<
@@ -31,8 +31,8 @@ ClusterWorkerResponse
   private static readonly startExpress = (
     workerData?: ClusterWorkerData
   ): ClusterWorkerResponse => {
-    const { port, workerFile, minWorkers, maxWorkers } =
-      workerData as ClusterWorkerData
+    const { port, workerFile, minWorkers, maxWorkers, ...poolOptions } =
+      workerData!
 
     ExpressWorker.requestHandlerPool = new DynamicThreadPool<
     ThreadWorkerData<DataPayload>,
@@ -41,7 +41,7 @@ ClusterWorkerResponse
       minWorkers ?? 1,
       maxWorkers ?? availableParallelism(),
       workerFile,
-      workerData
+      poolOptions
     )
 
     const application: Express = express()
@@ -52,7 +52,7 @@ ClusterWorkerResponse
     application.all('/api/echo', (req: Request, res: Response) => {
       ExpressWorker.requestHandlerPool
         .execute({ data: req.body }, 'echo')
-        .then((response) => {
+        .then(response => {
           return res.send(response.data).end()
         })
         .catch(emptyFunction)
@@ -62,7 +62,7 @@ ClusterWorkerResponse
       const { number } = req.params
       ExpressWorker.requestHandlerPool
         .execute({ data: { number: parseInt(number) } }, 'factorial')
-        .then((response) => {
+        .then(response => {
           return res.send(response.data).end()
         })
         .catch(emptyFunction)
@@ -71,14 +71,12 @@ ClusterWorkerResponse
     ExpressWorker.server = application.listen(port, () => {
       console.info(
         // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
-        `⚡️[express server]: Express server is started in cluster worker at http://localhost:${workerData?.port}/`
+        `⚡️[express server]: Express server is started in cluster worker at http://localhost:${port}/`
       )
     })
     return {
       status: true,
-      port:
-        (ExpressWorker.server.address() as AddressInfo)?.port ??
-        workerData?.port
+      port: (ExpressWorker.server.address() as AddressInfo)?.port ?? port
     }
   }