X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fabstract-pool.ts;h=712de0b7da4c38c2808e1be61da7fced8e372da0;hb=5993cfc5a031fd2d64f644505db125bc1d28b05b;hp=8dedf2052baa90603be809d488639f0e9cb256fd;hpb=d07983740c0d4bec954b7ec29f7f7f11e6549658;p=poolifier.git diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index 8dedf205..712de0b7 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -588,7 +588,8 @@ export abstract class AbstractPool< } /** - * The pool readiness boolean status. + * Whether the pool is ready or not. + * @returns The pool readiness boolean status. */ private get ready (): boolean { if (this.empty) { @@ -606,7 +607,8 @@ export abstract class AbstractPool< } /** - * The pool emptiness boolean status. + * Whether the pool is empty or not. + * @returns The pool emptiness boolean status. */ protected get empty (): boolean { return this.minimumNumberOfWorkers === 0 && this.workerNodes.length === 0 @@ -820,8 +822,7 @@ export abstract class AbstractPool< /** * Whether the pool is full or not. - * - * The pool filling boolean status. + * @returns The pool fullness boolean status. */ protected get full (): boolean { return ( @@ -832,8 +833,7 @@ export abstract class AbstractPool< /** * Whether the pool is busy or not. - * - * The pool busyness boolean status. + * @returns The pool busyness boolean status. */ protected abstract get busy (): boolean @@ -1232,8 +1232,18 @@ export abstract class AbstractPool< name?: string, transferList?: readonly TransferListItem[] ): Promise { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (data == null) { + throw new TypeError('data argument must be a defined iterable') + } + if (typeof data[Symbol.iterator] !== 'function') { + throw new TypeError('data argument must be an iterable') + } + if (!Array.isArray(data)) { + data = [...data] + } return Promise.all( - [...data].map(data => this.execute(data, name, transferList)) + (data as Data[]).map(data => this.execute(data, name, transferList)) ) } @@ -1242,6 +1252,9 @@ export abstract class AbstractPool< * @param initWorkerNodeUsage - Whether to initialize the worker node usage or not. @defaultValue false */ private startMinimumNumberOfWorkers (initWorkerNodeUsage = false): void { + if (this.minimumNumberOfWorkers === 0) { + return + } this.startingMinimumNumberOfWorkers = true while ( this.workerNodes.reduce(