build: fix rollup external regexp
[poolifier.git] / examples / typescript / pool.ts
index 50dcc7b779d7118b27f42c56136fca509d58a7f6..3d9d9e6f482723cdb634e98bd02a9bbd46df3314 100644 (file)
@@ -1,23 +1,40 @@
-import { DynamicThreadPool, FixedThreadPool } from 'poolifier'
-import { MyData, MyResponse } from './worker'
+import { dirname, extname, join } from 'node:path'
+import { fileURLToPath } from 'node:url'
+import type { MyData, MyResponse } from './worker'
+import {
+  DynamicThreadPool,
+  FixedThreadPool,
+  availableParallelism
+} from 'poolifier'
 
-import { join } from 'path'
+const workerFile = join(
+  dirname(fileURLToPath(import.meta.url)),
+  `worker${extname(fileURLToPath(import.meta.url))}`
+)
 
 export const fixedPool = new FixedThreadPool<MyData, Promise<MyResponse>>(
-  8,
-  join(__dirname, 'worker.js'),
+  availableParallelism(),
+  workerFile,
   {
-    errorHandler: e => console.error(e),
-    onlineHandler: () => console.log('Worker is online')
+    errorHandler: (e: Error) => {
+      console.error(e)
+    },
+    onlineHandler: () => {
+      console.info('Worker is online')
+    }
   }
 )
 
 export const dynamicPool = new DynamicThreadPool<MyData, Promise<MyResponse>>(
-  2,
-  8,
-  join(__dirname, 'worker.js'),
+  Math.floor(availableParallelism() / 2),
+  availableParallelism(),
+  workerFile,
   {
-    errorHandler: e => console.error(e),
-    onlineHandler: () => console.log('Worker is online')
+    errorHandler: (e: Error) => {
+      console.error(e)
+    },
+    onlineHandler: () => {
+      console.info('Worker is online')
+    }
   }
 )