X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fworker%2Fabstract-worker.ts;h=ca14133f2dafa7b1d6692f84459bafabb431e935;hb=f725dbf0368c00546e08e5b884ded0d93e8563e0;hp=033ed2a5e663fbcd7c88b4317adc240e20b2d298;hpb=9d2d0da193405976471817f6b0d048006bd01418;p=poolifier.git diff --git a/src/worker/abstract-worker.ts b/src/worker/abstract-worker.ts index 033ed2a5..ca14133f 100644 --- a/src/worker/abstract-worker.ts +++ b/src/worker/abstract-worker.ts @@ -103,6 +103,27 @@ export abstract class AbstractWorker< delete this.opts.async } + private checkValidTaskFunction ( + name: string, + fn: TaskFunction + ): void { + if (typeof name !== 'string') { + throw new TypeError( + 'A taskFunctions parameter object key is not a string' + ) + } + if (typeof name === 'string' && name.trim().length === 0) { + throw new TypeError( + 'A taskFunctions parameter object key is an empty string' + ) + } + if (typeof fn !== 'function') { + throw new TypeError( + 'A taskFunctions parameter object value is not a function' + ) + } + } + /** * Checks if the `taskFunctions` parameter is passed to the constructor. * @@ -128,21 +149,7 @@ export abstract class AbstractWorker< } else if (isPlainObject(taskFunctions)) { let firstEntry = true for (const [name, fn] of Object.entries(taskFunctions)) { - if (typeof name !== 'string') { - throw new TypeError( - 'A taskFunctions parameter object key is not a string' - ) - } - if (typeof name === 'string' && name.trim().length === 0) { - throw new TypeError( - 'A taskFunctions parameter object key an empty string' - ) - } - if (typeof fn !== 'function') { - throw new TypeError( - 'A taskFunctions parameter object value is not a function' - ) - } + this.checkValidTaskFunction(name, fn) const boundFn = fn.bind(this) if (firstEntry) { this.taskFunctions.set(DEFAULT_TASK_NAME, boundFn) @@ -422,6 +429,7 @@ export abstract class AbstractWorker< * Returns the main worker. * * @returns Reference to the main worker. + * @throws {@link https://nodejs.org/api/errors.html#class-error} If the main worker is not set. */ protected getMainWorker (): MainWorker { if (this.mainWorker == null) {