123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- const { initRemix } = require("remix-electron")
- const { app, BrowserWindow, dialog } = require("electron")
- const path = require("node:path")
- /** @type {BrowserWindow | undefined} */
- let win
- /** @param {string} url */
- async function createWindow(url) {
- win = new BrowserWindow({ show: false })
- await win.loadURL(url)
- win.show()
- if (process.env.NODE_ENV === "development") {
- win.webContents.openDevTools()
- }
- }
- app.on("ready", () => {
- void (async () => {
- try {
- if (process.env.NODE_ENV === "development") {
- const {
- default: installExtension,
- REACT_DEVELOPER_TOOLS,
- } = require("electron-devtools-installer")
- await installExtension(REACT_DEVELOPER_TOOLS)
- }
- const url = await initRemix({
- serverBuild: path.join(__dirname, "../build/index.js"),
- })
- await createWindow(url)
- } catch (error) {
- dialog.showErrorBox("Error", getErrorStack(error))
- console.error(error)
- }
- })()
- })
- /** @param {unknown} error */
- function getErrorStack(error) {
- return error instanceof Error ? error.stack || error.message : String(error)
- }
|