refactor: cleanup error type
authorJérôme Benoit <jerome.benoit@sap.com>
Sat, 19 Aug 2023 21:20:04 +0000 (23:20 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Sat, 19 Aug 2023 21:20:04 +0000 (23:20 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
CHANGELOG.md
src/pools/abstract-pool.ts
src/pools/selection-strategies/worker-choice-strategy-context.ts
src/pools/worker-node.ts
tests/pools/abstract/abstract-pool.test.js
tests/pools/selection-strategies/worker-choice-strategy-context.test.js

index ec60d67a8e90b2158bb0efa44674fdf655ad2c37..80439e06b0b25109a6eed96aa962a244dd1702c1 100644 (file)
@@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Changed
 
-- Make orthogonal worker choice strategies tasks distribution and dynamic worker creation usage.
+- Make orthogonal worker choice strategies tasks distribution and created dynamic worker usage.
 - Remove the experimental status of the `LEAST_ELU` worker choice strategy.
 
 ## [2.6.30] - 2023-08-19
index 1aa1a13413f807019352907d2dac7a635ab665d1..289d6b35698303a556ced4eb037abfa2c8bb1d8a 100644 (file)
@@ -179,7 +179,7 @@ export abstract class AbstractPool<
   protected checkDynamicPoolSize (min: number, max: number): void {
     if (this.type === PoolTypes.dynamic) {
       if (max == null) {
-        throw new Error(
+        throw new TypeError(
           'Cannot instantiate a dynamic pool without specifying the maximum pool size'
         )
       } else if (!Number.isSafeInteger(max)) {
@@ -302,7 +302,7 @@ export abstract class AbstractPool<
       tasksQueueOptions?.concurrency != null &&
       tasksQueueOptions.concurrency <= 0
     ) {
-      throw new Error(
+      throw new RangeError(
         `Invalid worker tasks concurrency: ${tasksQueueOptions.concurrency} is a negative integer or zero`
       )
     }
index a3e3379c9ac461fc7cd16c2d32bb8735ca2d50ff..51de6e7b79a5cbc28812e41b772b298c86d400ed 100644 (file)
@@ -183,7 +183,7 @@ export class WorkerChoiceStrategyContext<
       this.choiceRetriesCount++
       return this.execute()
     } else if (workerNodeKey == null) {
-      throw new TypeError(
+      throw new Error(
         `Worker node key chosen is null or undefined after ${this.choiceRetriesCount} retries`
       )
     }
index 09e4a7b5cd8831360365a7a88e338e3b921eaf91..57628bf72c74c28d18764e8d6fed067f687e6e71 100644 (file)
@@ -41,18 +41,20 @@ implements IWorkerNode<Worker, Data> {
    */
   constructor (worker: Worker, workerType: WorkerType, poolMaxSize: number) {
     if (worker == null) {
-      throw new Error('Cannot construct a worker node without a worker')
+      throw new TypeError('Cannot construct a worker node without a worker')
     }
     if (workerType == null) {
-      throw new Error('Cannot construct a worker node without a worker type')
+      throw new TypeError(
+        'Cannot construct a worker node without a worker type'
+      )
     }
     if (poolMaxSize == null) {
-      throw new Error(
+      throw new TypeError(
         'Cannot construct a worker node without a pool maximum size'
       )
     }
     if (isNaN(poolMaxSize)) {
-      throw new Error(
+      throw new TypeError(
         'Cannot construct a worker node with a NaN pool maximum size'
       )
     }
index d1c58ddbb73658f495df83f345c013f16c631132..867c1415c95f0cea27f3b85df83d3d8090f140c2 100644 (file)
@@ -34,7 +34,9 @@ describe('Abstract pool test suite', () => {
           }
         )
     ).toThrowError(
-      'Cannot start a pool from a worker with the same type as the pool'
+      new Error(
+        'Cannot start a pool from a worker with the same type as the pool'
+      )
     )
   })
 
@@ -61,7 +63,9 @@ describe('Abstract pool test suite', () => {
 
   it('Verify that numberOfWorkers is checked', () => {
     expect(() => new FixedThreadPool()).toThrowError(
-      'Cannot instantiate a pool without specifying the number of workers'
+      new Error(
+        'Cannot instantiate a pool without specifying the number of workers'
+      )
     )
   })
 
@@ -285,7 +289,7 @@ describe('Abstract pool test suite', () => {
           }
         )
     ).toThrowError(
-      new TypeError(
+      new RangeError(
         'Invalid worker tasks concurrency: 0 is a negative integer or zero'
       )
     )
@@ -509,12 +513,12 @@ describe('Abstract pool test suite', () => {
       new TypeError('Invalid tasks queue options: must be a plain object')
     )
     expect(() => pool.setTasksQueueOptions({ concurrency: 0 })).toThrowError(
-      new Error(
+      new RangeError(
         'Invalid worker tasks concurrency: 0 is a negative integer or zero'
       )
     )
     expect(() => pool.setTasksQueueOptions({ concurrency: -1 })).toThrowError(
-      new Error(
+      new RangeError(
         'Invalid worker tasks concurrency: -1 is a negative integer or zero'
       )
     )
index 63e58d57ed3a9bec4ce6d92c61283379385f2a04..df8cd25cb375a4aa50db889c7b014e4c17b22f9c 100644 (file)
@@ -115,18 +115,14 @@ describe('Worker choice strategy context test suite', () => {
       WorkerChoiceStrategyUndefinedStub
     )
     expect(() => workerChoiceStrategyContext.execute()).toThrowError(
-      new TypeError(
-        'Worker node key chosen is null or undefined after 6 retries'
-      )
+      new Error('Worker node key chosen is null or undefined after 6 retries')
     )
     workerChoiceStrategyContext.workerChoiceStrategies.set(
       workerChoiceStrategyContext.workerChoiceStrategy,
       WorkerChoiceStrategyNullStub
     )
     expect(() => workerChoiceStrategyContext.execute()).toThrowError(
-      new TypeError(
-        'Worker node key chosen is null or undefined after 6 retries'
-      )
+      new Error('Worker node key chosen is null or undefined after 6 retries')
     )
   })