X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fworker%2Fabstract-worker.ts;h=7d81a88ccc816803bcdcdae4f89cb9dd56486f51;hb=715143510b6627ffeb2735f42bb682935f16b9e9;hp=63d14b2ed2dbd2a592451a7d8363564f8d6c9fbe;hpb=7ae6fb74fef4b3a2491d3d56293914fe5243c0d2;p=poolifier.git diff --git a/src/worker/abstract-worker.ts b/src/worker/abstract-worker.ts index 63d14b2e..7d81a88c 100644 --- a/src/worker/abstract-worker.ts +++ b/src/worker/abstract-worker.ts @@ -7,7 +7,7 @@ import type { TaskPerformance, WorkerStatistics } from '../utility-types' -import { EMPTY_FUNCTION, isPlainObject } from '../utils' +import { EMPTY_FUNCTION, isAsyncFunction, isPlainObject } from '../utils' import { type KillBehavior, KillBehaviors, @@ -154,7 +154,7 @@ export abstract class AbstractWorker< if (message.id != null && message.data != null) { // Task message received const fn = this.getTaskFunction(message.name) - if (fn?.constructor.name === 'AsyncFunction') { + if (isAsyncFunction(fn)) { this.runInAsyncScope(this.runAsync.bind(this), this, fn, message) } else { this.runInAsyncScope(this.runSync.bind(this), this, fn, message) @@ -209,7 +209,7 @@ export abstract class AbstractWorker< * @returns The error message. */ protected handleError (e: Error | string): string { - return e as string + return e instanceof Error ? e.message : e } /** @@ -233,11 +233,11 @@ export abstract class AbstractWorker< id: message.id }) } catch (e) { - const err = this.handleError(e as Error) + const errorMessage = this.handleError(e as Error | string) this.sendToMainWorker({ taskError: { workerId: this.id, - message: err, + message: errorMessage, data: message.data }, id: message.id @@ -270,11 +270,11 @@ export abstract class AbstractWorker< return null }) .catch(e => { - const err = this.handleError(e as Error) + const errorMessage = this.handleError(e as Error | string) this.sendToMainWorker({ taskError: { workerId: this.id, - message: err, + message: errorMessage, data: message.data }, id: message.id