ipc-renderer.ts 914 B

1234567891011121314151617181920212223242526272829303132
  1. import { EventEmitter } from 'events';
  2. const { ipc } = process._linkedBinding('electron_renderer_ipc');
  3. const internal = false;
  4. class IpcRenderer extends EventEmitter implements Electron.IpcRenderer {
  5. send (channel: string, ...args: any[]) {
  6. return ipc.send(internal, channel, args);
  7. }
  8. sendSync (channel: string, ...args: any[]) {
  9. return ipc.sendSync(internal, channel, args);
  10. }
  11. sendToHost (channel: string, ...args: any[]) {
  12. return ipc.sendToHost(channel, args);
  13. }
  14. async invoke (channel: string, ...args: any[]) {
  15. const { error, result } = await ipc.invoke(internal, channel, args);
  16. if (error) {
  17. throw new Error(`Error invoking remote method '${channel}': ${error}`);
  18. }
  19. return result;
  20. }
  21. postMessage (channel: string, message: any, transferables: any) {
  22. return ipc.postMessage(channel, message, transferables);
  23. }
  24. }
  25. export default new IpcRenderer();