@tybys/electron-ipc-handle-invoke
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

electron-ipc-handle-invoke

ipcMain.handle() and ipcRenderer.invoke() polyfill.

Usage

$ npm install @tybys/electron-ipc-handle-invoke

Main

import 'electron'

declare module 'electron' {
  interface IpcMain {
    handle (channel: string, listener: (event: any, ...args: any[]) => (Promise<void>) | (any)): void
    handleOnce (channel: string, listener: (event: any, ...args: any[]) => (Promise<void>) | (any)): void
    removeHandler (channel: string): void
  }
}
require('@tybys/electron-ipc-handle-invoke/main.js')
const { ipcMain } = require('electron')

ipcMain.handle('doSomething', (e, msg) => {
  return msg
})

Renderer

import 'electron'

declare module 'electron' {
  interface IpcRenderer {
    invoke(channel: string, ...args: any[]): Promise<any>;
  }
}
require('@tybys/electron-ipc-handle-invoke/renderer.js')
const { ipcRenderer } = require('electron')

ipcRenderer.invoke('doSomething', 'message').then(res => {
  console.log(res === 'message') // true
}).catch(err => {
  console.log(err)
})

Package Sidebar

Install

npm i @tybys/electron-ipc-handle-invoke

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

7.74 kB

Total Files

7

Last publish

Collaborators

  • toyobayashi