preload.cjs 1.7 KB

123456789101112131415161718192021222324252627
  1. const { contextBridge, ipcRenderer } = require('electron')
  2. contextBridge.exposeInMainWorld('yaoyaoDesktop', Object.freeze({
  3. status: () => ipcRenderer.invoke('desktop:status'),
  4. selectServer: mode => ipcRenderer.invoke('desktop:onboarding-select', mode),
  5. prepareServer: input => ipcRenderer.invoke('desktop:onboarding-prepare', input),
  6. login: input => ipcRenderer.invoke('desktop:onboarding-submit', input),
  7. openLogin: () => ipcRenderer.invoke('desktop:open-login'),
  8. forgetLogin: () => ipcRenderer.invoke('desktop:forget-login'),
  9. retry: () => ipcRenderer.invoke('desktop:retry'),
  10. forceSync: () => ipcRenderer.invoke('desktop:force-sync'),
  11. logs: () => ipcRenderer.invoke('desktop:logs'),
  12. openUpdates: () => ipcRenderer.invoke('desktop:updates'),
  13. modeState: () => ipcRenderer.invoke('desktop:mode-state'),
  14. switchMode: mode => ipcRenderer.invoke('desktop:mode-switch', mode),
  15. openRemoteLogin: () => ipcRenderer.invoke('desktop:remote-login'),
  16. authorizeComputer: csrfToken => ipcRenderer.invoke('desktop:computer-authorize', csrfToken),
  17. /** 'local' on the YaoYao server Mac; paired host uuid in remote mode; null if unknown. */
  18. deviceHost: () => ipcRenderer.invoke('desktop:device-host'),
  19. openComputer: (id, target) => ipcRenderer.invoke('desktop-computer:open', id, target),
  20. computerTargetChanged: target => ipcRenderer.invoke('desktop-computer:target', target),
  21. computerClosed: () => ipcRenderer.invoke('desktop-computer:closed'),
  22. onComputerClose: callback => {
  23. const listener = () => callback()
  24. ipcRenderer.on('desktop-computer:request-close', listener)
  25. return () => ipcRenderer.removeListener('desktop-computer:request-close', listener)
  26. },
  27. }))