0.1.0 • Published 9 years ago
electron-process-comms v0.1.0
electron-process-comms
an ipc based electron process communication interface
installation
$ npm i electron-process-commsDocs
import
import ProcessComms from 'electron-process-comms';or
const ProcessComms = require('electron-process-comms');Defining Actions
You can duplicate this in both the main and renderer processes
let processComms = new ProcessComms({
actions: {
init: () => {
console.log('hello')
},
init2: ({ dispatch }) => {
dispatch('init')
},
init3: ({ dispatch, dispatchExternal }, payload) => {
console.log(payload)
return 'init3'
}
}
})or, register actions as needed like this:
let processComms = new ProcessComms();
processComms.registerAction('ACTION_NAME', ({ dispatch, dispatchExternal }, payload) => {
...
});Dispatching Actions in the Local Process (Main/Renderer)
local dispatch
processComms.dispatch('init')Dispatching Actions in the External Process (Main)
processComms.dispatchExternal(targetBrowserWindow, 'init')Dispatching Actions in the External Process (Renderer)
processComms.dispatchExternal('init')Dispatching with Payloads
processComms.dispatch('init', PAYLOAD)Accessing Returned Data
Each dispatch returns an instance of a promise.
processComms.dispatch('init').then((data) => {
console.log(data) // returned from `init`
})This also works for external dispatchers
processComms.dispatchExternal('init').then((data) => {
console.log(data) // returned from `init`
})Example
import ProcessComms from 'electron-process-comms';
const processComms = new ProcessComms({
actions: {
action1: () => {
return 'action1';
},
action2: ({ dispatch }, payload) => {
console.log(payload);
return 'action2';
}
}
});
processComms.dispatch('action1');
processComms.dispatch('action2').then((data) => {
console.log(data);
});