]> Piment Noir Git Repositories - poolifier.git/commitdiff
chore(deps): update all non-major dependencies (#3077)
authorrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sun, 7 Dec 2025 20:18:07 +0000 (21:18 +0100)
committerGitHub <noreply@github.com>
Sun, 7 Dec 2025 20:18:07 +0000 (21:18 +0100)
* chore(deps): update all non-major dependencies

* [autofix.ci] apply automated fixes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
30 files changed:
package.json
pnpm-lock.yaml
src/pools/abstract-pool.ts
src/pools/cluster/dynamic.ts
src/pools/cluster/fixed.ts
src/pools/pool.ts
src/pools/selection-strategies/abstract-worker-choice-strategy.ts
src/pools/selection-strategies/fair-share-worker-choice-strategy.ts
src/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.ts
src/pools/selection-strategies/least-busy-worker-choice-strategy.ts
src/pools/selection-strategies/least-elu-worker-choice-strategy.ts
src/pools/selection-strategies/least-used-worker-choice-strategy.ts
src/pools/selection-strategies/round-robin-worker-choice-strategy.ts
src/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.ts
src/pools/selection-strategies/worker-choice-strategies-context.ts
src/pools/thread/dynamic.ts
src/pools/thread/fixed.ts
src/pools/worker-node.ts
src/pools/worker.ts
src/queues/abstract-fixed-queue.ts
src/queues/fixed-priority-queue.ts
src/queues/fixed-queue.ts
src/queues/priority-queue.ts
src/queues/queue-types.ts
src/utility-types.ts
src/utils.ts
src/worker/abstract-worker.ts
src/worker/cluster-worker.ts
src/worker/task-functions.ts
src/worker/thread-worker.ts

index e6c4c98a53526c1366e8369bd20c58d5a8c26644..3ba0e9de4aba3abec6d14a5c891e1766eb6ba989 100644 (file)
   },
   "devDependencies": {
     "@biomejs/biome": "^2.3.8",
-    "@commitlint/cli": "^20.1.0",
-    "@commitlint/config-conventional": "^20.0.0",
+    "@commitlint/cli": "^20.2.0",
+    "@commitlint/config-conventional": "^20.2.0",
     "@cspell/eslint-plugin": "^9.4.0",
     "@eslint/js": "^9.39.1",
     "@rollup/plugin-terser": "^0.4.4",
     "clean-publish": "^6.0.1",
     "cross-env": "^10.1.0",
     "eslint": "^9.39.1",
-    "eslint-plugin-jsdoc": "^61.4.1",
+    "eslint-plugin-jsdoc": "^61.5.0",
     "eslint-plugin-perfectionist": "^4.15.1",
     "globals": "^16.5.0",
     "husky": "^9.1.7",
     "mocha": "^11.7.5",
     "mochawesome": "^7.1.4",
     "neostandard": "^0.12.2",
-    "prettier": "^3.7.3",
+    "prettier": "^3.7.4",
     "rollup": "^4.53.3",
     "rollup-plugin-analyzer": "^4.0.0",
     "rollup-plugin-command": "^1.1.3",
index da2fbc31165fe3fa906aa274e44db3afded5fa11..9f7e9fb215d63b1ea5909627b1ea4846cfc456de 100644 (file)
@@ -15,11 +15,11 @@ importers:
         specifier: ^2.3.8
         version: 2.3.8
       '@commitlint/cli':
-        specifier: ^20.1.0
-        version: 20.1.0(@types/node@24.10.1)(typescript@5.9.3)
+        specifier: ^20.2.0
+        version: 20.2.0(@types/node@24.10.1)(typescript@5.9.3)
       '@commitlint/config-conventional':
-        specifier: ^20.0.0
-        version: 20.0.0
+        specifier: ^20.2.0
+        version: 20.2.0
       '@cspell/eslint-plugin':
         specifier: ^9.4.0
         version: 9.4.0(eslint@9.39.1(jiti@2.6.1))
@@ -51,8 +51,8 @@ importers:
         specifier: ^9.39.1
         version: 9.39.1(jiti@2.6.1)
       eslint-plugin-jsdoc:
-        specifier: ^61.4.1
-        version: 61.4.1(eslint@9.39.1(jiti@2.6.1))
+        specifier: ^61.5.0
+        version: 61.5.0(eslint@9.39.1(jiti@2.6.1))
       eslint-plugin-perfectionist:
         specifier: ^4.15.1
         version: 4.15.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
@@ -75,8 +75,8 @@ importers:
         specifier: ^0.12.2
         version: 0.12.2(@typescript-eslint/utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
       prettier:
-        specifier: ^3.7.3
-        version: 3.7.3
+        specifier: ^3.7.4
+        version: 3.7.4
       rollup:
         specifier: ^4.53.3
         version: 4.53.3
@@ -173,61 +173,61 @@ packages:
     cpu: [x64]
     os: [win32]
 
-  '@commitlint/cli@20.1.0':
-    resolution: {integrity: sha512-pW5ujjrOovhq5RcYv5xCpb4GkZxkO2+GtOdBW2/qrr0Ll9tl3PX0aBBobGQl3mdZUbOBgwAexEQLeH6uxL0VYg==}
+  '@commitlint/cli@20.2.0':
+    resolution: {integrity: sha512-l37HkrPZ2DZy26rKiTUvdq/LZtlMcxz+PeLv9dzK9NzoFGuJdOQyYU7IEkEQj0pO++uYue89wzOpZ0hcTtoqUA==}
     engines: {node: '>=v18'}
     hasBin: true
 
-  '@commitlint/config-conventional@20.0.0':
-    resolution: {integrity: sha512-q7JroPIkDBtyOkVe9Bca0p7kAUYxZMxkrBArCfuD3yN4KjRAenP9PmYwnn7rsw8Q+hHq1QB2BRmBh0/Z19ZoJw==}
+  '@commitlint/config-conventional@20.2.0':
+    resolution: {integrity: sha512-MsRac+yNIbTB4Q/psstKK4/ciVzACHicSwz+04Sxve+4DW+PiJeTjU0JnS4m/oOnulrXYN+yBPlKaBSGemRfgQ==}
     engines: {node: '>=v18'}
 
-  '@commitlint/config-validator@20.0.0':
-    resolution: {integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg==}
+  '@commitlint/config-validator@20.2.0':
+    resolution: {integrity: sha512-SQCBGsL9MFk8utWNSthdxd9iOD1pIVZSHxGBwYIGfd67RTjxqzFOSAYeQVXOu3IxRC3YrTOH37ThnTLjUlyF2w==}
     engines: {node: '>=v18'}
 
-  '@commitlint/ensure@20.0.0':
-    resolution: {integrity: sha512-WBV47Fffvabe68n+13HJNFBqiMH5U1Ryls4W3ieGwPC0C7kJqp3OVQQzG2GXqOALmzrgAB+7GXmyy8N9ct8/Fg==}
+  '@commitlint/ensure@20.2.0':
+    resolution: {integrity: sha512-+8TgIGv89rOWyt3eC6lcR1H7hqChAKkpawytlq9P1i/HYugFRVqgoKJ8dhd89fMnlrQTLjA5E97/4sF09QwdoA==}
     engines: {node: '>=v18'}
 
   '@commitlint/execute-rule@20.0.0':
     resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==}
     engines: {node: '>=v18'}
 
-  '@commitlint/format@20.0.0':
-    resolution: {integrity: sha512-zrZQXUcSDmQ4eGGrd+gFESiX0Rw+WFJk7nW4VFOmxub4mAATNKBQ4vNw5FgMCVehLUKG2OT2LjOqD0Hk8HvcRg==}
+  '@commitlint/format@20.2.0':
+    resolution: {integrity: sha512-PhNoLNhxpfIBlW/i90uZ3yG3hwSSYx7n4d9Yc+2FAorAHS0D9btYRK4ZZXX+Gm3W5tDtu911ow/eWRfcRVgNWg==}
     engines: {node: '>=v18'}
 
-  '@commitlint/is-ignored@20.0.0':
-    resolution: {integrity: sha512-ayPLicsqqGAphYIQwh9LdAYOVAQ9Oe5QCgTNTj+BfxZb9b/JW222V5taPoIBzYnAP0z9EfUtljgBk+0BN4T4Cw==}
+  '@commitlint/is-ignored@20.2.0':
+    resolution: {integrity: sha512-Lz0OGeZCo/QHUDLx5LmZc0EocwanneYJUM8z0bfWexArk62HKMLfLIodwXuKTO5y0s6ddXaTexrYHs7v96EOmw==}
     engines: {node: '>=v18'}
 
-  '@commitlint/lint@20.0.0':
-    resolution: {integrity: sha512-kWrX8SfWk4+4nCexfLaQT3f3EcNjJwJBsSZ5rMBw6JCd6OzXufFHgel2Curos4LKIxwec9WSvs2YUD87rXlxNQ==}
+  '@commitlint/lint@20.2.0':
+    resolution: {integrity: sha512-cQEEB+jlmyQbyiji/kmh8pUJSDeUmPiWq23kFV0EtW3eM+uAaMLMuoTMajbrtWYWQpPzOMDjYltQ8jxHeHgITg==}
     engines: {node: '>=v18'}
 
-  '@commitlint/load@20.1.0':
-    resolution: {integrity: sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg==}
+  '@commitlint/load@20.2.0':
+    resolution: {integrity: sha512-iAK2GaBM8sPFTSwtagI67HrLKHIUxQc2BgpgNc/UMNme6LfmtHpIxQoN1TbP+X1iz58jq32HL1GbrFTCzcMi6g==}
     engines: {node: '>=v18'}
 
   '@commitlint/message@20.0.0':
     resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==}
     engines: {node: '>=v18'}
 
