IPC Renderer Service for Electron/Angular2
import {Injectable} from 'angular2/core';
declare var electron:any;
@Injectable()
export class IpcRendererService {
ipcRenderer = electron.ipcRenderer;
// CONSTRUCTOR ////////////////////////////////////////////////////////////////////////////////////////////////////
constructor() {}
// PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////////////////////////////////////
// PUBLIC FUNCTIONS ///////////////////////////////////////////////////////////////////////////////////////////////
on(message:string, callback) {
return this.ipcRenderer.on(message, callback);
}
send(message:string, ...args) {
this.ipcRenderer.send(message, args);
}
sendSync(message:string, ...args) {
return this.ipcRenderer.sendSync(message, arguments);
}
// EVENT HANDLER //////////////////////////////////////////////////////////////////////////////////////////////////
}
<script>
const electron = require('electron');
// below is just plain angular stuff
System
.config({
packages: {
angular: {
format: 'register',
defaultExtension: 'js'
}
}
})
;
System
.import('./angular/main.js')
.then(null, console.error.bind(console))
;
</script>