apiElectron.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { ipcRenderer } from 'electron';
  2. function dialogSelectFile(
  3. config: Electron.OpenDialogOptions
  4. ): Promise<Electron.OpenDialogReturnValue> {
  5. return ipcRenderer.invoke('dialog:selectFile', config);
  6. }
  7. function dialogSaveFile(
  8. config: Electron.SaveDialogOptions
  9. ): Promise<Electron.SaveDialogReturnValue> {
  10. return ipcRenderer.invoke('dialog:saveFile', config);
  11. }
  12. // win prcess
  13. function startWinProcess(processCount: number, loadPageUrl: string) {
  14. return ipcRenderer.send('start-win-process', processCount, loadPageUrl);
  15. }
  16. function stopWinProcess() {
  17. return ipcRenderer.send('stop-win-process');
  18. }
  19. function closeProcessWindow(winId: number) {
  20. return ipcRenderer.send('close-process-window', winId);
  21. }
  22. function onStopRunning(callback: () => void) {
  23. // return ipcRenderer.on('stop-running', callback);
  24. return ipcRenderer.on('stop-running', () => callback());
  25. }
  26. function onSilenceAuthority(callback: (authKey: string) => void) {
  27. return ipcRenderer.on(
  28. 'silence-authority',
  29. (event: Electron.IpcRendererEvent, authKey: string) => callback(authKey)
  30. );
  31. }
  32. const electronApi = {
  33. dialogSelectFile,
  34. dialogSaveFile,
  35. // win prcess
  36. startWinProcess,
  37. stopWinProcess,
  38. closeProcessWindow,
  39. onStopRunning,
  40. onSilenceAuthority,
  41. };
  42. export type ElectronApi = typeof electronApi;
  43. export default electronApi;