const { contextBridge, ipcRenderer } = require('electron'); const { Client } = require('ssh2') const Conn = new Client() contextBridge.exposeInMainWorld('$electron', { send: (event, args) => ipcRenderer.send('signal', event, args), once: (event, callBack) => ipcRenderer.once(event, (_, args) => callBack(args)), on: (event, callBack) => ipcRenderer.on(event, (_, args) => callBack(args)) }) contextBridge.exposeInMainWorld('$ssh', { connect: (args) => Conn.connect(args), on: (event, callBack) => Conn.on(event, callBack), shell: (callBack) => Conn.shell((err, stream) => callBack(err, { on: (event, back) => stream.on(event, args => back(args.toString())), end: (args) => stream.end(args) })), end: () => Conn.end() })