You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/webworker/workers/util_worker_interface.ts

33 lines
1012 B
TypeScript

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<any> => {
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<any> => {
return internalCallUtilsWorker(fnName, ...args);
};