From 963e6682981bfb39b95e252c5a83a2b4fca16302 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 1 Jul 2025 21:53:49 +0200 Subject: [PATCH] refactor: coding style cleanups MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- benchmarks/benchmarks-utils.cjs | 15 +++++++------- benchmarks/worker-selection/least.mjs | 15 ++++++++------ .../express-cluster/src/worker.ts | 13 ++++++------ .../src/request-handler-worker.ts | 13 ++++++------ .../express-worker_threads/src/worker.ts | 13 ++++++------ .../fastify-cluster/src/worker.ts | 13 ++++++------ .../src/request-handler-worker.ts | 13 ++++++------ .../fastify-worker_threads/src/worker.ts | 13 ++++++------ .../ws-cluster/src/worker.ts | 14 ++++++------- .../ws-hybrid/src/request-handler-worker.ts | 13 ++++++------ .../ws-worker_threads/src/worker.ts | 13 ++++++------ src/pools/abstract-pool.ts | 14 ++++++++----- .../selection-strategies-utils.ts | 4 ++-- src/pools/utils.ts | 20 ++++++++++++------- src/queues/priority-queue.ts | 5 +++-- src/utils.ts | 10 ++++++---- src/worker/abstract-worker.ts | 3 ++- tests/pools/abstract-pool.test.mjs | 8 ++++---- tests/pools/utils.test.mjs | 2 +- tests/test-utils.cjs | 11 +++++----- 20 files changed, 116 insertions(+), 109 deletions(-) diff --git a/benchmarks/benchmarks-utils.cjs b/benchmarks/benchmarks-utils.cjs index 2f401e805..fa266a753 100644 --- a/benchmarks/benchmarks-utils.cjs +++ b/benchmarks/benchmarks-utils.cjs @@ -43,15 +43,14 @@ const fibonacci = n => { const factorial = n => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - // cluster worker do not support BigInt - return factorial.toString() } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + // cluster worker do not support BigInt + return factorial.toString() } const readWriteFiles = ( diff --git a/benchmarks/worker-selection/least.mjs b/benchmarks/worker-selection/least.mjs index 05e3dc6b1..3b954b7f2 100644 --- a/benchmarks/worker-selection/least.mjs +++ b/benchmarks/worker-selection/least.mjs @@ -31,7 +31,8 @@ function arraySortSelect (tasksMap) { return tasksArray.sort((a, b) => { if (a[1] < b[1]) { return -1 - } else if (a[1] > b[1]) { + } + if (a[1] > b[1]) { return 1 } return 0 @@ -49,7 +50,8 @@ function loopSelect (tasksMap) { for (const [key, value] of tasksMap) { if (value === 0) { return key - } else if (value < minValue) { + } + if (value < minValue) { minKey = key minValue = value } @@ -188,7 +190,8 @@ function selectLoop ( pivotIndex = partition(array, leftIndex, rightIndex, pivotIndex, compare) if (k === pivotIndex) { return array[k] - } else if (k < pivotIndex) { + } + if (k < pivotIndex) { rightIndex = pivotIndex - 1 } else { leftIndex = pivotIndex + 1 @@ -219,11 +222,11 @@ function selectRecursion ( pivotIndex = partition(array, leftIndex, rightIndex, pivotIndex, compare) if (k === pivotIndex) { return array[k] - } else if (k < pivotIndex) { + } + if (k < pivotIndex) { return selectRecursion(array, k, leftIndex, pivotIndex - 1, compare) - } else { - return selectRecursion(array, k, pivotIndex + 1, rightIndex, k, compare) } + return selectRecursion(array, k, pivotIndex + 1, rightIndex, k, compare) } /** diff --git a/examples/typescript/http-server-pool/express-cluster/src/worker.ts b/examples/typescript/http-server-pool/express-cluster/src/worker.ts index 5f70b1da6..40158ac92 100644 --- a/examples/typescript/http-server-pool/express-cluster/src/worker.ts +++ b/examples/typescript/http-server-pool/express-cluster/src/worker.ts @@ -20,14 +20,13 @@ class ExpressWorker extends ClusterWorker { private static readonly factorial = (n: bigint | number): bigint => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } private static readonly startExpress = ( diff --git a/examples/typescript/http-server-pool/express-hybrid/src/request-handler-worker.ts b/examples/typescript/http-server-pool/express-hybrid/src/request-handler-worker.ts index 5edaddad7..4a31133bc 100644 --- a/examples/typescript/http-server-pool/express-hybrid/src/request-handler-worker.ts +++ b/examples/typescript/http-server-pool/express-hybrid/src/request-handler-worker.ts @@ -31,14 +31,13 @@ class RequestHandlerWorker< private static readonly factorial = (n: bigint | number): bigint => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } } diff --git a/examples/typescript/http-server-pool/express-worker_threads/src/worker.ts b/examples/typescript/http-server-pool/express-worker_threads/src/worker.ts index 9796ccb7e..b01283d32 100644 --- a/examples/typescript/http-server-pool/express-worker_threads/src/worker.ts +++ b/examples/typescript/http-server-pool/express-worker_threads/src/worker.ts @@ -27,14 +27,13 @@ class RequestHandlerWorker< private static readonly factorial: (n: bigint | number) => bigint = n => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } } diff --git a/examples/typescript/http-server-pool/fastify-cluster/src/worker.ts b/examples/typescript/http-server-pool/fastify-cluster/src/worker.ts index 7ef976370..7bf360b81 100644 --- a/examples/typescript/http-server-pool/fastify-cluster/src/worker.ts +++ b/examples/typescript/http-server-pool/fastify-cluster/src/worker.ts @@ -19,14 +19,13 @@ class FastifyWorker extends ClusterWorker { private static readonly factorial = (n: bigint | number): bigint => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } private static readonly startFastify = async ( diff --git a/examples/typescript/http-server-pool/fastify-hybrid/src/request-handler-worker.ts b/examples/typescript/http-server-pool/fastify-hybrid/src/request-handler-worker.ts index 5edaddad7..4a31133bc 100644 --- a/examples/typescript/http-server-pool/fastify-hybrid/src/request-handler-worker.ts +++ b/examples/typescript/http-server-pool/fastify-hybrid/src/request-handler-worker.ts @@ -31,14 +31,13 @@ class RequestHandlerWorker< private static readonly factorial = (n: bigint | number): bigint => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } } diff --git a/examples/typescript/http-server-pool/fastify-worker_threads/src/worker.ts b/examples/typescript/http-server-pool/fastify-worker_threads/src/worker.ts index 9796ccb7e..b01283d32 100644 --- a/examples/typescript/http-server-pool/fastify-worker_threads/src/worker.ts +++ b/examples/typescript/http-server-pool/fastify-worker_threads/src/worker.ts @@ -27,14 +27,13 @@ class RequestHandlerWorker< private static readonly factorial: (n: bigint | number) => bigint = n => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } } diff --git a/examples/typescript/websocket-server-pool/ws-cluster/src/worker.ts b/examples/typescript/websocket-server-pool/ws-cluster/src/worker.ts index 4a0ae6a86..eca9cd9fb 100644 --- a/examples/typescript/websocket-server-pool/ws-cluster/src/worker.ts +++ b/examples/typescript/websocket-server-pool/ws-cluster/src/worker.ts @@ -23,14 +23,13 @@ class WebSocketServerWorker extends ClusterWorker { private static readonly factorial = (n: bigint | number): bigint => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } private static readonly startWebSocketServer = ( @@ -49,6 +48,7 @@ class WebSocketServerWorker extends ClusterWorker { ws.on('error', console.error) ws.on('message', (message: RawData) => { const { data, type } = JSON.parse( + // eslint-disable-next-line @typescript-eslint/no-base-to-string message.toString() ) as MessagePayload switch (type) { diff --git a/examples/typescript/websocket-server-pool/ws-hybrid/src/request-handler-worker.ts b/examples/typescript/websocket-server-pool/ws-hybrid/src/request-handler-worker.ts index 89f53f9d3..68c981efe 100644 --- a/examples/typescript/websocket-server-pool/ws-hybrid/src/request-handler-worker.ts +++ b/examples/typescript/websocket-server-pool/ws-hybrid/src/request-handler-worker.ts @@ -29,14 +29,13 @@ class RequestHandlerWorker< private static readonly factorial = (n: bigint | number): bigint => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } } diff --git a/examples/typescript/websocket-server-pool/ws-worker_threads/src/worker.ts b/examples/typescript/websocket-server-pool/ws-worker_threads/src/worker.ts index 9bc8ed659..b04d12188 100644 --- a/examples/typescript/websocket-server-pool/ws-worker_threads/src/worker.ts +++ b/examples/typescript/websocket-server-pool/ws-worker_threads/src/worker.ts @@ -25,14 +25,13 @@ class RequestHandlerWorker< private static readonly factorial = (n: bigint | number): bigint => { if (n === 0 || n === 1) { return 1n - } else { - n = BigInt(n) - let factorial = 1n - for (let i = 1n; i <= n; i++) { - factorial *= i - } - return factorial } + n = BigInt(n) + let factorial = 1n + for (let i = 1n; i <= n; i++) { + factorial *= i + } + return factorial } } diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index 60f350645..639a967e7 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -1470,7 +1470,8 @@ export abstract class AbstractPool< private checkMessageWorkerId (message: MessageValue): void { if (message.workerId == null) { throw new Error('Worker message received without worker id') - } else if (this.getWorkerNodeKeyByWorkerId(message.workerId) === -1) { + } + if (this.getWorkerNodeKeyByWorkerId(message.workerId) === -1) { throw new Error( `Worker message received from unknown worker '${message.workerId.toString()}'` ) @@ -1484,15 +1485,18 @@ export abstract class AbstractPool< throw new Error( 'Cannot instantiate a pool without specifying the number of workers' ) - } else if (!Number.isSafeInteger(minimumNumberOfWorkers)) { + } + if (!Number.isSafeInteger(minimumNumberOfWorkers)) { throw new TypeError( 'Cannot instantiate a pool with a non safe integer number of workers' ) - } else if (minimumNumberOfWorkers < 0) { + } + if (minimumNumberOfWorkers < 0) { throw new RangeError( 'Cannot instantiate a pool with a negative number of workers' ) - } else if (this.type === PoolTypes.fixed && minimumNumberOfWorkers === 0) { + } + if (this.type === PoolTypes.fixed && minimumNumberOfWorkers === 0) { throw new RangeError('Cannot instantiate a fixed pool with zero worker') } } @@ -2242,7 +2246,7 @@ export abstract class AbstractPool< message: MessageValue ): Promise { return await new Promise((resolve, reject) => { - const responsesReceived = new Array>() + const responsesReceived: MessageValue[] = [] const taskFunctionOperationsListener = ( message: MessageValue ): void => { diff --git a/src/pools/selection-strategies/selection-strategies-utils.ts b/src/pools/selection-strategies/selection-strategies-utils.ts index f4268a0b6..8fabdcff4 100644 --- a/src/pools/selection-strategies/selection-strategies-utils.ts +++ b/src/pools/selection-strategies/selection-strategies-utils.ts @@ -50,8 +50,8 @@ const getDefaultWorkerWeight = (): number => { } // CPU estimated cycle time const numberOfDigits = cpu.speed.toString().length - 1 - const cpuCycleTime = 1 / (cpu.speed / Math.pow(10, numberOfDigits)) - cpusCycleTimeWeight += cpuCycleTime * Math.pow(10, numberOfDigits) + const cpuCycleTime = 1 / (cpu.speed / 10 ** numberOfDigits) + cpusCycleTimeWeight += cpuCycleTime * 10 ** numberOfDigits } return Math.round(cpusCycleTimeWeight / currentCpus.length) } diff --git a/src/pools/utils.ts b/src/pools/utils.ts index d708a5cf5..3b9ecaddd 100644 --- a/src/pools/utils.ts +++ b/src/pools/utils.ts @@ -43,7 +43,7 @@ export const getDefaultTasksQueueOptions = ( ): Required> => { return Object.freeze({ concurrency: 1, - size: Math.pow(poolMaxSize, 2), + size: poolMaxSize ** 2, tasksFinishedTimeout: 2000, tasksStealingOnBackPressure: true, tasksStealingRatio: 0.6, @@ -71,19 +71,23 @@ export const checkDynamicPoolSize = ( throw new TypeError( 'Cannot instantiate a dynamic pool without specifying the maximum pool size' ) - } else if (!Number.isSafeInteger(max)) { + } + if (!Number.isSafeInteger(max)) { throw new TypeError( 'Cannot instantiate a dynamic pool with a non safe integer maximum pool size' ) - } else if (min > max) { + } + if (min > max) { throw new RangeError( 'Cannot instantiate a dynamic pool with a maximum pool size inferior to the minimum pool size' ) - } else if (max === 0) { + } + if (max === 0) { throw new RangeError( 'Cannot instantiate a dynamic pool with a maximum pool size equal to zero' ) - } else if (min === max) { + } + if (min === max) { throw new RangeError( 'Cannot instantiate a dynamic pool with a minimum pool size equal to the maximum pool size. Use a fixed pool instead' ) @@ -414,7 +418,8 @@ export const createWorker = ( const getWorkerType = (worker: IWorker): undefined | WorkerType => { if (worker instanceof ThreadWorker) { return WorkerTypes.thread - } else if (worker instanceof ClusterWorker) { + } + if (worker instanceof ClusterWorker) { return WorkerTypes.cluster } } @@ -428,7 +433,8 @@ const getWorkerType = (worker: IWorker): undefined | WorkerType => { const getWorkerId = (worker: IWorker): number | undefined => { if (worker instanceof ThreadWorker) { return worker.threadId - } else if (worker instanceof ClusterWorker) { + } + if (worker instanceof ClusterWorker) { return worker.id } } diff --git a/src/queues/priority-queue.ts b/src/queues/priority-queue.ts index 86961b396..3b12b82e0 100644 --- a/src/queues/priority-queue.ts +++ b/src/queues/priority-queue.ts @@ -188,8 +188,9 @@ export class PriorityQueue { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion delete tail!.next break - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - } else if (node.next === tail && tail!.next == null) { + } + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + if (node.next === tail && tail!.next == null) { delete node.next this.head = node break diff --git a/src/utils.ts b/src/utils.ts index 3e22b8c19..c7946d8c5 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -58,7 +58,7 @@ export const exponentialDelay = ( retryNumber = 0, delayFactor = 100 ): number => { - const delay = Math.pow(2, retryNumber) * delayFactor + const delay = 2 ** retryNumber * delayFactor const randomSum = delay * 0.2 * secureRandom() // 0-20% of the delay return delay + randomSum } @@ -72,7 +72,8 @@ export const exponentialDelay = ( export const average = (dataSet: number[]): number => { if (Array.isArray(dataSet) && dataSet.length === 0) { return 0 - } else if (Array.isArray(dataSet) && dataSet.length === 1) { + } + if (Array.isArray(dataSet) && dataSet.length === 1) { return dataSet[0] } return ( @@ -90,7 +91,8 @@ export const average = (dataSet: number[]): number => { export const median = (dataSet: number[]): number => { if (Array.isArray(dataSet) && dataSet.length === 0) { return 0 - } else if (Array.isArray(dataSet) && dataSet.length === 1) { + } + if (Array.isArray(dataSet) && dataSet.length === 1) { return dataSet[0] } const sortedDataSet = dataSet.slice().sort((a, b) => a - b) @@ -110,7 +112,7 @@ export const median = (dataSet: number[]): number => { * @internal */ export const round = (num: number, scale = 2): number => { - const rounder = Math.pow(10, scale) + const rounder = 10 ** scale return Math.round(num * rounder * (1 + Number.EPSILON)) / rounder } diff --git a/src/worker/abstract-worker.ts b/src/worker/abstract-worker.ts index caa95a9b0..0bcc8757d 100644 --- a/src/worker/abstract-worker.ts +++ b/src/worker/abstract-worker.ts @@ -579,7 +579,8 @@ export abstract class AbstractWorker< private checkMessageWorkerId (message: MessageValue): void { if (message.workerId == null) { throw new Error('Message worker id is not set') - } else if (message.workerId !== this.id) { + } + if (message.workerId !== this.id) { throw new Error( `Message worker id ${message.workerId.toString()} does not match the worker id ${this.id.toString()}` ) diff --git a/tests/pools/abstract-pool.test.mjs b/tests/pools/abstract-pool.test.mjs index 2887aba77..452d5b55d 100644 --- a/tests/pools/abstract-pool.test.mjs +++ b/tests/pools/abstract-pool.test.mjs @@ -275,7 +275,7 @@ describe('Abstract pool test suite', () => { startWorkers: true, tasksQueueOptions: { concurrency: 2, - size: Math.pow(numberOfWorkers, 2), + size: numberOfWorkers ** 2, tasksFinishedTimeout: 2000, tasksStealingOnBackPressure: true, tasksStealingRatio: 0.6, @@ -620,7 +620,7 @@ describe('Abstract pool test suite', () => { expect(pool.opts.enableTasksQueue).toBe(true) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 1, - size: Math.pow(numberOfWorkers, 2), + size: numberOfWorkers ** 2, tasksFinishedTimeout: 2000, tasksStealingOnBackPressure: true, tasksStealingRatio: 0.6, @@ -630,7 +630,7 @@ describe('Abstract pool test suite', () => { expect(pool.opts.enableTasksQueue).toBe(true) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 2, - size: Math.pow(numberOfWorkers, 2), + size: numberOfWorkers ** 2, tasksFinishedTimeout: 2000, tasksStealingOnBackPressure: true, tasksStealingRatio: 0.6, @@ -650,7 +650,7 @@ describe('Abstract pool test suite', () => { ) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 1, - size: Math.pow(numberOfWorkers, 2), + size: numberOfWorkers ** 2, tasksFinishedTimeout: 2000, tasksStealingOnBackPressure: true, tasksStealingRatio: 0.6, diff --git a/tests/pools/utils.test.mjs b/tests/pools/utils.test.mjs index 5f7f5102e..dc3964160 100644 --- a/tests/pools/utils.test.mjs +++ b/tests/pools/utils.test.mjs @@ -26,7 +26,7 @@ describe('Pool utils test suite', () => { const poolMaxSize = 4 expect(getDefaultTasksQueueOptions(poolMaxSize)).toStrictEqual({ concurrency: 1, - size: Math.pow(poolMaxSize, 2), + size: poolMaxSize ** 2, tasksFinishedTimeout: 2000, tasksStealingOnBackPressure: true, tasksStealingRatio: 0.6, diff --git a/tests/test-utils.cjs b/tests/test-utils.cjs index 10fa7fa0d..5c6f394d7 100644 --- a/tests/test-utils.cjs +++ b/tests/test-utils.cjs @@ -87,13 +87,12 @@ const fibonacci = n => { const factorial = n => { if (n === 0 || n === 1) { return 1 - } else { - let factorial = 1 - for (let i = 1; i <= n; i++) { - factorial *= i - } - return factorial } + let factorial = 1 + for (let i = 1; i <= n; i++) { + factorial *= i + } + return factorial } const executeTaskFunction = data => { -- 2.43.0