@wranggle/rpc-electron-transport
    TypeScript icon, indicating that this package has built-in type declarations

    0.4.0-alpha.0 • Public • Published

    ElectronTransport

    A WranggleRpc transport for Electron apps, sending and receiving messages over messaging over its ipc system.

    Setup

    If you are using the full @wranggle/rpc package, the ElectronTransport is already bundled within. You can import/require it with:

    import { WranggleRpc, ElectronTransport } from '@wranggle/rpc';
    // or
    const { WranggleRpc, ElectronTransport } = require('@wranggle/rpc');

    Unbundled Alternative

    If you prefer using just the packages you need, the unbundled es6 is also available on NPM:

    yarn add @wranggle/rpc-core @wranggle/rpc-electron-transport
    # or
    npm install @wranggle/rpc-core @wranggle/rpc-electron-transport 

    Unbundled import:

    import WranggleRpc from '@wranggle/rpc-core';
    import ElectronTransport from '@wranggle/rpc-electron-transport';

    Construction

    When creating your WranggleRpc endpoint, you can use the electron shortcut to also construct this transport. Eg:

    const rpc = new WranggleRpc({
      electron: opts,
      channel: 'some-channel'
    });

    Or create a new instance yourself:

    const rpc = new WranggleRpc({
      transport: new ElectronTransport(opts),
      channel: 'some-channel'
    });

    Options

    This transport has two required options: ipcSender and ipcReceiver.

    Endpoint in the Main process

    • ipcReceiver Set it to ipcMain, from the import: const { ipcMain } = require('electron')

    • ipcSender If communicating with a browser window / renderer process, use the webContents reference after creating the new BrowserWindow().

    Example:

    const { WranggleRpc } = require('@wranggle/core');
    const { ElectronTransport } = require('@wranggle/rpc-electron-transport');
    const { ipcMain } = require('electron')
    
    const rpc = new WranggleRpc({
      electron: {
        ipcReceiver: ipcMain,
        ipcSender: uiRenderer.webContents
      }
    });
    uiRenderer.webContents.on('did-finish-load', startUsingIt(rpc));

    Endpoint in a renderer/browser process

    Set both ipcReceiver and ipcSender to Electron's ipcRenderer.

    import WranggleRpc = from '@wranggle/core';
    import ElectronTransport from '@wranggle/rpc-electron-transport';
    const { ipcRenderer } = require('electron')
    
    const rpc = new WranggleRpc({
      electron: {
        ipcReceiver: ipcRenderer,
        ipcSender: ipcRenderer,
      }
    });

    Additional options

    You can optionally set ipcChannel on the transport, used when sending and listening for ipc messages. It has nothing to do with the WranggleRpc channel option--take care to avoid confusing the two with each other.

    Install

    npm i @wranggle/rpc-electron-transport

    DownloadsWeekly Downloads

    3

    Version

    0.4.0-alpha.0

    License

    Apache-2.0

    Unpacked Size

    33.5 kB

    Total Files

    21

    Last publish

    Collaborators

    • wranggle.ferbs