// const { app, BrowserWindow, shell, dialog } = require("electron") // const { join } = require("./utilities/centralPath") // const isDev = require("electron-is-dev") // const { autoUpdater } = require("electron-updater") // const unhandled = require("electron-unhandled") // const { existsSync } = require("fs-extra") // const initialiseBudibase = require("./utilities/initialiseBudibase") // const { budibaseAppsDir } = require("./utilities/budibaseDir") // const { openNewGitHubIssue, debugInfo } = require("electron-util") // const eventEmitter = require("./events") // const budibaseDir = budibaseAppsDir() // const envFile = join(budibaseDir, ".env") // async function startApp() { // if (!existsSync(envFile)) { // await initialiseBudibase({ dir: budibaseDir }) // } // // evict environment from cache, so it reloads when next asked // delete require.cache[require.resolve("./environment")] // // store the port incase its going to get overridden // const port = process.env.PORT // require("dotenv").config({ path: envFile }) // // overwrite the port - don't want to use dotenv for the port // require("./environment")._set("PORT", port) // unhandled({ // showDialog: true, // reportButton: error => { // openNewGitHubIssue({ // title: error.message, // user: "Budibase", // labels: ["error-report"], // repo: "budibase", // body: `### Error that occurred when using the budibase builder:\n\`\`\`\n${ // error.stack // }\n\`\`\`\n### Operating System Information:\n---\n\n${debugInfo()}`, // }) // }, // }) // let win // function handleRedirect(e, url) { // e.preventDefault() // shell.openExternal(url) // } // async function createWindow() { // app.server = require("./app") // eventEmitter.on("internal:port", port => { // const APP_URL = `http://localhost:${port}/_builder` // const APP_TITLE = "Budibase Builder" // win = new BrowserWindow({ // width: 1920, // height: 1080, // icon: join(__dirname, "..", "build", "icons", "512x512.png"), // }) // win.setTitle(APP_TITLE) // win.loadURL(APP_URL) // if (isDev) { // win.webContents.openDevTools() // } else { // autoUpdater.checkForUpdatesAndNotify() // } // // open _blank in default browser // win.webContents.on("new-window", handleRedirect) // win.webContents.on("will-navigate", handleRedirect) // }) // } // app.whenReady().then(createWindow) // // Quit when all windows are closed. // app.on("window-all-closed", () => { // // On macOS it is common for applications and their menu bar // // to stay active until the user quits explicitly with Cmd + Q // if (process.platform !== "darwin") { // app.server.close() // app.quit() // } // }) // app.on("activate", () => { // // On macOS it's common to re-create a window in the app when the // // dock icon is clicked and there are no other windows open. // if (win === null) createWindow() // }) // } // autoUpdater.on("update-downloaded", (event, releaseNotes, releaseName) => { // const dialogOpts = { // type: "info", // buttons: ["Restart", "Later"], // title: "Budibase Update Available", // message: process.platform === "win32" ? releaseNotes : releaseName, // detail: // "A new version of the budibase builder has been downloaded. Restart the application to apply the updates.", // } // dialog.showMessageBox(dialogOpts).then(returnValue => { // if (returnValue.response === 0) autoUpdater.quitAndInstall() // }) // }) // autoUpdater.on("error", message => { // console.error("There was a problem updating the application") // console.error(message) // }) // startApp()