import { Remote, wrap } from 'comlink'; // import { WorkerElectronCacheStorageClient } from 'services/workerElectronCache/client'; import { addLocalLog } from '@ente/shared/logging'; export class ComlinkWorker InstanceType> { public remote: Promise>>; private worker: Worker; private name: string; constructor(name: string, worker: Worker) { this.name = name; this.worker = worker; this.worker.onerror = (errorEvent) => { console.error('Got error event from worker', errorEvent); }; addLocalLog(() => `Initiated ${this.name}`); const comlink = wrap(this.worker); this.remote = new comlink() as Promise>>; // expose(WorkerElectronCacheStorageClient, this.worker); } public getName() { return this.name; } public terminate() { this.worker.terminate(); addLocalLog(() => `Terminated ${this.name}`); } }