-  '@commitlint/parse@20.0.0':
-    resolution: {integrity: sha512-j/PHCDX2bGM5xGcWObOvpOc54cXjn9g6xScXzAeOLwTsScaL4Y+qd0pFC6HBwTtrH92NvJQc+2Lx9HFkVi48cg==}
+  '@commitlint/parse@20.2.0':
+    resolution: {integrity: sha512-LXStagGU1ivh07X7sM+hnEr4BvzFYn1iBJ6DRg2QsIN8lBfSzyvkUcVCDwok9Ia4PWiEgei5HQjju6xfJ1YaSQ==}
     engines: {node: '>=v18'}
 
-  '@commitlint/read@20.0.0':
-    resolution: {integrity: sha512-Ti7Y7aEgxsM1nkwA4ZIJczkTFRX/+USMjNrL9NXwWQHqNqrBX2iMi+zfuzZXqfZ327WXBjdkRaytJ+z5vNqTOA==}
+  '@commitlint/read@20.2.0':
+    resolution: {integrity: sha512-+SjF9mxm5JCbe+8grOpXCXMMRzAnE0WWijhhtasdrpJoAFJYd5UgRTj/oCq5W3HJTwbvTOsijEJ0SUGImECD7Q==}
     engines: {node: '>=v18'}
 
