"use strict"; const {contextBridge, ipcRenderer, webFrame} = require("electron"); let fileOpenListener = null; let closeFileListener = null; contextBridge.exposeInMainWorld("api", { openFileDialog : () => ipcRenderer.send("WindowManager::openFileDialog"), onFileOpen : callback => { if (fileOpenListener) ipcRenderer.off("Ation::openFile", fileOpenListener); fileOpenListener = (_, presentation) => callback(presentation); ipcRenderer.on("Ation::openFile", fileOpenListener); }, onFileClose : callback => { if (closeFileListener) ipcRenderer.off("Ation::closeFile", closeFileListener); closeFileListener = () => callback(); ipcRenderer.on("Ation::closeFile", closeFileListener); }, openFile : filePath => ipcRenderer.send("WindowManager::openFile", filePath), closeFile : () => ipcRenderer.send("Ation::closeFile"), clearCache : () => webFrame.clearCache(), appVersion : async () => await ipcRenderer.invoke("Ation::appVersion") });