refactor: enforce more worker type safety
[poolifier.git] / src / pools / worker.ts
index 4ff2c494664b571927f9d44e04fe3acbe3ec72e7..1e23ee872aa0b9f1a5ae97d48c2a8c87b06e6567 100644 (file)
@@ -3,22 +3,31 @@ import type { CircularArray } from '../circular-array'
 /**
  * Callback invoked if the worker has received a message.
  */
-export type MessageHandler<Worker> = (this: Worker, m: unknown) => void
+export type MessageHandler<Worker extends IWorker> = (
+  this: Worker,
+  m: unknown
+) => void
 
 /**
  * Callback invoked if the worker raised an error.
  */
-export type ErrorHandler<Worker> = (this: Worker, e: Error) => void
+export type ErrorHandler<Worker extends IWorker> = (
+  this: Worker,
+  e: Error
+) => void
 
 /**
  * Callback invoked when the worker has started successfully.
  */
-export type OnlineHandler<Worker> = (this: Worker) => void
+export type OnlineHandler<Worker extends IWorker> = (this: Worker) => void
 
 /**
  * Callback invoked when the worker exits successfully.
  */
-export type ExitHandler<Worker> = (this: Worker, code: number) => void
+export type ExitHandler<Worker extends IWorker> = (
+  this: Worker,
+  code: number
+) => void
 
 /**
  * Worker task interface.