-  '@commitlint/resolve-extends@20.1.0':
-    resolution: {integrity: sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw==}
+  '@commitlint/resolve-extends@20.2.0':
+    resolution: {integrity: sha512-KVoLDi9BEuqeq+G0wRABn4azLRiCC22/YHR2aCquwx6bzCHAIN8hMt3Nuf1VFxq/c8ai6s8qBxE8+ZD4HeFTlQ==}
     engines: {node: '>=v18'}
 
-  '@commitlint/rules@20.0.0':
-    resolution: {integrity: sha512-gvg2k10I/RfvHn5I5sxvVZKM1fl72Sqrv2YY/BnM7lMHcYqO0E2jnRWoYguvBfEcZ39t+rbATlciggVe77E4zA==}
+  '@commitlint/rules@20.2.0':
+    resolution: {integrity: sha512-27rHGpeAjnYl/A+qUUiYDa7Yn1WIjof/dFJjYW4gA1Ug+LUGa1P0AexzGZ5NBxTbAlmDgaxSZkLLxtLVqtg8PQ==}
     engines: {node: '>=v18'}
 
   '@commitlint/to-lines@20.0.0':
@@ -238,8 +238,8 @@ packages:
     resolution: {integrity: sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==}
     engines: {node: '>=v18'}
 
