Merge dependabot/npm_and_yarn/examples/typescript/http-server-pool/fastify-cluster...
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 30 Sep 2023 02:16:23 +0000 (04:16 +0200)
committerGitHub <noreply@github.com>
Sat, 30 Sep 2023 02:16:23 +0000 (04:16 +0200)
54 files changed:
benchmarks/benchmarks-types.js [moved from benchmarks/benchmarks-types.mjs with 70% similarity]
benchmarks/benchmarks-utils.js [moved from benchmarks/benchmarks-utils.mjs with 87% similarity]
benchmarks/internal/bench.mjs
benchmarks/internal/cluster-worker.js [moved from benchmarks/internal/cluster-worker.mjs with 52% similarity]
benchmarks/internal/thread-worker.mjs
benchmarks/worker-selection/least.mjs
benchmarks/worker-selection/round-robin.mjs
examples/typescript/http-client-pool/package.json
examples/typescript/http-server-pool/express-cluster/package.json
examples/typescript/http-server-pool/express-hybrid/package.json
examples/typescript/http-server-pool/express-worker_threads/package.json
examples/typescript/http-server-pool/fastify-cluster/package.json
examples/typescript/http-server-pool/fastify-cluster/pnpm-lock.yaml
examples/typescript/http-server-pool/fastify-hybrid/package.json
examples/typescript/http-server-pool/fastify-worker_threads/package.json
examples/typescript/smtp-client-pool/package.json
examples/typescript/websocket-server-pool/ws-cluster/package.json
examples/typescript/websocket-server-pool/ws-hybrid/package.json
examples/typescript/websocket-server-pool/ws-worker_threads/package.json
package.json
pnpm-lock.yaml
rollup.config.mjs
tests/circular-array.test.mjs [moved from tests/circular-array.test.js with 98% similarity]
tests/deque.test.mjs [moved from tests/deque.test.js with 98% similarity]
tests/pools/abstract-pool.test.mjs [moved from tests/pools/abstract-pool.test.js with 94% similarity]
tests/pools/cluster/dynamic.test.mjs [moved from tests/pools/cluster/dynamic.test.js with 95% similarity]
tests/pools/cluster/fixed.test.mjs [moved from tests/pools/cluster/fixed.test.js with 97% similarity]
tests/pools/selection-strategies/selection-strategies.test.mjs [moved from tests/pools/selection-strategies/selection-strategies.test.js with 95% similarity]
tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs [moved from tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.js with 63% similarity]
tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs [moved from tests/pools/selection-strategies/worker-choice-strategy-context.test.js with 89% similarity]
tests/pools/thread/dynamic.test.mjs [moved from tests/pools/thread/dynamic.test.js with 92% similarity]
tests/pools/thread/fixed.test.mjs [moved from tests/pools/thread/fixed.test.js with 93% similarity]
tests/pools/utils.test.mjs [moved from tests/pools/utils.test.js with 91% similarity]
tests/pools/worker-node.test.mjs [moved from tests/pools/worker-node.test.js with 94% similarity]
tests/utils.test.mjs [moved from tests/utils.test.js with 95% similarity]
tests/worker-files/thread/asyncErrorWorker.mjs [moved from tests/worker-files/thread/asyncErrorWorker.js with 51% similarity]
tests/worker-files/thread/asyncWorker.js [deleted file]
tests/worker-files/thread/asyncWorker.mjs [new file with mode: 0644]
tests/worker-files/thread/echoWorker.js [deleted file]
tests/worker-files/thread/echoWorker.mjs [new file with mode: 0644]
tests/worker-files/thread/emptyWorker.js [deleted file]
tests/worker-files/thread/emptyWorker.mjs [new file with mode: 0644]
tests/worker-files/thread/errorWorker.mjs [moved from tests/worker-files/thread/errorWorker.js with 53% similarity]
tests/worker-files/thread/longRunningWorkerHardBehavior.js [deleted file]
tests/worker-files/thread/longRunningWorkerHardBehavior.mjs [new file with mode: 0644]
tests/worker-files/thread/longRunningWorkerSoftBehavior.js [deleted file]
tests/worker-files/thread/longRunningWorkerSoftBehavior.mjs [new file with mode: 0644]
tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs [moved from tests/worker-files/thread/testMultipleTaskFunctionsWorker.js with 56% similarity]
tests/worker-files/thread/testWorker.js [deleted file]
tests/worker-files/thread/testWorker.mjs [new file with mode: 0644]
tests/worker/abstract-worker.test.mjs [moved from tests/worker/abstract-worker.test.js with 96% similarity]
tests/worker/cluster-worker.test.mjs [moved from tests/worker/cluster-worker.test.js with 83% similarity]
tests/worker/thread-worker.test.mjs [moved from tests/worker/thread-worker.test.js with 90% similarity]
tsconfig.build.json

