import { WorkerChannel } from "./worker.channel"; import { WorkerBaseController } from "./controller/worker.controller"; import { IWorkerOptions, WorkerMessageType } from "./worker.core"; import { WorkerMainThreadController } from "./controller/worker.main_thread.controller"; import { WorkerThreadController } from "./controller/worker.worker_thread.controller"; import { WorkerBaseAction } from "./action/worker.action"; import { MainThreadWorker } from "./worker.main_thread"; import { WorkerThreadWorker } from "./worker.worker_thread"; function createWorker(ThreadWorker: T, options: IWorkerOptions): InstanceType function createWorker(ThreadWorker: T): InstanceType function createWorker(ThreadWorker: T, options?: IWorkerOptions): InstanceType { const threadWorker = new ThreadWorker(options as any) as InstanceType; threadWorker.initActions(); return threadWorker; } export const Workers = { WorkerChannel, WorkerBaseController, WorkerMainThreadController, WorkerThreadController, WorkerBaseAction, MainThreadWorker, WorkerThreadWorker, WorkerMessageType, createWorker, };