Fix documentation generation
[poolifier.git] / src / pools / pool-worker.ts
1 /**
2 * Callback invoked if the worker has received a message.
3 */
4 export type MessageHandler<Worker> = (this: Worker, m: unknown) => void
5
6 /**
7 * Callback invoked if the worker raised an error.
8 */
9 export type ErrorHandler<Worker> = (this: Worker, e: Error) => void
10
11 /**
12 * Callback invoked when the worker has started successfully.
13 */
14 export type OnlineHandler<Worker> = (this: Worker) => void
15
16 /**
17 * Callback invoked when the worker exits successfully.
18 */
19 export type ExitHandler<Worker> = (this: Worker, code: number) => void
20
21 /**
22 * Interface that describes the minimum required implementation of listener events for a pool worker.
23 */
24 export interface IPoolWorker {
25 /**
26 * Register a listener to the message event.
27 *
28 * @param event `'message'`.
29 * @param handler The message handler.
30 */
31 on(event: 'message', handler: MessageHandler<this>): void
32 /**
33 * Register a listener to the error event.
34 *
35 * @param event `'error'`.
36 * @param handler The error handler.
37 */
38 on(event: 'error', handler: ErrorHandler<this>): void
39 /**
40 * Register a listener to the online event.
41 *
42 * @param event `'online'`.
43 * @param handler The online handler.
44 */
45 on(event: 'online', handler: OnlineHandler<this>): void
46 /**
47 * Register a listener to the exit event.
48 *
49 * @param event `'exit'`.
50 * @param handler The exit handler.
51 */
52 on(event: 'exit', handler: ExitHandler<this>): void
53 /**
54 * Register a listener to the exit event that will only performed once.
55 *
56 * @param event `'exit'`.
57 * @param handler The exit handler.
58 */
59 once(event: 'exit', handler: ExitHandler<this>): void
60 }