similarity index 70%
rename from benchmarks/benchmarks-types.mjs
rename to benchmarks/benchmarks-types.js
index 69ccce0dc771eb482a1d2bb1a81cc29ef4331f10..eaaf05d1be4df25ed55259d5878f26ff39c00bc1 100644 (file)
@@ -1,6 +1,8 @@
-export const TaskFunctions = {
+const TaskFunctions = {
   jsonIntegerSerialization: 'jsonIntegerSerialization',
   fibonacci: 'fibonacci',
   factorial: 'factorial',
   readWriteFiles: 'readWriteFiles'
 }
+
+module.exports = { TaskFunctions }
similarity index 87%
rename from benchmarks/benchmarks-utils.mjs
rename to benchmarks/benchmarks-utils.js
index 79971825e20e9e66c394b7b229eb6b4b5d852eaf..aaf7521ff3044807e02078c2cde0f45c584586b1 100644 (file)
@@ -1,8 +1,8 @@
-import crypto from 'node:crypto'
-import assert from 'node:assert'
-import fs from 'node:fs'
-import Benchmark from 'benchmark'
-import {
+const crypto = require('node:crypto')
+const assert = require('node:assert')
+const fs = require('node:fs')
+const Benchmark = require('benchmark')
+const {
   DynamicClusterPool,
   DynamicThreadPool,
   FixedClusterPool,
@@ -11,15 +11,10 @@ import {
   PoolTypes,
   WorkerChoiceStrategies,
   WorkerTypes
-} from '../lib/index.mjs'
-import { TaskFunctions } from './benchmarks-types.mjs'
+} = require('../lib/index.js')
+const { TaskFunctions } = require('./benchmarks-types.js')
 
-export const buildPoolifierPool = (
-  workerType,
-  poolType,
-  poolSize,
-  poolOptions
-) => {
+const buildPoolifierPool = (workerType, poolType, poolSize, poolOptions) => {
   switch (poolType) {
     case PoolTypes.fixed:
       switch (workerType) {
@@ -32,7 +27,7 @@ export const buildPoolifierPool = (
         case WorkerTypes.cluster:
           return new FixedClusterPool(
             poolSize,
-            './benchmarks/internal/cluster-worker.mjs',
+            './benchmarks/internal/cluster-worker.js',
             poolOptions
           )
       }
@@ -50,7 +45,7 @@ export const buildPoolifierPool = (
           return new DynamicClusterPool(
             Math.floor(poolSize / 2),
             poolSize,
-            './benchmarks/internal/cluster-worker.mjs',
+            './benchmarks/internal/cluster-worker.js',
             poolOptions
           )
       }
@@ -58,10 +53,7 @@ export const buildPoolifierPool = (
   }
 }
 
-export const runPoolifierPool = async (
-  pool,
-  { taskExecutions, workerData }
-) => {
+const runPoolifierPool = async (pool, { taskExecutions, workerData }) => {
   return await new Promise((resolve, reject) => {
     let executions = 0
     for (let i = 1; i <= taskExecutions; i++) {
@@ -82,7 +74,7 @@ export const runPoolifierPool = async (
   })
 }
 
-export const runPoolifierPoolBenchmark = async (
+const runPoolifierPoolBenchmark = async (
   name,
   pool,
   { taskExecutions, workerData }
@@ -168,15 +160,12 @@ export const runPoolifierPoolBenchmark = async (
   })
 }
 
-export const LIST_FORMATTER = new Intl.ListFormat('en-US', {
+const LIST_FORMATTER = new Intl.ListFormat('en-US', {
   style: 'long',
   type: 'conjunction'
 })
 
-export const generateRandomInteger = (
-  max = Number.MAX_SAFE_INTEGER,
-  min = 0
-) => {
+const generateRandomInteger = (max = Number.MAX_SAFE_INTEGER, min = 0) => {
   if (max < min || max < 0 || min < 0) {
     throw new RangeError('Invalid interval')
   }
@@ -242,7 +231,7 @@ const readWriteFiles = (
   return { ok: 1 }
 }
 
-export const executeTaskFunction = data => {
+const executeTaskFunction = data => {
   switch (data.function) {
     case TaskFunctions.jsonIntegerSerialization:
       return jsonIntegerSerialization(data.taskSize || 1000)
@@ -256,3 +245,11 @@ export const executeTaskFunction = data => {
       throw new Error('Unknown task function')
   }
 }
+
+module.exports = {
+  LIST_FORMATTER,
+  buildPoolifierPool,
+  executeTaskFunction,
+  generateRandomInteger,
+  runPoolifierPoolBenchmark
+}
index 3484951cfb187a42bf1af5f325cd1c436adb6baf..7ef61bc6cba31225a4d8732b721422494deeb4d3 100644 (file)
@@ -3,11 +3,11 @@ import {
   WorkerTypes,
   availableParallelism
 } from '../../lib/index.mjs'
-import { TaskFunctions } from '../benchmarks-types.mjs'
+import { TaskFunctions } from '../benchmarks-types.js'
 import {
   buildPoolifierPool,
   runPoolifierPoolBenchmark
-} from '../benchmarks-utils.mjs'
+} from '../benchmarks-utils.js'
 
 const poolSize = availableParallelism()
 const taskExecutions = 1
@@ -35,3 +35,23 @@ await runPoolifierPoolBenchmark(
     workerData
   }
 )
+
+// FixedClusterPool
+await runPoolifierPoolBenchmark(
+  'Poolifier FixedClusterPool',
+  buildPoolifierPool(WorkerTypes.cluster, PoolTypes.fixed, poolSize),
+  {
+    taskExecutions,
+    workerData
+  }
+)
+
+// DynamicClusterPool
+await runPoolifierPoolBenchmark(
+  'Poolifier DynamicClusterPool',
+  buildPoolifierPool(WorkerTypes.cluster, PoolTypes.dynamic, poolSize),
+  {
+    taskExecutions,
+    workerData
+  }
+)
similarity index 52%
rename from benchmarks/internal/cluster-worker.mjs
rename to benchmarks/internal/cluster-worker.js
index 1d64fde30a19d82f0e4f52cb1781a7eab9efeae6..18bd648c72ce73d454b3503b038719aeade6bd11 100644 (file)
@@ -1,7 +1,7 @@
-import { isPrimary } from 'node:cluster'
-import { ClusterWorker } from '../../lib/index.mjs'
-import { executeTaskFunction } from '../benchmarks-utils.mjs'
-import { TaskFunctions } from '../benchmarks-types.mjs'
+const { isPrimary } = require('node:cluster')
+const { ClusterWorker } = require('../../lib')
+const { executeTaskFunction } = require('../benchmarks-utils.js')
+const { TaskFunctions } = require('../benchmarks-types.js')
 
 const taskFunction = data => {
   data = data || {}
@@ -12,4 +12,4 @@ const taskFunction = data => {
   return res
 }
 
-export default new ClusterWorker(taskFunction)
+module.exports = new ClusterWorker(taskFunction)
index 5c6a691e47af247dde38a075a3cd4c78cc15d02c..b0994e77bd1af7183f98559481e43fdaf7ec92bb 100644 (file)
@@ -1,7 +1,7 @@
 import { isMainThread } from 'node:worker_threads'
 import { ThreadWorker } from '../../lib/index.mjs'
-import { executeTaskFunction } from '../benchmarks-utils.mjs'
-import { TaskFunctions } from '../benchmarks-types.mjs'
+import { executeTaskFunction } from '../benchmarks-utils.js'
+import { TaskFunctions } from '../benchmarks-types.js'
 
 const taskFunction = data => {
   data = data || {}
index 2abbae8275c147187a486b368ffec84c3bdcd579..0969369fb6e1a49c6b10563aa5ab5b6fc1935b5b 100644 (file)
@@ -1,5 +1,5 @@
 import Benchmark from 'benchmark'
-import { LIST_FORMATTER, generateRandomInteger } from '../benchmarks-utils.mjs'
+import { LIST_FORMATTER, generateRandomInteger } from '../benchmarks-utils.js'
 
 function generateRandomTasksMap (
   numberOfWorkers,
index 483098d2ff93d0a4c0bb9b225b11ccbe963e6bd2..302cd2c6dffa5e5fa1a76c42f6056327a857c895 100644 (file)
@@ -1,5 +1,5 @@
 import Benchmark from 'benchmark'
-import { LIST_FORMATTER } from '../benchmarks-utils.mjs'
+import { LIST_FORMATTER } from '../benchmarks-utils.js'
 
 function generateWorkersArray (numberOfWorkers) {
   return [...Array(numberOfWorkers).keys()]
index 269ecb8b7edc9e21a530bf5409edb61206a919c8..3e1d36c54aa9e36ac3cea91ab216bfaf3f9933d6 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index f1227b845b8ad6d7d946d34186009f985544f370..bc42b831322fd84ca6c665857af3bf63d03cd131 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index e3e7abe6d69a988b51c8b032baac1dbad1f59bf5..69fc42586cd34385e7c8e381847644cccaf60199 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index b034ee48437d99d73e2b61f34ce011c6a50b5d45..c2e0f548cbe84e0a35b372cf655a7d3c193ad5d6 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index 7d6365eed35c09ce77820c8e100707fa5eb87189..0d993bc34c7f0be8cbf6740e8663ec05b238251c 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
@@ -26,7 +26,7 @@
   },
   "devDependencies": {
     "@rollup/plugin-typescript": "^11.1.4",
-    "@types/node": "^20.7.1",
+    "@types/node": "^20.7.2",
     "autocannon": "^7.12.0",
     "rollup": "^3.29.4",
     "rollup-plugin-delete": "^2.0.0",
index da105aa5d37934acb4e7421dce71c195c2791cdf..ff104ba1d3a6def9b1a4d0cb23ca36b2b2e977b4 100644 (file)
@@ -17,8 +17,8 @@ devDependencies:
     specifier: ^11.1.4
     version: 11.1.4(rollup@3.29.4)(tslib@2.6.2)(typescript@5.2.2)
   '@types/node':
-    specifier: ^20.7.1
-    version: 20.7.1
+    specifier: ^20.7.2
+    version: 20.7.2
   autocannon:
     specifier: ^7.12.0
     version: 7.12.0
@@ -134,15 +134,15 @@ packages:
     resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
     dependencies:
       '@types/minimatch': 5.1.2
-      '@types/node': 20.7.1
+      '@types/node': 20.7.2
     dev: true
 
   /@types/minimatch@5.1.2:
     resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
     dev: true
 
-  /@types/node@20.7.1:
-    resolution: {integrity: sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==}
+  /@types/node@20.7.2:
+    resolution: {integrity: sha512-RcdC3hOBOauLP+r/kRt27NrByYtDjsXyAuSbR87O6xpsvi763WI+5fbSIvYJrXnt9w4RuxhV6eAXfIs7aaf/FQ==}
     dev: true
 
   /abort-controller@3.0.0:
index 624d81bd4459a7f34ea511fa75615a459e804349..3180ae3c9ca787a62ace4656ff9fdef6667fc8ad 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index 988cc2f918bc927d2cb2f45b757cc9c52e6ea0f0..cb72e43f4b02b61c6a7dbd047568a465043eb9e1 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index 59a8d6684c585123967f86226f5189bdd5932744..95dd0e1573f00e4c901ae1edb1423bb5a65587fd 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index 8ef43a658e9e7448746ecb8d0b14e47a20b9cbda..710e7de2a186ba28df1decc16de0070df2ee4ecb 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index 5758660d17a87e78f605eb66a72a6270ea7395ed..4ae9ba347012dbb301a47b84c1bae138e842e566 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index 92f9f7a11ea2b204161e9880a7e04e1c639e8d99..afc1967c2ad274589febbc9ce27c8d3782f48f6b 100644 (file)
@@ -6,7 +6,7 @@
   "main": "dist/main.js",
   "type": "module",
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "scripts": {
index 4ec07272a22d7c96b398c97d48cb45bd2c5d8c28..4fccea21af32b8009dcdd598ff337d0a91191866 100644 (file)
@@ -22,8 +22,8 @@
     "benchmark": "pnpm build && node -r source-map-support/register benchmarks/internal/bench.mjs",
     "benchmark:debug": "pnpm build && node -r source-map-support/register --inspect benchmarks/internal/bench.mjs",
     "benchmark:prod": "pnpm build:prod && node benchmarks/internal/bench.mjs",
-    "test": "pnpm build --environment SOURCEMAP:false && c8 mocha 'tests/**/*.test.js'",
-    "test:debug": "pnpm build && mocha --no-parallel --inspect 'tests/**/*.test.js'",
+    "test": "pnpm build --environment SOURCEMAP:false && c8 mocha 'tests/**/*.test.mjs'",
+    "test:debug": "pnpm build && mocha --no-parallel --inspect 'tests/**/*.test.mjs'",
     "coverage": "c8 report --reporter=lcov",
     "coverage:html": "c8 report --reporter=html",
     "format": "biome format . --write; ts-standard . --fix",
@@ -42,7 +42,7 @@
     "pnpm": ">=8.6.0"
   },
   "volta": {
-    "node": "20.7.0",
+    "node": "20.8.0",
     "pnpm": "8.8.0"
   },
   "repository": {
     "@release-it/keep-a-changelog": "^4.0.0",
     "@rollup/plugin-terser": "^0.4.3",
     "@rollup/plugin-typescript": "^11.1.4",
-    "@types/node": "^20.7.1",
+    "@types/node": "^20.7.2",
     "@typescript-eslint/eslint-plugin": "^6.7.3",
     "@typescript-eslint/parser": "^6.7.3",
     "benchmark": "^2.1.4",
index f271df03a696e8a84335f0a1ac48e14250f5263f..a6aecc6cf4653bde3b7911932af5b9c30130705e 100644 (file)
@@ -30,8 +30,8 @@ devDependencies:
     specifier: ^11.1.4
     version: 11.1.4(rollup@3.29.4)(typescript@5.2.2)
   '@types/node':
-    specifier: ^20.7.1
-    version: 20.7.1
+    specifier: ^20.7.2
+    version: 20.7.2
   '@typescript-eslint/eslint-plugin':
     specifier: ^6.7.3
     version: 6.7.3(@typescript-eslint/parser@6.7.3)(eslint@8.50.0)(typescript@5.2.2)
@@ -329,7 +329,7 @@ packages:
       lodash.merge: 4.6.2
       lodash.uniq: 4.5.0
       resolve-from: 5.0.0
-      ts-node: 10.9.1(@types/node@20.7.1)(typescript@5.2.2)
+      ts-node: 10.9.1(@types/node@20.7.2)(typescript@5.2.2)
       typescript: 5.2.2
     transitivePeerDependencies:
       - '@swc/core'
@@ -506,8 +506,8 @@ packages:
       '@jest/schemas': 29.6.3
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.2
-      '@types/node': 20.7.1
-      '@types/yargs': 17.0.25
+      '@types/node': 20.7.2
+      '@types/yargs': 17.0.26
       chalk: 4.1.2
     dev: true
 
@@ -889,7 +889,7 @@ packages:
     resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
     dependencies:
       '@types/minimatch': 5.1.2
-      '@types/node': 20.7.1
+      '@types/node': 20.7.2
     dev: true
 
   /@types/http-cache-semantics@4.0.2:
@@ -932,8 +932,8 @@ packages:
     resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==}
     dev: true
 
-  /@types/node@20.7.1:
-    resolution: {integrity: sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==}
+  /@types/node@20.7.2:
+    resolution: {integrity: sha512-RcdC3hOBOauLP+r/kRt27NrByYtDjsXyAuSbR87O6xpsvi763WI+5fbSIvYJrXnt9w4RuxhV6eAXfIs7aaf/FQ==}
     dev: true
 
   /@types/normalize-package-data@2.4.2:
@@ -952,8 +952,8 @@ packages:
     resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==}
     dev: true
 
-  /@types/yargs@17.0.25:
-    resolution: {integrity: sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==}
+  /@types/yargs@17.0.26:
+    resolution: {integrity: sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==}
     dependencies:
       '@types/yargs-parser': 21.0.1
     dev: true
@@ -1912,7 +1912,7 @@ packages:
     dependencies:
       '@types/node': 20.5.1
       cosmiconfig: 8.3.6(typescript@5.2.2)
-      ts-node: 10.9.1(@types/node@20.7.1)(typescript@5.2.2)
+      ts-node: 10.9.1(@types/node@20.7.2)(typescript@5.2.2)
       typescript: 5.2.2
     dev: true
 
@@ -4015,7 +4015,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 20.7.1
+      '@types/node': 20.7.2
       chalk: 4.1.2
       ci-info: 3.8.0
       graceful-fs: 4.2.11
@@ -4367,8 +4367,8 @@ packages:
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dev: true
 
-  /magic-string@0.30.3:
-    resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==}
+  /magic-string@0.30.4:
+    resolution: {integrity: sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==}
     engines: {node: '>=12'}
     dependencies:
       '@jridgewell/sourcemap-codec': 1.4.15
@@ -5454,7 +5454,7 @@ packages:
       rollup: ^3.25
       typescript: ^4.5 || ^5.0
     dependencies:
-      magic-string: 0.30.3
+      magic-string: 0.30.4
       rollup: 3.29.4
       typescript: 5.2.2
     optionalDependencies:
@@ -5971,7 +5971,7 @@ packages:
       typescript: 5.2.2
     dev: true
 
-  /ts-node@10.9.1(@types/node@20.7.1)(typescript@5.2.2):
+  /ts-node@10.9.1(@types/node@20.7.2)(typescript@5.2.2):
     resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
     hasBin: true
     peerDependencies:
@@ -5990,7 +5990,7 @@ packages:
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 20.7.1
+      '@types/node': 20.7.2
       acorn: 8.10.0
       acorn-walk: 8.2.0
       arg: 4.1.3
index 3d069f7f7b0f6956ec192bb40748db09bee76a1c..23d260d05ee6af1dc374dbfb98007c851dc13479 100644 (file)
@@ -78,7 +78,10 @@ export default defineConfig([
     ],
     plugins: [
       typescript({
-        tsconfig: './tsconfig.build.json'
+        tsconfig: './tsconfig.build.json',
+        compilerOptions: {
+          sourceMap: sourcemap
+        }
       }),
       del({
         targets: ['./lib/*']
similarity index 98%
rename from tests/circular-array.test.js
rename to tests/circular-array.test.mjs
index fa87a31062f44bbae52ee74b5b1e180539c2afd7..0e13a8c32098a19a26c80dc26e2195ad7ee6a214 100644 (file)
@@ -1,8 +1,8 @@
-const { expect } = require('expect')
-const {
+import { expect } from 'expect'
+import {
   CircularArray,
   DEFAULT_CIRCULAR_ARRAY_SIZE
-} = require('../lib/circular-array')
+} from '../lib/circular-array.js'
 
 describe('Circular array test suite', () => {
   it('Verify that circular array can be instantiated', () => {
similarity index 98%
rename from tests/deque.test.js
rename to tests/deque.test.mjs
index 73e54590b3956e91ba7b1c2ad39e636c3fa92a95..6c8ebbb1e86389675c8136a892556986e5bd35b0 100644 (file)
@@ -1,5 +1,5 @@
-const { expect } = require('expect')
-const { Deque } = require('../lib/deque')
+import { expect } from 'expect'
+import { Deque } from '../lib/deque.js'
 
 describe('Deque test suite', () => {
   it('Verify push() behavior', () => {
similarity index 94%
rename from tests/pools/abstract-pool.test.js
rename to tests/pools/abstract-pool.test.mjs
index e6572cc1851a74a028e0a6a39f5478153fc57d32..84212a3f4f81f953fe50a718cac4f5f0edba1cdf 100644 (file)
@@ -1,7 +1,8 @@
-const { EventEmitterAsyncResource } = require('node:events')
-const { expect } = require('expect')
-const sinon = require('sinon')
-const {
+import { EventEmitterAsyncResource } from 'node:events'
+import { readFileSync } from 'node:fs'
+import { expect } from 'expect'
+import { restore, stub } from 'sinon'
+import {
   DynamicClusterPool,
   DynamicThreadPool,
   FixedClusterPool,
@@ -10,15 +11,15 @@ const {
   PoolTypes,
   WorkerChoiceStrategies,
   WorkerTypes
-} = require('../../lib')
-const { CircularArray } = require('../../lib/circular-array')
-const { Deque } = require('../../lib/deque')
-const { DEFAULT_TASK_NAME } = require('../../lib/utils')
-const { version } = require('../../package.json')
-const { waitPoolEvents } = require('../test-utils')
-const { WorkerNode } = require('../../lib/pools/worker-node')
+} from '../../lib/index.js'
+import { CircularArray } from '../../lib/circular-array.js'
+import { Deque } from '../../lib/deque.js'
+import { DEFAULT_TASK_NAME } from '../../lib/utils.js'
+import { waitPoolEvents } from '../test-utils.js'
+import { WorkerNode } from '../../lib/pools/worker-node.js'
 
 describe('Abstract pool test suite', () => {
+  const version = JSON.parse(readFileSync('./package.json', 'utf8')).version
   const numberOfWorkers = 2
   class StubPoolWithIsMain extends FixedThreadPool {
     isMain () {
@@ -27,7 +28,7 @@ describe('Abstract pool test suite', () => {
   }
 
   afterEach(() => {
-    sinon.restore()
+    restore()
   })
 
   it('Simulate pool creation from a non main thread/process', () => {
@@ -35,7 +36,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new StubPoolWithIsMain(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             errorHandler: e => console.error(e)
           }
@@ -50,7 +51,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool statuses properties are set', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.starting).toBe(false)
     expect(pool.started).toBe(true)
@@ -83,7 +84,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           undefined,
-          './tests/worker-files/thread/testWorker.js'
+          './tests/worker-files/thread/testWorker.mjs'
         )
     ).toThrowError(
       new Error(
@@ -106,7 +107,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that a non integer number of workers is checked', () => {
     expect(
       () =>
-        new FixedThreadPool(0.25, './tests/worker-files/thread/testWorker.js')
+        new FixedThreadPool(0.25, './tests/worker-files/thread/testWorker.mjs')
     ).toThrowError(
       new TypeError(
         'Cannot instantiate a pool with a non safe integer number of workers'
@@ -132,7 +133,7 @@ describe('Abstract pool test suite', () => {
         new DynamicThreadPool(
           0.5,
           1,
-          './tests/worker-files/thread/testWorker.js'
+          './tests/worker-files/thread/testWorker.mjs'
         )
     ).toThrowError(
       new TypeError(
@@ -153,7 +154,11 @@ describe('Abstract pool test suite', () => {
     )
     expect(
       () =>
-        new DynamicThreadPool(2, 1, './tests/worker-files/thread/testWorker.js')
+        new DynamicThreadPool(
+          2,
+          1,
+          './tests/worker-files/thread/testWorker.mjs'
+        )
     ).toThrowError(
       new RangeError(
         'Cannot instantiate a dynamic pool with a maximum pool size inferior to the minimum pool size'
@@ -161,7 +166,11 @@ describe('Abstract pool test suite', () => {
     )
     expect(
       () =>
-        new DynamicThreadPool(0, 0, './tests/worker-files/thread/testWorker.js')
+        new DynamicThreadPool(
+          0,
+          0,
+          './tests/worker-files/thread/testWorker.mjs'
+        )
     ).toThrowError(
       new RangeError(
         'Cannot instantiate a dynamic pool with a maximum pool size equal to zero'
@@ -184,7 +193,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool options are checked', async () => {
     let pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.emitter).toBeInstanceOf(EventEmitterAsyncResource)
     expect(pool.opts).toStrictEqual({
@@ -219,7 +228,7 @@ describe('Abstract pool test suite', () => {
     const testHandler = () => console.info('test handler executed')
     pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         workerChoiceStrategy: WorkerChoiceStrategies.LEAST_USED,
         workerChoiceStrategyOptions: {
@@ -286,7 +295,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategy: 'invalidStrategy'
           }
@@ -298,7 +307,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: {
               retries: 'invalidChoiceRetries'
@@ -314,7 +323,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: {
               retries: -1
@@ -330,7 +339,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: { weights: {} }
           }
@@ -344,7 +353,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             workerChoiceStrategyOptions: { measurement: 'invalidMeasurement' }
           }
@@ -358,7 +367,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: 'invalidTasksQueueOptions'
@@ -371,7 +380,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { concurrency: 0 }
@@ -386,7 +395,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { concurrency: -1 }
@@ -401,7 +410,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { concurrency: 0.2 }
@@ -414,7 +423,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { size: 0 }
@@ -429,7 +438,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { size: -1 }
@@ -444,7 +453,7 @@ describe('Abstract pool test suite', () => {
       () =>
         new FixedThreadPool(
           numberOfWorkers,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           {
             enableTasksQueue: true,
             tasksQueueOptions: { size: 0.2 }
@@ -458,7 +467,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool worker choice strategy options can be set', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
     )
     expect(pool.opts.workerChoiceStrategyOptions).toStrictEqual({
@@ -632,7 +641,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool tasks queue can be enabled/disabled', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.opts.enableTasksQueue).toBe(false)
     expect(pool.opts.tasksQueueOptions).toBeUndefined()
@@ -677,7 +686,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool tasks queue options can be set', async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { enableTasksQueue: true }
     )
     expect(pool.opts.tasksQueueOptions).toStrictEqual({
@@ -767,7 +776,7 @@ describe('Abstract pool test suite', () => {
   it('Verify that pool info is set', async () => {
     let pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.info).toStrictEqual({
       version,
@@ -860,7 +869,7 @@ describe('Abstract pool test suite', () => {
     pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     for (const workerNode of pool.workerNodes) {
       expect(workerNode).toBeInstanceOf(WorkerNode)
@@ -889,7 +898,7 @@ describe('Abstract pool test suite', () => {
     pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     for (const workerNode of pool.workerNodes) {
       expect(workerNode).toBeInstanceOf(WorkerNode)
@@ -1020,7 +1029,7 @@ describe('Abstract pool test suite', () => {
     const pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     const promises = new Set()
     const maxMultiplier = 2
@@ -1134,7 +1143,7 @@ describe('Abstract pool test suite', () => {
   it("Verify that pool event emitter 'busy' event can register a callback", async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.emitter.eventNames()).toStrictEqual([])
     const promises = new Set()
@@ -1175,7 +1184,7 @@ describe('Abstract pool test suite', () => {
     const pool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.emitter.eventNames()).toStrictEqual([])
     const promises = new Set()
@@ -1213,12 +1222,12 @@ describe('Abstract pool test suite', () => {
   it("Verify that pool event emitter 'backPressure' event can register a callback", async () => {
     const pool = new FixedThreadPool(
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         enableTasksQueue: true
       }
     )
-    sinon.stub(pool, 'hasBackPressure').returns(true)
+    stub(pool, 'hasBackPressure').returns(true)
     expect(pool.emitter.eventNames()).toStrictEqual([])
     const promises = new Set()
     let poolBackPressure = 0
@@ -1261,7 +1270,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.js'
+      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     expect(dynamicThreadPool.hasTaskFunction(DEFAULT_TASK_NAME)).toBe(true)
@@ -1291,7 +1300,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     await expect(
@@ -1362,7 +1371,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     expect(dynamicThreadPool.listTaskFunctionNames()).toStrictEqual([
@@ -1403,7 +1412,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.js'
+      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     expect(dynamicThreadPool.listTaskFunctionNames()).toStrictEqual([
@@ -1431,7 +1440,7 @@ describe('Abstract pool test suite', () => {
     const dynamicThreadPool = new DynamicThreadPool(
       Math.floor(numberOfWorkers / 2),
       numberOfWorkers,
-      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.js'
+      './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
     )
     await waitPoolEvents(dynamicThreadPool, PoolEvents.ready, 1)
     await expect(
similarity index 95%
rename from tests/pools/cluster/dynamic.test.js
rename to tests/pools/cluster/dynamic.test.mjs
index 1e729eaef0252be71fa3848e15935b6c82604b61..edd9639036937143a64ee5c8a571cecc6c436f35 100644 (file)
@@ -1,7 +1,7 @@
-const { expect } = require('expect')
-const { DynamicClusterPool, PoolEvents } = require('../../../lib')
-const { TaskFunctions } = require('../../test-types')
-const { sleep, waitWorkerEvents } = require('../../test-utils')
+import { expect } from 'expect'
+import { DynamicClusterPool, PoolEvents } from '../../../lib/index.js'
+import { TaskFunctions } from '../../test-types.js'
+import { sleep, waitWorkerEvents } from '../../test-utils.js'
 
 describe('Dynamic cluster pool test suite', () => {
   const min = 1
similarity index 97%
rename from tests/pools/cluster/fixed.test.js
rename to tests/pools/cluster/fixed.test.mjs
index 9b79f6ed8eed5f0b1e3f2802769a857c35b818ea..7d829f32858e548e30d0325266adc0bdf637b13e 100644 (file)
@@ -1,8 +1,8 @@
-const { expect } = require('expect')
-const { FixedClusterPool, PoolEvents } = require('../../../lib')
-const { TaskFunctions } = require('../../test-types')
-const { waitPoolEvents, waitWorkerEvents } = require('../../test-utils')
-const { DEFAULT_TASK_NAME } = require('../../../lib/utils')
+import { expect } from 'expect'
+import { FixedClusterPool, PoolEvents } from '../../../lib/index.js'
+import { TaskFunctions } from '../../test-types.js'
+import { waitPoolEvents, waitWorkerEvents } from '../../test-utils.js'
+import { DEFAULT_TASK_NAME } from '../../../lib/utils.js'
 
 describe('Fixed cluster pool test suite', () => {
   const numberOfWorkers = 8
similarity index 95%
rename from tests/pools/selection-strategies/selection-strategies.test.js
rename to tests/pools/selection-strategies/selection-strategies.test.mjs
index 3329e1dc718f3565202e1344479248013a6171c8..e0eec68b714a3152e49ed6bfd3e26d50a06e8584 100644 (file)
@@ -1,12 +1,12 @@
-const { expect } = require('expect')
-const {
+import { expect } from 'expect'
+import {
   DynamicClusterPool,
   DynamicThreadPool,
   FixedClusterPool,
   FixedThreadPool,
   WorkerChoiceStrategies
-} = require('../../../lib')
-const { CircularArray } = require('../../../lib/circular-array')
+} from '../../../lib/index.js'
+import { CircularArray } from '../../../lib/circular-array.js'
 
 describe('Selection strategies test suite', () => {
   const min = 0
@@ -30,7 +30,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool.opts.workerChoiceStrategy).toBe(
       WorkerChoiceStrategies.ROUND_ROBIN
@@ -43,7 +43,7 @@ describe('Selection strategies test suite', () => {
     for (const workerChoiceStrategy of Object.values(WorkerChoiceStrategies)) {
       const pool = new FixedThreadPool(
         max,
-        './tests/worker-files/thread/testWorker.js',
+        './tests/worker-files/thread/testWorker.mjs',
         { workerChoiceStrategy }
       )
       expect(pool.opts.workerChoiceStrategy).toBe(workerChoiceStrategy)
@@ -59,7 +59,7 @@ describe('Selection strategies test suite', () => {
       const pool = new DynamicThreadPool(
         min,
         max,
-        './tests/worker-files/thread/testWorker.js'
+        './tests/worker-files/thread/testWorker.mjs'
       )
       pool.setWorkerChoiceStrategy(workerChoiceStrategy)
       expect(pool.opts.workerChoiceStrategy).toBe(workerChoiceStrategy)
@@ -110,7 +110,7 @@ describe('Selection strategies test suite', () => {
   it('Verify available strategies default internals at pool creation', async () => {
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     for (const workerChoiceStrategy of Object.values(WorkerChoiceStrategies)) {
       expect(
@@ -178,7 +178,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -189,7 +189,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -204,7 +204,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -230,7 +230,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -260,7 +260,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     // TODO: Create a better test to cover `RoundRobinWorkerChoiceStrategy#choose`
@@ -315,7 +315,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     // TODO: Create a better test to cover `RoundRobinWorkerChoiceStrategy#choose`
@@ -384,7 +384,7 @@ describe('Selection strategies test suite', () => {
     await pool.destroy()
     pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     results = new Set()
@@ -399,7 +399,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN }
     )
     expect(
@@ -427,7 +427,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN }
     )
     expect(
@@ -459,7 +459,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_USED
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -470,7 +470,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -485,7 +485,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_USED
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -511,7 +511,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -540,7 +540,7 @@ describe('Selection strategies test suite', () => {
   it('Verify LEAST_USED strategy can be run in a fixed pool', async () => {
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_USED }
     )
     // TODO: Create a better test to cover `LeastUsedWorkerChoiceStrategy#choose`
@@ -598,7 +598,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_USED }
     )
     // TODO: Create a better test to cover `LeastUsedWorkerChoiceStrategy#choose`
@@ -656,7 +656,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_BUSY
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -667,7 +667,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -682,7 +682,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_BUSY
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -708,7 +708,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -737,7 +737,7 @@ describe('Selection strategies test suite', () => {
   it('Verify LEAST_BUSY strategy can be run in a fixed pool', async () => {
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_BUSY }
     )
     // TODO: Create a better test to cover `LeastBusyWorkerChoiceStrategy#choose`
@@ -805,7 +805,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_BUSY }
     )
     // TODO: Create a better test to cover `LeastBusyWorkerChoiceStrategy#choose`
@@ -873,7 +873,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_ELU
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -884,7 +884,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -899,7 +899,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_ELU
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -925,7 +925,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -954,7 +954,7 @@ describe('Selection strategies test suite', () => {
   it('Verify LEAST_ELU strategy can be run in a fixed pool', async () => {
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_ELU }
     )
     // TODO: Create a better test to cover `LeastEluWorkerChoiceStrategy#choose`
@@ -1028,7 +1028,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_ELU }
     )
     // TODO: Create a better test to cover `LeastEluWorkerChoiceStrategy#choose`
@@ -1102,7 +1102,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -1113,7 +1113,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -1128,7 +1128,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -1154,7 +1154,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -1183,7 +1183,7 @@ describe('Selection strategies test suite', () => {
   it('Verify FAIR_SHARE strategy can be run in a fixed pool', async () => {
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
     )
     // TODO: Create a better test to cover `FairShareChoiceStrategy#choose`
@@ -1268,7 +1268,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
     )
     // TODO: Create a better test to cover `FairShareChoiceStrategy#choose`
@@ -1353,7 +1353,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE,
         workerChoiceStrategyOptions: {
@@ -1443,7 +1443,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     for (const workerNode of pool.workerNodes) {
       workerNode.strategyData = {
@@ -1458,7 +1458,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     for (const workerNode of pool.workerNodes) {
       workerNode.strategyData = {
@@ -1477,7 +1477,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -1488,7 +1488,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -1503,7 +1503,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -1529,7 +1529,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -1558,7 +1558,7 @@ describe('Selection strategies test suite', () => {
   it('Verify WEIGHTED_ROUND_ROBIN strategy can be run in a fixed pool', async () => {
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN }
     )
     // TODO: Create a better test to cover `WeightedRoundRobinWorkerChoiceStrategy#choose`
@@ -1636,7 +1636,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN }
     )
     // TODO: Create a better test to cover `WeightedRoundRobinWorkerChoiceStrategy#choose`
@@ -1714,7 +1714,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN,
         workerChoiceStrategyOptions: {
@@ -1797,7 +1797,7 @@ describe('Selection strategies test suite', () => {
     const workerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(
       pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
@@ -1844,7 +1844,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(
       pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
@@ -1896,7 +1896,7 @@ describe('Selection strategies test suite', () => {
       WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -1907,7 +1907,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({
@@ -1923,7 +1923,7 @@ describe('Selection strategies test suite', () => {
       WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -1949,7 +1949,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       { workerChoiceStrategy }
     )
     expect(
@@ -1978,7 +1978,7 @@ describe('Selection strategies test suite', () => {
   it('Verify INTERLEAVED_WEIGHTED_ROUND_ROBIN strategy can be run in a fixed pool', async () => {
     const pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         workerChoiceStrategy:
           WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
@@ -2063,7 +2063,7 @@ describe('Selection strategies test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         workerChoiceStrategy:
           WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
@@ -2149,7 +2149,7 @@ describe('Selection strategies test suite', () => {
       WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
     let pool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(
       pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
@@ -2220,7 +2220,7 @@ describe('Selection strategies test suite', () => {
     pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(
       pool.workerChoiceStrategyContext.workerChoiceStrategies.get(
@@ -2297,7 +2297,7 @@ describe('Selection strategies test suite', () => {
         new DynamicThreadPool(
           min,
           max,
-          './tests/worker-files/thread/testWorker.js',
+          './tests/worker-files/thread/testWorker.mjs',
           { workerChoiceStrategy: 'UNKNOWN_STRATEGY' }
         )
     ).toThrowError("Invalid worker choice strategy 'UNKNOWN_STRATEGY'")
similarity index 63%
rename from tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.js
rename to tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs
index d774bce8346c9e05f31d77b4deb3f86f13c40012..a8c4bdd5eaabf9f0845e82d00d9a1bd9c2c2caa1 100644 (file)
@@ -1,10 +1,8 @@
-const { expect } = require('expect')
-const sinon = require('sinon')
-const { FixedThreadPool } = require('../../../lib')
-const {
-  WeightedRoundRobinWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy')
-const { generateRandomInteger } = require('../../test-utils')
+import { expect } from 'expect'
+import { restore } from 'sinon'
+import { FixedThreadPool } from '../../../lib/index.js'
+import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.js'
+import { generateRandomInteger } from '../../test-utils.js'
 
 describe('Weighted round robin strategy worker choice strategy test suite', () => {
   // const min = 1
@@ -12,11 +10,14 @@ describe('Weighted round robin strategy worker choice strategy test suite', () =
   let pool
 
   before(() => {
-    pool = new FixedThreadPool(max, './tests/worker-files/thread/testWorker.js')
+    pool = new FixedThreadPool(
+      max,
+      './tests/worker-files/thread/testWorker.mjs'
+    )
   })
 
   afterEach(() => {
-    sinon.restore()
+    restore()
   })
 
   after(async () => {
similarity index 89%
rename from tests/pools/selection-strategies/worker-choice-strategy-context.test.js
rename to tests/pools/selection-strategies/worker-choice-strategy-context.test.mjs
index df8cd25cb375a4aa50db889c7b014e4c17b22f9c..e95911db8d6cfb18da375bc2f18a44321e1e6685 100644 (file)
@@ -1,34 +1,18 @@
-const { expect } = require('expect')
-const sinon = require('sinon')
-const {
-  FixedThreadPool,
+import { expect } from 'expect'
+import { createStubInstance, restore, stub } from 'sinon'
+import {
   DynamicThreadPool,
+  FixedThreadPool,
   WorkerChoiceStrategies
-} = require('../../../lib')
-const {
-  WorkerChoiceStrategyContext
-} = require('../../../lib/pools/selection-strategies/worker-choice-strategy-context')
-const {
-  RoundRobinWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/round-robin-worker-choice-strategy')
-const {
-  LeastUsedWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/least-used-worker-choice-strategy')
-const {
-  LeastBusyWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/least-busy-worker-choice-strategy')
-const {
-  LeastEluWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/least-elu-worker-choice-strategy')
-const {
-  FairShareWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/fair-share-worker-choice-strategy')
-const {
-  WeightedRoundRobinWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy')
-const {
-  InterleavedWeightedRoundRobinWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy')
+} from '../../../lib/index.js'
+import { WorkerChoiceStrategyContext } from '../../../lib/pools/selection-strategies/worker-choice-strategy-context.js'
+import { RoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/round-robin-worker-choice-strategy.js'
+import { LeastUsedWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/least-used-worker-choice-strategy.js'
+import { LeastBusyWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/least-busy-worker-choice-strategy.js'
+import { LeastEluWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/least-elu-worker-choice-strategy.js'
+import { FairShareWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/fair-share-worker-choice-strategy.js'
+import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.js'
+import { InterleavedWeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.js'
 
 describe('Worker choice strategy context test suite', () => {
   const min = 1
@@ -38,17 +22,17 @@ describe('Worker choice strategy context test suite', () => {
   before(() => {
     fixedPool = new FixedThreadPool(
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     dynamicPool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
   })
 
   afterEach(() => {
-    sinon.restore()
+    restore()
   })
 
   after(async () => {
@@ -69,10 +53,10 @@ describe('Worker choice strategy context test suite', () => {
     const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
       fixedPool
     )
-    const WorkerChoiceStrategyStub = sinon.createStubInstance(
+    const WorkerChoiceStrategyStub = createStubInstance(
       RoundRobinWorkerChoiceStrategy,
       {
-        choose: sinon.stub().returns(0)
+        choose: stub().returns(0)
       }
     )
     expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
@@ -95,16 +79,16 @@ describe('Worker choice strategy context test suite', () => {
     const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
       fixedPool
     )
-    const WorkerChoiceStrategyUndefinedStub = sinon.createStubInstance(
+    const WorkerChoiceStrategyUndefinedStub = createStubInstance(
       RoundRobinWorkerChoiceStrategy,
       {
-        choose: sinon.stub().returns(undefined)
+        choose: stub().returns(undefined)
       }
     )
-    const WorkerChoiceStrategyNullStub = sinon.createStubInstance(
+    const WorkerChoiceStrategyNullStub = createStubInstance(
       RoundRobinWorkerChoiceStrategy,
       {
-        choose: sinon.stub().returns(null)
+        choose: stub().returns(null)
       }
     )
     expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
@@ -130,10 +114,10 @@ describe('Worker choice strategy context test suite', () => {
     const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
       dynamicPool
     )
-    const WorkerChoiceStrategyStub = sinon.createStubInstance(
+    const WorkerChoiceStrategyStub = createStubInstance(
       RoundRobinWorkerChoiceStrategy,
       {
-        choose: sinon.stub().returns(0)
+        choose: stub().returns(0)
       }
     )
     expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
similarity index 92%
rename from tests/pools/thread/dynamic.test.js
rename to tests/pools/thread/dynamic.test.mjs
index 1c5997ccf510baacc45c69337ec24965390b7e4d..0918065b403314f942fc4e3422e83740cdd3e654 100644 (file)
@@ -1,7 +1,7 @@
-const { expect } = require('expect')
-const { DynamicThreadPool, PoolEvents } = require('../../../lib')
-const { TaskFunctions } = require('../../test-types')
-const { sleep, waitWorkerEvents } = require('../../test-utils')
+import { expect } from 'expect'
+import { DynamicThreadPool, PoolEvents } from '../../../lib/index.js'
+import { TaskFunctions } from '../../test-types.js'
+import { sleep, waitWorkerEvents } from '../../test-utils.js'
 
 describe('Dynamic thread pool test suite', () => {
   const min = 1
@@ -9,7 +9,7 @@ describe('Dynamic thread pool test suite', () => {
   const pool = new DynamicThreadPool(
     min,
     max,
-    './tests/worker-files/thread/testWorker.js',
+    './tests/worker-files/thread/testWorker.mjs',
     {
       errorHandler: e => console.error(e)
     }
@@ -82,7 +82,7 @@ describe('Dynamic thread pool test suite', () => {
     const pool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     const res = await pool.execute()
     expect(res).toStrictEqual({ ok: 1 })
@@ -94,7 +94,7 @@ describe('Dynamic thread pool test suite', () => {
     const longRunningPool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/longRunningWorkerHardBehavior.js',
+      './tests/worker-files/thread/longRunningWorkerHardBehavior.mjs',
       {
         errorHandler: e => console.error(e),
         onlineHandler: () => console.info('long executing worker is online'),
@@ -121,7 +121,7 @@ describe('Dynamic thread pool test suite', () => {
     const longRunningPool = new DynamicThreadPool(
       min,
       max,
-      './tests/worker-files/thread/longRunningWorkerSoftBehavior.js',
+      './tests/worker-files/thread/longRunningWorkerSoftBehavior.mjs',
       {
         errorHandler: e => console.error(e),
         onlineHandler: () => console.info('long executing worker is online'),
@@ -144,7 +144,7 @@ describe('Dynamic thread pool test suite', () => {
     const pool = new DynamicThreadPool(
       0,
       max,
-      './tests/worker-files/thread/testWorker.js'
+      './tests/worker-files/thread/testWorker.mjs'
     )
     expect(pool).toBeInstanceOf(DynamicThreadPool)
     // We need to clean up the resources after our test
similarity index 93%
rename from tests/pools/thread/fixed.test.js
rename to tests/pools/thread/fixed.test.mjs
index acd944067c4e134b5f0a2f0dd31fa57bebed3ccd..3969c83ad7464c728d7df33dd092673c16384734 100644 (file)
@@ -1,22 +1,22 @@
-const { expect } = require('expect')
-const { FixedThreadPool, PoolEvents } = require('../../../lib')
-const { TaskFunctions } = require('../../test-types')
-const { waitPoolEvents, waitWorkerEvents } = require('../../test-utils')
-const { DEFAULT_TASK_NAME } = require('../../../lib/utils')
+import { expect } from 'expect'
+import { FixedThreadPool, PoolEvents } from '../../../lib/index.js'
+import { TaskFunctions } from '../../test-types.js'
+import { waitPoolEvents, waitWorkerEvents } from '../../test-utils.js'
+import { DEFAULT_TASK_NAME } from '../../../lib/utils.js'
 
 describe('Fixed thread pool test suite', () => {
   const numberOfThreads = 6
   const tasksConcurrency = 2
   const pool = new FixedThreadPool(
     numberOfThreads,
-    './tests/worker-files/thread/testWorker.js',
+    './tests/worker-files/thread/testWorker.mjs',
     {
       errorHandler: e => console.error(e)
     }
   )
   const queuePool = new FixedThreadPool(
     numberOfThreads,
-    './tests/worker-files/thread/testWorker.js',
+    './tests/worker-files/thread/testWorker.mjs',
     {
       enableTasksQueue: true,
       tasksQueueOptions: {
@@ -27,30 +27,30 @@ describe('Fixed thread pool test suite', () => {
   )
   const emptyPool = new FixedThreadPool(
     numberOfThreads,
-    './tests/worker-files/thread/emptyWorker.js',
+    './tests/worker-files/thread/emptyWorker.mjs',
     { exitHandler: () => console.info('empty pool worker exited') }
   )
   const echoPool = new FixedThreadPool(
     numberOfThreads,
-    './tests/worker-files/thread/echoWorker.js'
+    './tests/worker-files/thread/echoWorker.mjs'
   )
   const errorPool = new FixedThreadPool(
     numberOfThreads,
-    './tests/worker-files/thread/errorWorker.js',
+    './tests/worker-files/thread/errorWorker.mjs',
     {
       errorHandler: e => console.error(e)
     }
   )
   const asyncErrorPool = new FixedThreadPool(
     numberOfThreads,
-    './tests/worker-files/thread/asyncErrorWorker.js',
+    './tests/worker-files/thread/asyncErrorWorker.mjs',
     {
       errorHandler: e => console.error(e)
     }
   )
   const asyncPool = new FixedThreadPool(
     numberOfThreads,
-    './tests/worker-files/thread/asyncWorker.js'
+    './tests/worker-files/thread/asyncWorker.mjs'
   )
 
   after('Destroy all pools', async () => {
@@ -82,7 +82,7 @@ describe('Fixed thread pool test suite', () => {
   it("Verify that 'ready' event is emitted", async () => {
     const pool = new FixedThreadPool(
       numberOfThreads,
-      './tests/worker-files/thread/testWorker.js',
+      './tests/worker-files/thread/testWorker.mjs',
       {
         errorHandler: e => console.error(e)
       }
@@ -298,7 +298,7 @@ describe('Fixed thread pool test suite', () => {
   })
 
   it('Verify that thread pool options are checked', async () => {
-    const workerFilePath = './tests/worker-files/thread/testWorker.js'
+    const workerFilePath = './tests/worker-files/thread/testWorker.mjs'
     let pool = new FixedThreadPool(numberOfThreads, workerFilePath)
     expect(pool.opts.workerOptions).toBeUndefined()
     await pool.destroy()
@@ -316,7 +316,7 @@ describe('Fixed thread pool test suite', () => {
   })
 
   it('Should work even without opts in input', async () => {
-    const workerFilePath = './tests/worker-files/thread/testWorker.js'
+    const workerFilePath = './tests/worker-files/thread/testWorker.mjs'
     const pool = new FixedThreadPool(numberOfThreads, workerFilePath)
     const res = await pool.execute()
     expect(res).toStrictEqual({ ok: 1 })
@@ -325,7 +325,7 @@ describe('Fixed thread pool test suite', () => {
   })
 
   it('Verify destroyWorkerNode()', async () => {
-    const workerFilePath = './tests/worker-files/thread/testWorker.js'
+    const workerFilePath = './tests/worker-files/thread/testWorker.mjs'
     const pool = new FixedThreadPool(numberOfThreads, workerFilePath)
     const workerNodeKey = 0
     let exitEvent = 0
@@ -340,7 +340,7 @@ describe('Fixed thread pool test suite', () => {
 
   it('Verify that a pool with zero worker fails', async () => {
     expect(
-      () => new FixedThreadPool(0, './tests/worker-files/thread/testWorker.js')
+      () => new FixedThreadPool(0, './tests/worker-files/thread/testWorker.mjs')
     ).toThrowError('Cannot instantiate a fixed pool with zero worker')
   })
 })
similarity index 91%
rename from tests/pools/utils.test.js
rename to tests/pools/utils.test.mjs
index 23ef2e2fd29280a4857cabbbbd4a6677a8bdae10..bf0c72afadadc78819bd5d938a30f962496f1fee 100644 (file)
@@ -1,9 +1,9 @@
-const { expect } = require('expect')
-const {
-  DEFAULT_CIRCULAR_ARRAY_SIZE,
-  CircularArray
-} = require('../../lib/circular-array')
-const { updateMeasurementStatistics } = require('../../lib/pools/utils')
+import { expect } from 'expect'
+import {
+  CircularArray,
+  DEFAULT_CIRCULAR_ARRAY_SIZE
+} from '../../lib/circular-array.js'
+import { updateMeasurementStatistics } from '../../lib/pools/utils.js'
 
 describe('Pool utils test suite', () => {
   it('Verify updateMeasurementStatistics() behavior', () => {
similarity index 94%
rename from tests/pools/worker-node.test.js
rename to tests/pools/worker-node.test.mjs
index bfbd5d8d148667576472d1d02efddd7121374685..a847e4fedec5374713f514900beed3afb8097e67 100644 (file)
@@ -1,14 +1,14 @@
-const { MessageChannel, Worker } = require('node:worker_threads')
-const cluster = require('node:cluster')
-const { expect } = require('expect')
-const { WorkerNode } = require('../../lib/pools/worker-node')
-const { WorkerTypes } = require('../../lib')
-const { CircularArray } = require('../../lib/circular-array')
-const { Deque } = require('../../lib/deque')
-const { DEFAULT_TASK_NAME } = require('../../lib/utils')
+import { MessageChannel, Worker } from 'node:worker_threads'
+import cluster from 'node:cluster'
+import { expect } from 'expect'
+import { WorkerNode } from '../../lib/pools/worker-node.js'
+import { WorkerTypes } from '../../lib/index.js'
+import { CircularArray } from '../../lib/circular-array.js'
+import { Deque } from '../../lib/deque.js'
+import { DEFAULT_TASK_NAME } from '../../lib/utils.js'
 
 describe('Worker node test suite', () => {
-  const threadWorker = new Worker('./tests/worker-files/thread/testWorker.js')
+  const threadWorker = new Worker('./tests/worker-files/thread/testWorker.mjs')
   const clusterWorker = cluster.fork()
   const threadWorkerNode = new WorkerNode(threadWorker, 12)
   const clusterWorkerNode = new WorkerNode(clusterWorker, 12)
similarity index 95%
rename from tests/utils.test.js
rename to tests/utils.test.mjs
index 061c1648d4f2217583f6b0a9370802578fb222a6..c048141bf2ffcd7aab57de5d9b7aaa178d630137 100644 (file)
@@ -1,9 +1,9 @@
-const { randomInt } = require('node:crypto')
-const { Worker } = require('node:worker_threads')
-const cluster = require('node:cluster')
-const os = require('node:os')
-const { expect } = require('expect')
-const {
+import { Worker } from 'node:worker_threads'
+import cluster from 'node:cluster'
+import os from 'node:os'
+import { randomInt } from 'node:crypto'
+import { expect } from 'expect'
+import {
   DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS,
   DEFAULT_TASK_NAME,
   DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS,
@@ -11,8 +11,8 @@ const {
   availableParallelism,
   average,
   exponentialDelay,
-  getWorkerType,
   getWorkerId,
+  getWorkerType,
   isAsyncFunction,
   isKillBehavior,
   isPlainObject,
@@ -22,8 +22,8 @@ const {
   round,
   secureRandom,
   sleep
-} = require('../lib/utils')
-const { KillBehaviors, WorkerTypes } = require('../lib')
+} from '../lib/utils.js'
+import { KillBehaviors, WorkerTypes } from '../lib/index.js'
 
 describe('Utils test suite', () => {
   it('Verify DEFAULT_TASK_NAME value', () => {
@@ -66,13 +66,15 @@ describe('Utils test suite', () => {
 
   it('Verify getWorkerType() behavior', () => {
     expect(
-      getWorkerType(new Worker('./tests/worker-files/thread/testWorker.js'))
+      getWorkerType(new Worker('./tests/worker-files/thread/testWorker.mjs'))
     ).toBe(WorkerTypes.thread)
     expect(getWorkerType(cluster.fork())).toBe(WorkerTypes.cluster)
   })
 
   it('Verify getWorkerId() behavior', () => {
-    const threadWorker = new Worker('./tests/worker-files/thread/testWorker.js')
+    const threadWorker = new Worker(
+      './tests/worker-files/thread/testWorker.mjs'
+    )
     const clusterWorker = cluster.fork()
     expect(getWorkerId(threadWorker)).toBe(threadWorker.threadId)
     expect(getWorkerId(clusterWorker)).toBe(clusterWorker.id)
similarity index 51%
rename from tests/worker-files/thread/asyncErrorWorker.js
rename to tests/worker-files/thread/asyncErrorWorker.mjs
index f696b101947d6dc7ed180feae6fe7a0f763797b6..ff16bb6a87251d7e7315580eb620d478d018d943 100644 (file)
@@ -1,7 +1,10 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
-const { sleepTaskFunction } = require('../../test-utils')
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
+import { sleepTaskFunction } from '../../test-utils.js'
 
+/**
+ *
+ * @param data
+ */
 async function error (data) {
   return sleepTaskFunction(
     data,
@@ -11,7 +14,7 @@ async function error (data) {
   )
 }
 
-module.exports = new ThreadWorker(error, {
+export default new ThreadWorker(error, {
   killBehavior: KillBehaviors.HARD,
   maxInactiveTime: 500
 })
diff --git a/tests/worker-files/thread/asyncWorker.js b/tests/worker-files/thread/asyncWorker.js
deleted file mode 100644 (file)
index c3bcdc8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
-const { sleepTaskFunction } = require('../../test-utils')
-
-async function sleep (data) {
-  return sleepTaskFunction(data, 2000)
-}
-
-module.exports = new ThreadWorker(sleep, {
-  killBehavior: KillBehaviors.HARD,
-  maxInactiveTime: 500
-})
diff --git a/tests/worker-files/thread/asyncWorker.mjs b/tests/worker-files/thread/asyncWorker.mjs
new file mode 100644 (file)
index 0000000..4c52783
--- /dev/null
@@ -0,0 +1,15 @@
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
+import { sleepTaskFunction } from '../../test-utils.js'
+
+/**
+ *
+ * @param data
+ */
+async function sleep (data) {
+  return sleepTaskFunction(data, 2000)
+}
+
+export default new ThreadWorker(sleep, {
+  killBehavior: KillBehaviors.HARD,
+  maxInactiveTime: 500
+})
diff --git a/tests/worker-files/thread/echoWorker.js b/tests/worker-files/thread/echoWorker.js
deleted file mode 100644 (file)
index 998e56b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
-
-function echo (data) {
-  return data
-}
-
-module.exports = new ThreadWorker(echo, {
-  killBehavior: KillBehaviors.HARD
-})
diff --git a/tests/worker-files/thread/echoWorker.mjs b/tests/worker-files/thread/echoWorker.mjs
new file mode 100644 (file)
index 0000000..0b9251c
--- /dev/null
@@ -0,0 +1,13 @@
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
+
+/**
+ *
+ * @param data
+ */
+function echo (data) {
+  return data
+}
+
+export default new ThreadWorker(echo, {
+  killBehavior: KillBehaviors.HARD
+})
diff --git a/tests/worker-files/thread/emptyWorker.js b/tests/worker-files/thread/emptyWorker.js
deleted file mode 100644 (file)
index d77b472..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
-
-function test () {}
-
-module.exports = new ThreadWorker(test, {
-  killBehavior: KillBehaviors.HARD,
-  maxInactiveTime: 500
-})
diff --git a/tests/worker-files/thread/emptyWorker.mjs b/tests/worker-files/thread/emptyWorker.mjs
new file mode 100644 (file)
index 0000000..b129244
--- /dev/null
@@ -0,0 +1,11 @@
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
+
+/**
+ *
+ */
+function test () {}
+
+export default new ThreadWorker(test, {
+  killBehavior: KillBehaviors.HARD,
+  maxInactiveTime: 500
+})
similarity index 53%
rename from tests/worker-files/thread/errorWorker.js
rename to tests/worker-files/thread/errorWorker.mjs
index e5738982e9c40ee9f17ea83424ef91d9a01cba8a..101e45585ba49afb59ce9a7c0f6f983bd1bf153f 100644 (file)
@@ -1,11 +1,13 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
 
+/**
+ *
+ */
 function error () {
   throw new Error('Error Message from ThreadWorker')
 }
 
-module.exports = new ThreadWorker(error, {
+export default new ThreadWorker(error, {
   killBehavior: KillBehaviors.HARD,
   maxInactiveTime: 500
 })
diff --git a/tests/worker-files/thread/longRunningWorkerHardBehavior.js b/tests/worker-files/thread/longRunningWorkerHardBehavior.js
deleted file mode 100644 (file)
index e7d84df..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
-const { sleepTaskFunction } = require('../../test-utils')
-
-async function sleep (data) {
-  return sleepTaskFunction(data, 50000)
-}
-
-module.exports = new ThreadWorker(sleep, {
-  killBehavior: KillBehaviors.HARD,
-  maxInactiveTime: 500
-})
diff --git a/tests/worker-files/thread/longRunningWorkerHardBehavior.mjs b/tests/worker-files/thread/longRunningWorkerHardBehavior.mjs
new file mode 100644 (file)
index 0000000..911ddb9
--- /dev/null
@@ -0,0 +1,15 @@
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
+import { sleepTaskFunction } from '../../test-utils.js'
+
+/**
+ *
+ * @param data
+ */
+async function sleep (data) {
+  return sleepTaskFunction(data, 50000)
+}
+
+export default new ThreadWorker(sleep, {
+  killBehavior: KillBehaviors.HARD,
+  maxInactiveTime: 500
+})
diff --git a/tests/worker-files/thread/longRunningWorkerSoftBehavior.js b/tests/worker-files/thread/longRunningWorkerSoftBehavior.js
deleted file mode 100644 (file)
index 3b90236..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict'
-const { ThreadWorker } = require('../../../lib')
-const { sleepTaskFunction } = require('../../test-utils')
-
-async function sleep (data) {
-  return sleepTaskFunction(data, 50000)
-}
-
-module.exports = new ThreadWorker(sleep, {
-  maxInactiveTime: 500
-})
diff --git a/tests/worker-files/thread/longRunningWorkerSoftBehavior.mjs b/tests/worker-files/thread/longRunningWorkerSoftBehavior.mjs
new file mode 100644 (file)
index 0000000..6441a18
--- /dev/null
@@ -0,0 +1,14 @@
+import { ThreadWorker } from '../../../lib/index.js'
+import { sleepTaskFunction } from '../../test-utils.js'
+
+/**
+ *
+ * @param data
+ */
+async function sleep (data) {
+  return sleepTaskFunction(data, 50000)
+}
+
+export default new ThreadWorker(sleep, {
+  maxInactiveTime: 500
+})
similarity index 56%
rename from tests/worker-files/thread/testMultipleTaskFunctionsWorker.js
rename to tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs
index 3fb6d758731c4c5418b50cb15def620ede97eb53..d559beb7e03baa53c14319fca7b4613b37c09cc6 100644 (file)
@@ -1,12 +1,11 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
-const {
-  jsonIntegerSerialization,
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
+import {
   factorial,
-  fibonacci
-} = require('../../test-utils')
+  fibonacci,
+  jsonIntegerSerialization
+} from '../../test-utils.js'
 
-module.exports = new ThreadWorker(
+export default new ThreadWorker(
   {
     jsonIntegerSerialization: data => jsonIntegerSerialization(data.n),
     factorial: data => factorial(data.n),
diff --git a/tests/worker-files/thread/testWorker.js b/tests/worker-files/thread/testWorker.js
deleted file mode 100644 (file)
index 3945589..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict'
-const { ThreadWorker, KillBehaviors } = require('../../../lib')
-const { executeTaskFunction } = require('../../test-utils')
-const { TaskFunctions } = require('../../test-types')
-
-function test (data) {
-  data = data || {}
-  data.function = data.function || TaskFunctions.jsonIntegerSerialization
-  return executeTaskFunction(data)
-}
-
-module.exports = new ThreadWorker(test, {
-  killBehavior: KillBehaviors.HARD,
-  maxInactiveTime: 500
-})
diff --git a/tests/worker-files/thread/testWorker.mjs b/tests/worker-files/thread/testWorker.mjs
new file mode 100644 (file)
index 0000000..e2c6706
--- /dev/null
@@ -0,0 +1,18 @@
+import { KillBehaviors, ThreadWorker } from '../../../lib/index.js'
+import { executeTaskFunction } from '../../test-utils.js'
+import { TaskFunctions } from '../../test-types.js'
+
+/**
+ *
+ * @param data
+ */
+function test (data) {
+  data = data || {}
+  data.function = data.function || TaskFunctions.jsonIntegerSerialization
+  return executeTaskFunction(data)
+}
+
+export default new ThreadWorker(test, {
+  killBehavior: KillBehaviors.HARD,
+  maxInactiveTime: 500
+})
similarity index 96%
rename from tests/worker/abstract-worker.test.js
rename to tests/worker/abstract-worker.test.mjs
index 1b055217b3e6405b59bf492980e578b1c600ef78..9058790b46654acbd2ea7ecc17ca0e38617dad3e 100644 (file)
@@ -1,7 +1,7 @@
-const { expect } = require('expect')
-const sinon = require('sinon')
-const { ClusterWorker, KillBehaviors, ThreadWorker } = require('../../lib')
-const { DEFAULT_TASK_NAME, EMPTY_FUNCTION } = require('../../lib/utils')
+import { expect } from 'expect'
+import { restore, stub } from 'sinon'
+import { ClusterWorker, KillBehaviors, ThreadWorker } from '../../lib/index.js'
+import { DEFAULT_TASK_NAME, EMPTY_FUNCTION } from '../../lib/utils.js'
 
 describe('Abstract worker test suite', () => {
   class StubWorkerWithMainWorker extends ThreadWorker {
@@ -12,7 +12,7 @@ describe('Abstract worker test suite', () => {
   }
 
   afterEach(() => {
-    sinon.restore()
+    restore()
   })
 
   it('Verify worker options default values', () => {
@@ -178,12 +178,12 @@ describe('Abstract worker test suite', () => {
 
   it('Verify that sync kill handler is called when worker is killed', () => {
     const worker = new ClusterWorker(() => {}, {
-      killHandler: sinon.stub().returns()
+      killHandler: stub().returns()
     })
     worker.isMain = false
-    worker.getMainWorker = sinon.stub().returns({
+    worker.getMainWorker = stub().returns({
       id: 1,
-      send: sinon.stub().returns()
+      send: stub().returns()
     })
     worker.handleKillMessage()
     expect(worker.getMainWorker().send.calledOnce).toBe(true)
@@ -191,7 +191,7 @@ describe('Abstract worker test suite', () => {
   })
 
   it('Verify that async kill handler is called when worker is killed', () => {
-    const killHandlerStub = sinon.stub().returns()
+    const killHandlerStub = stub().returns()
     const worker = new ClusterWorker(() => {}, {
       killHandler: async () => Promise.resolve(killHandlerStub())
     })
@@ -308,9 +308,9 @@ describe('Abstract worker test suite', () => {
       status: false,
       error: new TypeError('name parameter is an empty string')
     })
-    worker.getMainWorker = sinon.stub().returns({
+    worker.getMainWorker = stub().returns({
       id: 1,
-      send: sinon.stub().returns()
+      send: stub().returns()
     })
     expect(worker.taskFunctions.get(DEFAULT_TASK_NAME)).toBeInstanceOf(Function)
     expect(worker.taskFunctions.get('fn1')).toBeInstanceOf(Function)
similarity index 83%
rename from tests/worker/cluster-worker.test.js
rename to tests/worker/cluster-worker.test.mjs
index f857412bb8820690e887d7167a43515edd20dedd..ea6a0481c00e9a5ae1c2af65882fb51c88158fb6 100644 (file)
@@ -1,5 +1,5 @@
-const { expect } = require('expect')
-const { ClusterWorker } = require('../../lib')
+import { expect } from 'expect'
+import { ClusterWorker } from '../../lib/index.js'
 
 describe('Cluster worker test suite', () => {
   let numberOfMessagesSent = 0
similarity index 90%
rename from tests/worker/thread-worker.test.js
rename to tests/worker/thread-worker.test.mjs
index 495e10b13b92e2ff663ff1de551b65028a8a3841..8b6f9c79915602f4f1c2916be72833a8f69c25b3 100644 (file)
@@ -1,5 +1,5 @@
-const { expect } = require('expect')
-const { ThreadWorker } = require('../../lib')
+import { expect } from 'expect'
+import { ThreadWorker } from '../../lib/index.js'
 
 describe('Thread worker test suite', () => {
   let numberOfMessagesPosted = 0
index 87915c1e67db042c15cc271103d0070baf6c54d9..5eca91e41fca03590f023da055054ee476f0544b 100644 (file)
@@ -1,7 +1,4 @@
 {
   "extends": "./tsconfig.json",
-  "compilerOptions": {
-    "sourceMap": true
-  },
   "exclude": ["node_modules", "lib", "examples/typescript/**/*.ts"]
 }