- public static getWorkerImpl(workerScript: string): Wrk {
- switch (Configuration.getWorkerProcess()) {
+ private constructor() {
+ // This is intentional
+ }
+
+ public static getWorkerImplementation<T>(workerScript: string, workerProcessType: WorkerProcessType, options?: WorkerOptions): WorkerAbstract | null {
+ if (!isMainThread) {
+ throw new Error('Trying to get a worker implementation outside the main thread');
+ }
+ options = options ?? {} as WorkerOptions;
+ options.startDelay = options?.startDelay ?? Constants.WORKER_START_DELAY;
+ options.poolOptions = options?.poolOptions ?? {} as PoolOptions<Worker>;
+ options?.messageHandler && (options.poolOptions.messageHandler = options.messageHandler);
+ let workerImplementation: WorkerAbstract = null;
+ switch (workerProcessType) {