ipc-renderer-internal.ts 792 B

1234567891011121314151617181920212223242526
  1. import { getIPCRenderer } from '@electron/internal/renderer/ipc-renderer-bindings';
  2. import { EventEmitter } from 'events';
  3. const ipc = getIPCRenderer();
  4. const internal = true;
  5. class IpcRendererInternal extends EventEmitter implements ElectronInternal.IpcRendererInternal {
  6. send (channel: string, ...args: any[]) {
  7. return ipc.send(internal, channel, args);
  8. }
  9. sendSync (channel: string, ...args: any[]) {
  10. return ipc.sendSync(internal, channel, args);
  11. }
  12. async invoke<T> (channel: string, ...args: any[]) {
  13. const { error, result } = await ipc.invoke<T>(internal, channel, args);
  14. if (error) {
  15. throw new Error(`Error invoking remote method '${channel}': ${error}`);
  16. }
  17. return result;
  18. };
  19. }
  20. export const ipcRendererInternal = new IpcRendererInternal();