-export default class WorkerFactory {
- public static getWorkerImplementation<T>(workerScript: string, workerProcessType: WorkerProcessType, options?: WorkerOptions): WorkerAbstract {
+const DEFAULT_WORKER_OPTIONS: WorkerOptions = {
+ workerStartDelay: WorkerConstants.DEFAULT_WORKER_START_DELAY,
+ elementStartDelay: WorkerConstants.DEFAULT_ELEMENT_START_DELAY,
+ poolMinSize: WorkerConstants.DEFAULT_POOL_MIN_SIZE,
+ poolMaxSize: WorkerConstants.DEFAULT_POOL_MAX_SIZE,
+ elementsPerWorker: WorkerConstants.DEFAULT_ELEMENTS_PER_WORKER,
+ poolOptions: {},
+};
+
+export class WorkerFactory {
+ private constructor() {
+ // This is intentional
+ }
+
+ public static getWorkerImplementation<T extends WorkerData>(
+ workerScript: string,
+ workerProcessType: WorkerProcessType,
+ workerOptions?: WorkerOptions,
+ ): WorkerAbstract<T> | null {