X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fworker%2Fabstract-worker.ts;h=846994591b5b2049039c748b554aba84b1a13d97;hb=681fa0b0307b869ae70caf1cb6e53701b699f8af;hp=9ec38feda57cdccc6cde6598943c2b157e439ed4;hpb=8accb8d5d2f8a6d77017a421938796623ac2b239;p=poolifier.git diff --git a/src/worker/abstract-worker.ts b/src/worker/abstract-worker.ts index 9ec38fed..84699459 100644 --- a/src/worker/abstract-worker.ts +++ b/src/worker/abstract-worker.ts @@ -65,7 +65,7 @@ export abstract class AbstractWorker< this.checkWorkerOptions(this.opts) this.lastTaskTimestamp = Date.now() // Keep the worker active - if (isMain === false) { + if (!isMain) { this.aliveInterval = setInterval( this.checkAlive.bind(this), (this.opts.maxInactiveTime ?? DEFAULT_MAX_INACTIVE_TIME) / 2 @@ -84,7 +84,7 @@ export abstract class AbstractWorker< ): void { if (value.data !== undefined && value.id !== undefined) { // Here you will receive messages - if (this.opts.async) { + if (this.opts.async === true) { this.runInAsyncScope(this.runAsync.bind(this), this, fn, value) } else { this.runInAsyncScope(this.run.bind(this), this, fn, value) @@ -95,19 +95,16 @@ export abstract class AbstractWorker< this.mainWorker = value.parent } else if (value.kill !== undefined) { // Here is time to kill this worker, just clearing the interval - if (this.aliveInterval) clearInterval(this.aliveInterval) + if (this.aliveInterval != null) clearInterval(this.aliveInterval) this.emitDestroy() } } - private checkWorkerOptions (opts: WorkerOptions) { + private checkWorkerOptions (opts: WorkerOptions): void { this.opts.killBehavior = opts.killBehavior ?? DEFAULT_KILL_BEHAVIOR this.opts.maxInactiveTime = opts.maxInactiveTime ?? DEFAULT_MAX_INACTIVE_TIME - /** - * Whether the worker is working asynchronously or not. - */ - this.opts.async = !!opts.async + this.opts.async = opts.async ?? false } /** @@ -116,7 +113,10 @@ export abstract class AbstractWorker< * @param fn The function that should be defined. */ private checkFunctionInput (fn: (data: Data) => Response): void { - if (!fn) throw new Error('fn parameter is mandatory') + if (fn == null) throw new Error('fn parameter is mandatory') + if (typeof fn !== 'function') { + throw new TypeError('fn parameter is not a function') + } } /** @@ -125,7 +125,7 @@ export abstract class AbstractWorker< * @returns Reference to the main worker. */ protected getMainWorker (): MainWorker { - if (!this.mainWorker) { + if (this.mainWorker == null) { throw new Error('Main worker was not set') } return this.mainWorker @@ -139,7 +139,7 @@ export abstract class AbstractWorker< protected abstract sendToMainWorker (message: MessageValue): void /** - * Check to see if the worker should be terminated, because its living too long. + * Checks if the worker should be terminated, because its living too long. */ protected checkAlive (): void { if (