| 1 | import { availableParallelism } from 'poolifier'; |
| 2 | |
| 3 | import type { WorkerOptions } from './WorkerTypes'; |
| 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 | }); |