preload.js 736 B

12345678910111213141516
  1. const { contextBridge, ipcRenderer } = require('electron');
  2. const { Client } = require('ssh2')
  3. const Conn = new Client()
  4. contextBridge.exposeInMainWorld('$electron', {
  5. send: (event, args) => ipcRenderer.send('signal', event, args),
  6. once: (event, callBack) => ipcRenderer.once(event, (_, args) => callBack(args)),
  7. on: (event, callBack) => ipcRenderer.on(event, (_, args) => callBack(args))
  8. })
  9. contextBridge.exposeInMainWorld('$ssh', {
  10. connect: (args) => Conn.connect(args),
  11. on: (event, callBack) => Conn.on(event, callBack),
  12. shell: (callBack) => Conn.shell((err, stream) => callBack(err, { on: (event, back) => stream.on(event, args => back(args.toString())), end: (args) => stream.end(args) })),
  13. end: () => Conn.end()
  14. })