import { WorkerInterface } from '../worker_interface'; import { join } from 'path'; import { getAppRootPath } from '../../node/getRootPath'; let utilWorkerInterface: WorkerInterface | undefined; type WorkerAllowedFunctionName = | 'arrayBufferToStringBase64' | 'decryptAttachmentBufferNode' | 'encryptAttachmentBufferNode' | 'DecryptAESGCM' | 'fromBase64ToArrayBuffer' | 'verifyAllSignatures' | 'encryptForPubkey'; export const internalCallUtilsWorker = async ( fnName: WorkerAllowedFunctionName, ...args: any ): Promise => { if (!utilWorkerInterface) { const utilWorkerPath = join(getAppRootPath(), 'ts', 'webworker', 'workers', 'util.worker.js'); utilWorkerInterface = new WorkerInterface(utilWorkerPath, 3 * 60 * 1000); //{ type: 'module' } } return utilWorkerInterface?.callWorker(fnName, ...args); }; export const callUtilsWorker = async ( fnName: WorkerAllowedFunctionName, ...args: any ): Promise => { return internalCallUtilsWorker(fnName, ...args); };