refactor: consolidate worker events enum
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 8 Jun 2023 10:37:14 +0000 (12:37 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 8 Jun 2023 10:37:14 +0000 (12:37 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/worker/WorkerSet.ts
src/worker/WorkerTypes.ts
src/worker/index.ts

index 681609585de1d388fe59135fb778fcf39fccc384..9efc88c1b3e76e53d5a58a09f2b06c1c3bb31436 100644 (file)
@@ -12,6 +12,7 @@ import {
   WorkerMessageEvents,
   type WorkerOptions,
   type WorkerSetElement,
+  WorkerSetEvents,
 } from './WorkerTypes';
 import { defaultErrorHandler, defaultExitHandler, sleep } from './WorkerUtils';
 
@@ -95,7 +96,7 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
     );
     worker.on('error', defaultErrorHandler.bind(this) as (err: Error) => void);
     worker.on('error', (error) => {
-      this.emitter.emit('error', error);
+      this.emitter.emit(WorkerSetEvents.error, error);
       this.addWorkerSetElement();
     });
     worker.on('exit', defaultExitHandler.bind(this) as (exitCode: number) => void);
index 6f780bce30dc6c6f274578a38972f7b28844adb3..fa1c82b037a60c92dcdfe9366c9bde682b1fd8be 100644 (file)
@@ -1,6 +1,6 @@
 import type { Worker } from 'node:worker_threads';
 
-import type { PoolOptions } from 'poolifier';
+import { type PoolEvent, PoolEvents, type PoolOptions } from 'poolifier';
 
 export enum WorkerProcessType {
   workerSet = 'workerSet',
@@ -14,6 +14,16 @@ export type SetInfo = {
   elementsPerWorker: number;
 };
 
+export enum WorkerSetEvents {
+  error = 'error',
+}
+
+export const WorkerEvents = {
+  ...PoolEvents,
+  ...WorkerSetEvents,
+} as const;
+export type WorkerEvents = PoolEvent | WorkerSetEvents;
+
 export type MessageHandler<T> = (this: T, message: unknown) => void;
 
 export type WorkerOptions = {
index 2ad6671b610d45c9ce5c503d43647fbfdfa4ff6d..5c8a2534baa1991c0c031f18db235cc49d559e15 100644 (file)
@@ -4,6 +4,7 @@ export { WorkerFactory } from './WorkerFactory';
 export {
   type MessageHandler,
   type WorkerData,
+  type WorkerEvents,
   type WorkerMessage,
   WorkerMessageEvents,
   WorkerProcessType,