build: add keywords section to package.json
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerTypes.ts
CommitLineData
01f4001e 1import type { Worker } from 'node:worker_threads';
c045d9a9 2
be245fda 3import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier';
8114d10e 4
a4624c96 5export enum WorkerProcessType {
721646e9 6 workerSet = 'workerSet',
56e2e1ab 7 /** @experimental */
721646e9
JB
8 dynamicPool = 'dynamicPool',
9 staticPool = 'staticPool',
a4624c96
JB
10}
11
b779c0f8 12export type SetInfo = {
628c30e5 13 version: string;
0bde1ea1
JB
14 type: string;
15 worker: string;
b779c0f8 16 size: number;
19bdf4ca 17 elementsExecuting: number;
b779c0f8
JB
18 elementsPerWorker: number;
19};
20
810f4caf
JB
21export enum WorkerSetEvents {
22 error = 'error',
23}
24
25export const WorkerEvents = {
26 ...PoolEvents,
27 ...WorkerSetEvents,
28} as const;
29export type WorkerEvents = PoolEvent | WorkerSetEvents;
30
83e00df1 31export type WorkerOptions = {
4bfd80fa
JB
32 workerStartDelay?: number;
33 elementStartDelay?: number;
1895299d
JB
34 poolMaxSize: number;
35 poolMinSize: number;
b8da29bc 36 elementsPerWorker?: number;
be245fda 37 poolOptions?: ThreadPoolOptions;
83e00df1 38};
b8da29bc 39
32de5a57 40export type WorkerData = Record<string, unknown>;
46eb543c 41
83e00df1 42export type WorkerSetElement = {
81797102
JB
43 worker: Worker;
44 numberOfWorkerElements: number;
83e00df1 45};
81797102 46
83e00df1 47export type WorkerMessage<T extends WorkerData> = {
2a370053 48 id: WorkerMessageEvents;
c3ee95af 49 data: T;
83e00df1 50};
c045d9a9 51
2a370053 52export enum WorkerMessageEvents {
721646e9 53 startWorkerElement = 'startWorkerElement',
c045d9a9 54}