1 import { availableParallelism
} from
'poolifier'
3 import type { WorkerOptions
} from
'./WorkerTypes.js'
4 import { defaultErrorHandler
, defaultExitHandler
} from
'./WorkerUtils.js'
6 export const EMPTY_FUNCTION
= Object.freeze(() => {
7 /* This is intentional */
10 export const workerSetVersion
= '1.0.1'
12 export const DEFAULT_ELEMENT_START_DELAY
= 0
13 export const DEFAULT_WORKER_START_DELAY
= 500
14 export const DEFAULT_POOL_MIN_SIZE
= Math.floor(availableParallelism() / 2)
15 export const DEFAULT_POOL_MAX_SIZE
= Math.round(availableParallelism() * 1.5)
16 export const DEFAULT_ELEMENTS_PER_WORKER
= 1
18 export const DEFAULT_WORKER_OPTIONS
: WorkerOptions
= Object.freeze({
19 workerStartDelay
: DEFAULT_WORKER_START_DELAY
,
20 elementStartDelay
: DEFAULT_ELEMENT_START_DELAY
,
21 poolMinSize
: DEFAULT_POOL_MIN_SIZE
,
22 poolMaxSize
: DEFAULT_POOL_MAX_SIZE
,
23 elementsPerWorker
: DEFAULT_ELEMENTS_PER_WORKER
,
26 restartWorkerOnError
: true,
27 errorHandler
: defaultErrorHandler
,
28 exitHandler
: defaultExitHandler