refactor: silence two linter errors
[e-mobility-charging-stations-simulator.git] / WorkerTypes.ts
... / ...
CommitLineData
1import type { Worker } from 'node:worker_threads';
2
3import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier';
4
5export enum WorkerProcessType {
6 workerSet = 'workerSet',
7 /** @experimental */
8 dynamicPool = 'dynamicPool',
9 staticPool = 'staticPool',
10}
11
12export interface SetInfo {
13 version: string;
14 type: string;
15 worker: string;
16 size: number;
17 elementsExecuting: number;
18 elementsPerWorker: number;
19}
20
21export enum WorkerSetEvents {
22 error = 'error',
23}
24
25export const WorkerEvents = {
26 ...PoolEvents,
27 ...WorkerSetEvents,
28} as const;
29export type WorkerEvents = PoolEvent | WorkerSetEvents;
30
31export interface WorkerOptions {
32 workerStartDelay?: number;
33 elementStartDelay?: number;
34 poolMaxSize: number;
35 poolMinSize: number;
36 elementsPerWorker?: number;
37 poolOptions?: ThreadPoolOptions;
38}
39
40export type WorkerData = Record<string, unknown>;
41
42export interface WorkerSetElement {
43 worker: Worker;
44 numberOfWorkerElements: number;
45}
46
47export interface WorkerMessage<T extends WorkerData> {
48 event: WorkerMessageEvents;
49 data: T;
50}
51
52export enum WorkerMessageEvents {
53 startWorkerElement = 'startWorkerElement',
54}