EventEmitter = require('events').EventEmitter ipc = process.atomBinding('ipc') class Ipc extends EventEmitter constructor: -> process.on 'ATOM_INTERNAL_MESSAGE', (args...) => @emit args... window.addEventListener 'unload', (event) -> process.removeAllListeners 'ATOM_INTERNAL_MESSAGE' send: (args...) -> @sendChannel 'message', args... sendChannel: (args...) -> ipc.send 'ATOM_INTERNAL_MESSAGE', [args...] sendSync: (args...) -> @sendSync 'sync-message', args... sendChannelSync: (args...) -> JSON.parse ipc.sendSync('ATOM_INTERNAL_MESSAGE_SYNC', [args...]) module.exports = new Ipc