fix: refine type definition for transferList
[poolifier.git] / examples / typescript / http-server-pool / fastify-worker_threads / src / fastify-poolifier.ts
index 15e5656b12abe44477a65dc7efd4a994b51663d7..450a2aeaf2c7fda086aa19d117c5af5c20636ed2 100644 (file)
@@ -1,7 +1,9 @@
-import type { TransferListItem } from 'worker_threads'
-import { DynamicThreadPool, availableParallelism } from 'poolifier'
-import { type FastifyPluginCallback } from 'fastify'
+import type { TransferListItem } from 'node:worker_threads'
+
+import type { FastifyPluginCallback } from 'fastify'
 import fp from 'fastify-plugin'
+import { availableParallelism, DynamicThreadPool } from 'poolifier'
+
 import {
   type FastifyPoolifierOptions,
   type WorkerData,
@@ -20,11 +22,12 @@ const fastifyPoolifierPlugin: FastifyPluginCallback<FastifyPoolifierOptions> = (
     },
     ...options
   }
+  const { workerFile, minWorkers, maxWorkers, ...poolOptions } = options
   const pool = new DynamicThreadPool<WorkerData, WorkerResponse>(
-    options.minWorkers as number,
-    options.maxWorkers as number,
-    options.workerFile,
-    options
+    minWorkers!,
+    maxWorkers!,
+    workerFile,
+    poolOptions
   )
   if (!fastify.hasDecorator('pool')) {
     fastify.decorate('pool', pool)
@@ -35,7 +38,7 @@ const fastifyPoolifierPlugin: FastifyPluginCallback<FastifyPoolifierOptions> = (
       async (
         data?: WorkerData,
         name?: string,
-        transferList?: TransferListItem[]
+        transferList?: readonly TransferListItem[]
       ): Promise<WorkerResponse> => await pool.execute(data, name, transferList)
     )
   }