Update selected item color in Pass menu
[ProtonMail-WebClient.git] / packages / pass / lib / core / proxy.ts
blob3d88b6e05c463d821ac58079bd77969cabf3fc7a
1 import type { PassCoreProxy, PassCoreService } from './types';
3 /** The PassCoreService class provides an `exec` function that abstracts
4  * the execution of PassRustCore methods, regardless of whether the
5  * WASM module is loaded in a worker or within the same execution context.
6  * The PassCoreProxy enables duck-typing of the initial PassRustCore methods
7  * through a proxy object, thereby offering a more user-friendly API. */
8 export const createPassCoreProxy = (service: PassCoreService): PassCoreProxy =>
9     new Proxy<PassCoreProxy>({} as any, {
10         get(_, property) {
11             return (...args: any[]) => service.exec(property as any, ...args);
12         },
13     });