diff --git a/src/classes/worker.ts b/src/classes/worker.ts index 881ce95262..9fd047df3f 100644 --- a/src/classes/worker.ts +++ b/src/classes/worker.ts @@ -29,13 +29,17 @@ import { TimerManager } from './timer-manager'; // note: sandboxed processors would also like to define concurrency per process // for better resource utilization. -export interface WorkerListener { +export interface WorkerListener< + DataType = any, + ResultType = any, + NameType extends string = string, +> { /** * Listen to 'active' event. * * This event is triggered when a job enters the 'active' state. */ - active: (job: Job, prev: string) => void; + active: (job: Job, prev: string) => void; /** * Listen to 'closing' event. @@ -56,7 +60,11 @@ export interface WorkerListener { * * This event is triggered when a job has successfully completed. */ - completed: (job: Job, result: any, prev: string) => void; + completed: ( + job: Job, + result: ResultType, + prev: string, + ) => void; /** * Listen to 'drained' event. @@ -79,7 +87,11 @@ export interface WorkerListener { * * This event is triggered when a job has thrown an exception. */ - failed: (job: Job, error: Error, prev: string) => void; + failed: ( + job: Job, + error: Error, + prev: string, + ) => void; /** * Listen to 'paused' event. @@ -96,7 +108,10 @@ export interface WorkerListener { * progress or any other data from within a processor to the rest of the * world. */ - progress: (job: Job, progress: number | object) => void; + progress: ( + job: Job, + progress: number | object, + ) => void; /** * Listen to 'resumed' event. @@ -211,32 +226,32 @@ export class Worker< this.on('error', err => console.error(err)); } - emit( + emit>( event: U, - ...args: Parameters + ...args: Parameters[U]> ): boolean { return super.emit(event, ...args); } - off( + off>( eventName: U, - listener: WorkerListener[U], + listener: WorkerListener[U], ): this { super.off(eventName, listener); return this; } - on( + on>( event: U, - listener: WorkerListener[U], + listener: WorkerListener[U], ): this { super.on(event, listener); return this; } - once( + once>( event: U, - listener: WorkerListener[U], + listener: WorkerListener[U], ): this { super.once(event, listener); return this;