-  '@commitlint/types@20.0.0':
-    resolution: {integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA==}
+  '@commitlint/types@20.2.0':
+    resolution: {integrity: sha512-KTy0OqRDLR5y/zZMnizyx09z/rPlPC/zKhYgH8o/q6PuAjoQAKlRfY4zzv0M64yybQ//6//4H1n14pxaLZfUnA==}
     engines: {node: '>=v18'}
 
   '@cspell/cspell-bundled-dicts@9.4.0':
@@ -1439,8 +1439,8 @@ packages:
       eslint-import-resolver-node:
         optional: true
 
-  eslint-plugin-jsdoc@61.4.1:
-    resolution: {integrity: sha512-3c1QW/bV25sJ1MsIvsvW+EtLtN6yZMduw7LVQNVt72y2/5BbV5Pg5b//TE5T48LRUxoEQGaZJejCmcj3wCxBzw==}
+  eslint-plugin-jsdoc@61.5.0:
+    resolution: {integrity: sha512-PR81eOGq4S7diVnV9xzFSBE4CDENRQGP0Lckkek8AdHtbj+6Bm0cItwlFnxsLFriJHspiE3mpu8U20eODyToIg==}
     engines: {node: '>=20.11.0'}
     peerDependencies:
       eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
@@ -2302,8 +2302,8 @@ packages:
     resolution: {integrity: sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==}
     engines: {node: '>=16'}
 
-  prettier@3.7.3:
-    resolution: {integrity: sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==}
+  prettier@3.7.4:
+    resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==}
     engines: {node: '>=14'}
     hasBin: true
 
@@ -2858,32 +2858,32 @@ snapshots:
   '@biomejs/cli-win32-x64@2.3.8':
     optional: true
 
-  '@commitlint/cli@20.1.0(@types/node@24.10.1)(typescript@5.9.3)':
+  '@commitlint/cli@20.2.0(@types/node@24.10.1)(typescript@5.9.3)':
     dependencies:
-      '@commitlint/format': 20.0.0
-      '@commitlint/lint': 20.0.0
-      '@commitlint/load': 20.1.0(@types/node@24.10.1)(typescript@5.9.3)
-      '@commitlint/read': 20.0.0
-      '@commitlint/types': 20.0.0
+      '@commitlint/format': 20.2.0
+      '@commitlint/lint': 20.2.0
+      '@commitlint/load': 20.2.0(@types/node@24.10.1)(typescript@5.9.3)
+      '@commitlint/read': 20.2.0
+      '@commitlint/types': 20.2.0
       tinyexec: 1.0.2
       yargs: 17.7.2
     transitivePeerDependencies:
       - '@types/node'
       - typescript
 
-  '@commitlint/config-conventional@20.0.0':
+  '@commitlint/config-conventional@20.2.0':
     dependencies:
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
       conventional-changelog-conventionalcommits: 7.0.2
 
-  '@commitlint/config-validator@20.0.0':
+  '@commitlint/config-validator@20.2.0':
     dependencies:
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
       ajv: 8.17.1
 
-  '@commitlint/ensure@20.0.0':
+  '@commitlint/ensure@20.2.0':
     dependencies:
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
       lodash.camelcase: 4.3.0
       lodash.kebabcase: 4.1.1
       lodash.snakecase: 4.1.1
@@ -2892,29 +2892,29 @@ snapshots:
 
   '@commitlint/execute-rule@20.0.0': {}
 
-  '@commitlint/format@20.0.0':
+  '@commitlint/format@20.2.0':
     dependencies:
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
       chalk: 5.6.2
 
-  '@commitlint/is-ignored@20.0.0':
+  '@commitlint/is-ignored@20.2.0':
     dependencies:
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
       semver: 7.7.3
 
-  '@commitlint/lint@20.0.0':
+  '@commitlint/lint@20.2.0':
     dependencies:
-      '@commitlint/is-ignored': 20.0.0
-      '@commitlint/parse': 20.0.0
-      '@commitlint/rules': 20.0.0
-      '@commitlint/types': 20.0.0
+      '@commitlint/is-ignored': 20.2.0
+      '@commitlint/parse': 20.2.0
+      '@commitlint/rules': 20.2.0
+      '@commitlint/types': 20.2.0
 
-  '@commitlint/load@20.1.0(@types/node@24.10.1)(typescript@5.9.3)':
+  '@commitlint/load@20.2.0(@types/node@24.10.1)(typescript@5.9.3)':
     dependencies:
-      '@commitlint/config-validator': 20.0.0
+      '@commitlint/config-validator': 20.2.0
       '@commitlint/execute-rule': 20.0.0
-      '@commitlint/resolve-extends': 20.1.0
-      '@commitlint/types': 20.0.0
+      '@commitlint/resolve-extends': 20.2.0
+      '@commitlint/types': 20.2.0
       chalk: 5.6.2
       cosmiconfig: 9.0.0(typescript@5.9.3)
       cosmiconfig-typescript-loader: 6.2.0(@types/node@24.10.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3)
@@ -2927,35 +2927,35 @@ snapshots:
 
   '@commitlint/message@20.0.0': {}
 
-  '@commitlint/parse@20.0.0':
+  '@commitlint/parse@20.2.0':
     dependencies:
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
       conventional-changelog-angular: 7.0.0
       conventional-commits-parser: 5.0.0
 
-  '@commitlint/read@20.0.0':
+  '@commitlint/read@20.2.0':
     dependencies:
       '@commitlint/top-level': 20.0.0
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
       git-raw-commits: 4.0.0
       minimist: 1.2.8
       tinyexec: 1.0.2
 
-  '@commitlint/resolve-extends@20.1.0':
+  '@commitlint/resolve-extends@20.2.0':
     dependencies:
-      '@commitlint/config-validator': 20.0.0
-      '@commitlint/types': 20.0.0
+      '@commitlint/config-validator': 20.2.0
+      '@commitlint/types': 20.2.0
       global-directory: 4.0.1
       import-meta-resolve: 4.2.0
       lodash.mergewith: 4.6.2
       resolve-from: 5.0.0
 
-  '@commitlint/rules@20.0.0':
+  '@commitlint/rules@20.2.0':
     dependencies:
-      '@commitlint/ensure': 20.0.0
+      '@commitlint/ensure': 20.2.0
       '@commitlint/message': 20.0.0
       '@commitlint/to-lines': 20.0.0
-      '@commitlint/types': 20.0.0
+      '@commitlint/types': 20.2.0
 
   '@commitlint/to-lines@20.0.0': {}
 
@@ -2963,7 +2963,7 @@ snapshots:
     dependencies:
       find-up: 7.0.0
 
-  '@commitlint/types@20.0.0':
+  '@commitlint/types@20.2.0':
     dependencies:
       '@types/conventional-commits-parser': 5.0.2
       chalk: 5.6.2
@@ -4260,7 +4260,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-plugin-jsdoc@61.4.1(eslint@9.39.1(jiti@2.6.1)):
+  eslint-plugin-jsdoc@61.5.0(eslint@9.39.1(jiti@2.6.1)):
     dependencies:
       '@es-joy/jsdoccomment': 0.76.0
       '@es-joy/resolve.exports': 1.2.0
@@ -5193,7 +5193,7 @@ snapshots:
 
   presentable-error@0.0.1: {}
 
-  prettier@3.7.3: {}
+  prettier@3.7.4: {}
 
   prop-types@15.8.1:
     dependencies:
index ec1848e4829fd5749e476c8d52ccd0496a49913e..507bb151e3f9adf1fb5d1b2a3435355bfb6b9145 100644 (file)
@@ -73,9 +73,9 @@ import { WorkerNode } from './worker-node.js'
 
 /**
  * Base class that implements some shared logic for all poolifier pools.
- * @typeParam Worker - Type of worker which manages this pool.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages this pool.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export abstract class AbstractPool<
   Worker extends IWorker,
index 48d83e4d2288383bea84af7abd3506643a264687..1fcf676b8715587835b41a8f36104a688d5c9218 100644 (file)
@@ -7,8 +7,8 @@ import { type ClusterPoolOptions, FixedClusterPool } from './fixed.js'
  *
  * This cluster pool creates new workers when the others are busy, up to the maximum number of workers.
  * When the maximum number of workers is reached and workers are busy, an event is emitted. If you want to listen to this event, use the pool's `emitter`.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  * @author [Christopher Quadflieg](https://github.com/Shinigami92)
  * @since 2.0.0
  */
index 6bfd0783c711dd905dde9e7b532f745e24717c0e..3f9f51506b1d3dc9cb6310b41e52a62b3e3da013 100644 (file)
@@ -13,8 +13,8 @@ export type ClusterPoolOptions = PoolOptions<Worker>
 
 /**
  * A cluster pool with a fixed number of workers.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  * @author [Christopher Quadflieg](https://github.com/Shinigami92)
  * @since 2.0.0
  */
index 9f54fc4d056b2832dec1c5a68d0bc9e9e4f0bcad..fb1ba7b94de98e76bd9d7ce5eaf69505f488c7fc 100644 (file)
@@ -74,9 +74,9 @@ export const PoolEvents: Readonly<{
 
 /**
  * Contract definition for a poolifier pool.
- * @typeParam Worker - Type of worker which manages this pool.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages this pool.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export interface IPool<
   Worker extends IWorker,
@@ -289,7 +289,7 @@ export interface PoolInfo {
 
 /**
  * Options for a poolifier pool.
- * @typeParam Worker - Type of worker.
+ * @template Worker - Type of worker.
  */
 export interface PoolOptions<Worker extends IWorker> {
   /**
index 6714934ab475b2a840b770b2a03ca11d8b962367..e2c825cfe1140c986df191ffc6ad380c0014183a 100644 (file)
@@ -16,9 +16,9 @@ import {
 
 /**
  * Worker choice strategy abstract base class.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export abstract class AbstractWorkerChoiceStrategy<
   Worker extends IWorker,
index a60cc1a65b1b645acecac36e08432c7d4647a990..602a29c6687647df91ebbcd98d3d36227d34778f 100644 (file)
@@ -14,9 +14,9 @@ import {
 /**
  * Selects the next worker with a fair share scheduling algorithm.
  * Loosely modeled after the fair queueing algorithm: https://en.wikipedia.org/wiki/Fair_queuing.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export class FairShareWorkerChoiceStrategy<
     Worker extends IWorker,
index 574a3adc3c20a6f125a2117244ae6d749f11b911..0eb680db248bbc364a9ecf22caf28153103aaff5 100644 (file)
@@ -13,9 +13,9 @@ import {
 
 /**
  * Selects the next worker with an interleaved weighted round robin scheduling algorithm.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export class InterleavedWeightedRoundRobinWorkerChoiceStrategy<
     Worker extends IWorker,
index 62170653fb7467eddfde645b1ddc30f413883999..7bfeca79789986411c34c2b110da581631025e40 100644 (file)
@@ -13,9 +13,9 @@ import {
 
 /**
  * Selects the least busy worker.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export class LeastBusyWorkerChoiceStrategy<
     Worker extends IWorker,
index cda8535c34e735aa1ef8ad1262de1d661b46e9e2..e72d57267bcfe7784268a6c9293cd9883d20480c 100644 (file)
@@ -13,9 +13,9 @@ import {
 
 /**
  * Selects the worker with the least ELU.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export class LeastEluWorkerChoiceStrategy<
     Worker extends IWorker,
index 13e6dd33ebf24bd9ed8222c7f8abd66ffc887665..02405f031c7cb3e276efe88f033ac7275fd3e9ae 100644 (file)
@@ -11,9 +11,9 @@ import {
 
 /**
  * Selects the least used worker.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export class LeastUsedWorkerChoiceStrategy<
     Worker extends IWorker,
index 0ec0313747e16cae37707d34563663687c23f996..705be62734b4c55c770e85840fbc01672a53a532 100644 (file)
@@ -11,9 +11,9 @@ import {
 
 /**
  * Selects the next worker in a round robin fashion.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export class RoundRobinWorkerChoiceStrategy<
     Worker extends IWorker,
index 365fda9dfb16ae6f518cc9353cab70dfe88d2cd4..fdcedc06e2b1444c8b2b7f84463b1a97e47f3b5b 100644 (file)
@@ -14,9 +14,9 @@ import {
 /**
  * Selects the next worker with a weighted round robin scheduling algorithm.
  * Loosely modeled after the weighted round robin queueing algorithm: https://en.wikipedia.org/wiki/Weighted_round_robin.
- * @typeParam Worker - Type of worker which manages the strategy.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker which manages the strategy.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export class WeightedRoundRobinWorkerChoiceStrategy<
     Worker extends IWorker,
index 66a27865a0f113cd583ee63923febbd0f025f7b6..8c75842aec592a7def4a20fe15b25698bd0cc73c 100644 (file)
@@ -18,9 +18,9 @@ import {
 
 /**
  * The worker choice strategies context.
- * @typeParam Worker - Type of worker.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Worker - Type of worker.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  * @internal
  */
 export class WorkerChoiceStrategiesContext<
index 17d759ea9c28ee4b6a624923904c2251baadafa4..5102e518a319f4a7653c2d3a8e378ccb8f722f67 100644 (file)
@@ -7,8 +7,8 @@ import { FixedThreadPool, type ThreadPoolOptions } from './fixed.js'
  *
  * This thread pool creates new threads when the others are busy, up to the maximum number of threads.
  * When the maximum number of threads is reached and workers are busy, an event is emitted. If you want to listen to this event, use the pool's `emitter`.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  * @author [Alessandro Pio Ardizio](https://github.com/pioardi)
  * @since 0.0.1
  */
index bdf63e6a34220c45d45708362194d4c658dcbde1..3a0a0f90446f1f2b2a4f0953c149b4bb09139e6d 100644 (file)
@@ -17,8 +17,8 @@ export type ThreadPoolOptions = PoolOptions<Worker>
 
 /**
  * A thread pool with a fixed number of threads.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  * @author [Alessandro Pio Ardizio](https://github.com/pioardi)
  * @since 0.0.1
  */
index 840b3d42f9d0898788c3d53e8714a0efdf202001..e47f8475dabf12e47653a7447244962394fbf91f 100644 (file)
@@ -26,8 +26,8 @@ import {
 
 /**
  * Worker node.
- * @typeParam Worker - Type of worker.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Worker - Type of worker.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
  */
 export class WorkerNode<Worker extends IWorker, Data = unknown>
   extends EventEmitter
index 686389321812b7907d906d7520079afb71712306..db170095b277ed8e3b268accdee68fb745c8877b 100644 (file)
@@ -7,7 +7,7 @@ import type { Task, TaskFunctionProperties } from '../utility-types.js'
 
 /**
  * Callback invoked if the worker raised an error.
- * @typeParam Worker - Type of worker.
+ * @template Worker - Type of worker.
  */
 export type ErrorHandler<Worker extends IWorker> = (
   this: Worker,
@@ -16,7 +16,7 @@ export type ErrorHandler<Worker extends IWorker> = (
 
 /**
  * Worker event handler.
- * @typeParam Worker - Type of worker.
+ * @template Worker - Type of worker.
  */
 export type EventHandler<Worker extends IWorker> =
   | ErrorHandler<Worker>
@@ -26,7 +26,7 @@ export type EventHandler<Worker extends IWorker> =
 
 /**
  * Callback invoked when the worker exits successfully.
- * @typeParam Worker - Type of worker.
+ * @template Worker - Type of worker.
  */
 export type ExitHandler<Worker extends IWorker> = (
   this: Worker,
@@ -35,7 +35,7 @@ export type ExitHandler<Worker extends IWorker> = (
 
 /**
  * Callback invoked if the worker has received a message.
- * @typeParam Worker - Type of worker.
+ * @template Worker - Type of worker.
  */
 export type MessageHandler<Worker extends IWorker> = (
   this: Worker,
@@ -44,7 +44,7 @@ export type MessageHandler<Worker extends IWorker> = (
 
 /**
  * Callback invoked when the worker has started successfully.
- * @typeParam Worker - Type of worker.
+ * @template Worker - Type of worker.
  */
 export type OnlineHandler<Worker extends IWorker> = (this: Worker) => void
 
@@ -186,8 +186,8 @@ export interface IWorker extends EventEmitter {
 
 /**
  * Worker node interface.
- * @typeParam Worker - Type of worker.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Worker - Type of worker.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
  * @internal
  */
 export interface IWorkerNode<Worker extends IWorker, Data = unknown>
index a90849ba3934086edd5e1266e122d054a186010c..eba89d3bc16887e08b68c7b98db77b6493823c31 100644 (file)
@@ -6,7 +6,7 @@ import {
 
 /**
  * Base fixed queue class.
- * @typeParam T - Type of fixed queue data.
+ * @template T - Type of fixed queue data.
  * @internal
  */
 export abstract class AbstractFixedQueue<T> implements IFixedQueue<T> {
index 6940d8e73cc86b77c8a522616955ee7ae6e60828..427ac425faeb9df07f0ec96f91bdab0fb67f4c93 100644 (file)
@@ -4,7 +4,7 @@ import { AbstractFixedQueue } from './abstract-fixed-queue.js'
 
 /**
  * Fixed priority queue.
- * @typeParam T - Type of fixed priority queue data.
+ * @template T - Type of fixed priority queue data.
  * @internal
  */
 export class FixedPriorityQueue<T>
index e18c9d33f3d5cff02389a8e4f4ace88f76d0a9af..af42e4e787714db7beeeb58059bc4c34943b67bc 100644 (file)
@@ -4,7 +4,7 @@ import { AbstractFixedQueue } from './abstract-fixed-queue.js'
 
 /**
  * Fixed queue.
- * @typeParam T - Type of fixed queue data.
+ * @template T - Type of fixed queue data.
  * @internal
  */
 export class FixedQueue<T>
index 2b3db24ea3819a20bee3884cf7f7342822fb8742..503800f39a47cc77e13c67e384a03a349532aac0 100644 (file)
@@ -10,7 +10,7 @@ import {
 
 /**
  * Priority queue.
- * @typeParam T - Type of priority queue data.
+ * @template T - Type of priority queue data.
  * @internal
  */
 export class PriorityQueue<T> {
index b4d226dfae06d509f764b5c411bbe234aacde5c6..48e00e4d821dab39662b3b0d52c47c5ddc86172d 100644 (file)
@@ -6,7 +6,7 @@ export const defaultQueueSize = 2048
 
 /**
  * Fixed queue node.
- * @typeParam T - Type of fixed queue node data.
+ * @template T - Type of fixed queue node data.
  * @internal
  */
 export interface FixedQueueNode<T> {
@@ -17,7 +17,7 @@ export interface FixedQueueNode<T> {
 
 /**
  * Fixed queue.
- * @typeParam T - Type of fixed queue data.
+ * @template T - Type of fixed queue data.
  * @internal
  */
 export interface IFixedQueue<T> {
@@ -82,7 +82,7 @@ export const defaultBucketSize = 2048
 
 /**
  * Priority queue node.
- * @typeParam T - Type of priority queue node data.
+ * @template T - Type of priority queue node data.
  * @internal
  */
 export interface PriorityQueueNode<T> extends IFixedQueue<T> {
index cd395c5519a3cac44784f4c0b6d3528aee862ef9..b3bdebc394e1f9d958acba50776ad0c64b6c885a 100644 (file)
@@ -7,8 +7,8 @@ import type { KillBehavior } from './worker/worker-options.js'
 
 /**
  * Message object that is passed between main worker and worker.
- * @typeParam Data - Type of data sent to the worker or execution response. This can only be structured-cloneable data.
- * @typeParam ErrorData - Type of data sent to the worker triggering an error. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker or execution response. This can only be structured-cloneable data.
+ * @template ErrorData - Type of data sent to the worker triggering an error. This can only be structured-cloneable data.
  * @internal
  */
 export interface MessageValue<Data = unknown, ErrorData = unknown>
@@ -77,7 +77,7 @@ export interface MessageValue<Data = unknown, ErrorData = unknown>
 
 /**
  * An object holding the task execution response promise resolve/reject callbacks.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  * @internal
  */
 export interface PromiseResponseWrapper<Response = unknown> {
@@ -105,7 +105,7 @@ export interface PromiseResponseWrapper<Response = unknown> {
 
 /**
  * Message object that is passed as a task between main worker and worker.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
  * @internal
  */
 export interface Task<Data = unknown> {
@@ -187,7 +187,7 @@ export interface TaskPerformance {
 
 /**
  * Worker error.
- * @typeParam Data - Type of data sent to the worker triggering an error. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker triggering an error. This can only be structured-cloneable data.
  */
 export interface WorkerError<Data = unknown> {
   /**
@@ -233,7 +233,7 @@ export interface WorkerStatistics {
 
 /**
  * Remove readonly modifier from all properties of T.
- * @typeParam T - Type to remove readonly modifier.
+ * @template T - Type to remove readonly modifier.
  * @internal
  */
 export type Writable<T> = { -readonly [P in keyof T]: T[P] }
index a535d5d698c82abd207015049fffa42c4516d706..d15ffbb759dad334f0fc003b14fd8bab50a7ae04 100644 (file)
@@ -129,7 +129,7 @@ export const isPlainObject = (value: unknown): value is object =>
 
 /**
  * Detects whether the given value is a kill behavior or not.
- * @typeParam KB - Which specific KillBehavior type to test against.
+ * @template KB - Which specific KillBehavior type to test against.
  * @param killBehavior - Which kind of kill behavior to detect.
  * @param value - Unknown value.
  * @returns `true` if `value` was strictly equals to `killBehavior`, otherwise `false`.
@@ -197,9 +197,9 @@ export const max = (...args: number[]): number =>
  * @param fn - The function to wrap.
  * @param context - The context to bind the function to.
  * @returns The wrapped function.
- * @typeParam A - The function's arguments.
- * @typeParam R - The function's return value.
- * @typeParam C - The function's context.
+ * @template A - The function's arguments.
+ * @template R - The function's return value.
+ * @template C - The function's context.
  * @internal
  */
 // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unnecessary-type-parameters
index 13372cf27d5ca245b4c93443b7a1b4ca0e90631c..28ab193a8ff0f58cc5558c263956933c82b5ab0a 100644 (file)
@@ -53,9 +53,9 @@ const DEFAULT_WORKER_OPTIONS: Readonly<WorkerOptions> = Object.freeze({
 
 /**
  * Base class that implements some shared logic for all poolifier workers.
- * @typeParam MainWorker - Type of main worker.
- * @typeParam Data - Type of data this worker receives from pool's execution. This can only be structured-cloneable data.
- * @typeParam Response - Type of response the worker sends back to the main worker. This can only be structured-cloneable data.
+ * @template MainWorker - Type of main worker.
+ * @template Data - Type of data this worker receives from pool's execution. This can only be structured-cloneable data.
+ * @template Response - Type of response the worker sends back to the main worker. This can only be structured-cloneable data.
  */
 export abstract class AbstractWorker<
   MainWorker extends MessagePort | Worker,
index 4a0b56554a7b6f51e42388fad2f4379458070eee..a2b626102c9c020991d85af935419efc3ebe7f92 100644 (file)
@@ -15,8 +15,8 @@ import { AbstractWorker } from './abstract-worker.js'
  *
  * If you use a `DynamicClusterPool` the extra workers that were created will be terminated,
  * but the minimum number of workers will be guaranteed.
- * @typeParam Data - Type of data this worker receives from pool's execution. This can only be structured-cloneable data.
- * @typeParam Response - Type of response the worker sends back to the main worker. This can only be structured-cloneable data.
+ * @template Data - Type of data this worker receives from pool's execution. This can only be structured-cloneable data.
+ * @template Response - Type of response the worker sends back to the main worker. This can only be structured-cloneable data.
  * @author [Christopher Quadflieg](https://github.com/Shinigami92)
  * @since 2.0.0
  */
index 11099d3c186b42131fa926ef7082e5c7191436e2..7bbcbf9383165c2c16f95726d12f620ddc6068ec 100644 (file)
@@ -5,8 +5,8 @@ import type { WorkerChoiceStrategy } from '../pools/selection-strategies/selecti
  * This function must return a promise.
  * @param data - Data sent to the worker.
  * @returns Execution response promise.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export type TaskAsyncFunction<Data = unknown, Response = unknown> = (
   data?: Data
@@ -15,8 +15,8 @@ export type TaskAsyncFunction<Data = unknown, Response = unknown> = (
 /**
  * Task function that can be executed.
  * This function can be synchronous or asynchronous.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export type TaskFunction<Data = unknown, Response = unknown> =
   | TaskAsyncFunction<Data, Response>
@@ -24,8 +24,8 @@ export type TaskFunction<Data = unknown, Response = unknown> =
 
 /**
  * Task function object.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export interface TaskFunctionObject<Data = unknown, Response = unknown> {
   /**
@@ -54,8 +54,8 @@ export interface TaskFunctionOperationResult {
  * Tasks functions that can be executed.
  * The key is the name of the task function or task function object.
  * The value is the task function or task function object.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export type TaskFunctions<Data = unknown, Response = unknown> = Record<
   string,
@@ -66,8 +66,8 @@ export type TaskFunctions<Data = unknown, Response = unknown> = Record<
  * Task synchronous function that can be executed.
  * @param data - Data sent to the worker.
  * @returns Execution response.
- * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
- * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @template Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @template Response - Type of execution response. This can only be structured-cloneable data.
  */
 export type TaskSyncFunction<Data = unknown, Response = unknown> = (
   data?: Data
index 2bf172b8ee27b892c76d8f0c2857f70b883dd8ef..34bfd5bbb1303e28624537fa0561e14991c7e782 100644 (file)
@@ -20,8 +20,8 @@ import { AbstractWorker } from './abstract-worker.js'
  *
  * If you use a `DynamicThreadPool` the extra workers that were created will be terminated,
  * but the minimum number of workers will be guaranteed.
- * @typeParam Data - Type of data this worker receives from pool's execution. This can only be structured-cloneable data.
- * @typeParam Response - Type of response the worker sends back to the main thread. This can only be structured-cloneable data.
+ * @template Data - Type of data this worker receives from pool's execution. This can only be structured-cloneable data.
+ * @template Response - Type of response the worker sends back to the main thread. This can only be structured-cloneable data.
  * @author [Alessandro Pio Ardizio](https://github.com/pioardi)
  * @since 0.0.1
  */