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