@2o3t/electron-ipc-promise

An electron IPC calls with a promise API.

Usage no npm install needed!

<script type="module">
  import 2o3tElectronIpcPromise from 'https://cdn.skypack.dev/@2o3t/electron-ipc-promise';
</script>

README

@2o3t/electron-ipc-promise

Installation

yarn add @2o3t/electron-ipc-promise

Usage

// in main process
const promiseIpc = require('@2o3t/electron-ipc-promise');

promiseIpc.on('notify', (newSettings) => {
    console.log(newSettings);
    return 'test';
});

// in renderer
const promiseIpc = require('@2o3t/electron-ipc-promise');

promiseIpc
  .send('notify', { "name": "Jeff" }')
  .then(() => console.log('You wrote the settings!'))
  .catch((e) => console.error(e));

You can also send data from the main process to a renderer, if you pass in its WebContents object.

// in main process
const promiseIpc = require('@2o3t/electron-ipc-promise');

promiseIpc
  .send('getRendererData', webContentsForRenderer)
  .then((rendererData) => console.log(rendererData))
  .catch((e) => console.error(e));

// in renderer
const promiseIpc = require('@2o3t/electron-ipc-promise');

promiseIpc.on('getRendererData', () => {
  return getSomeSuperAwesomeRendererData();
});

Removing Listeners

You can remove a listener with the off() method.

const promiseIpc = require('@2o3t/electron-ipc-promise');

promiseIpc.on('someRoute', () => {
  return something();
});

promiseIpc.off('someRoute'); // never mind