build: switch to NodeNext module resolution
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerConstants.ts
1 import { availableParallelism } from 'poolifier';
2
3 import type { WorkerOptions } from './WorkerTypes.js';
4
5 export const EMPTY_FUNCTION = Object.freeze(() => {
6 /* This is intentional */
7 });
8
9 export const workerSetVersion = '1.0.1';
10
11 export const DEFAULT_ELEMENT_START_DELAY = 0;
12 export const DEFAULT_WORKER_START_DELAY = 500;
13 export const DEFAULT_POOL_MIN_SIZE = Math.floor(availableParallelism() / 2);
14 export const DEFAULT_POOL_MAX_SIZE = Math.round(availableParallelism() * 1.5);
15 export const DEFAULT_ELEMENTS_PER_WORKER = 1;
16
17 export const DEFAULT_WORKER_OPTIONS: WorkerOptions = Object.freeze({
18 workerStartDelay: DEFAULT_WORKER_START_DELAY,
19 elementStartDelay: DEFAULT_ELEMENT_START_DELAY,
20 poolMinSize: DEFAULT_POOL_MIN_SIZE,
21 poolMaxSize: DEFAULT_POOL_MAX_SIZE,
22 elementsPerWorker: DEFAULT_ELEMENTS_PER_WORKER,
23 poolOptions: {
24 enableEvents: true,
25 restartWorkerOnError: true,
26 },
27 });