Exposing fetch to functions and initial work on Electron
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
const { app, BrowserWindow, protocol } = require("electron");
|
||||
const path = require("path");
|
||||
|
||||
console.log("Got here", process.version);
|
||||
|
||||
const createWindow = () => {
|
||||
const WEB_FOLDER = "../dist/webapp";
|
||||
const PROTOCOL = "file";
|
||||
|
||||
protocol.interceptFileProtocol(PROTOCOL, (request, callback) => {
|
||||
// Strip protocol
|
||||
let url = request.url.substring(PROTOCOL.length + 2);
|
||||
if (url.endsWith("/")) {
|
||||
url = url.substring(0, url.length - 1);
|
||||
}
|
||||
|
||||
console.log("Requested url", url);
|
||||
|
||||
if (!/\.(js|css|png|webmanifest|map)/.exec(url)) {
|
||||
url = "/index.html";
|
||||
}
|
||||
|
||||
if (url.includes("/service_worker.js?")) {
|
||||
url = "/service_worker.js";
|
||||
}
|
||||
|
||||
// if (!url.includes(".")) {
|
||||
// url = "/index.html";
|
||||
// }
|
||||
|
||||
// Build complete path for node require function
|
||||
url = path.join(__dirname, WEB_FOLDER, url);
|
||||
|
||||
// Replace backslashes by forward slashes (windows)
|
||||
// url = url.replace(/\\/g, '/');
|
||||
url = path.normalize(url);
|
||||
|
||||
// console.log("Requested path", url);
|
||||
callback({ path: url });
|
||||
});
|
||||
|
||||
// Create the browser window.
|
||||
let mainWindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
webPreferences: {
|
||||
// nodeIntegration: false,
|
||||
preload: path.join(__dirname, "preload.js"),
|
||||
},
|
||||
});
|
||||
|
||||
// and load the index.html of the app.
|
||||
mainWindow.loadURL("file://start");
|
||||
// url.format({
|
||||
// pathname: "index.html",
|
||||
// protocol: PROTOCOL + ":",
|
||||
// slashes: true,
|
||||
// })
|
||||
// );
|
||||
};
|
||||
app.on("window-all-closed", () => {
|
||||
if (process.platform !== "darwin") app.quit();
|
||||
});
|
||||
app.whenReady().then(() => {
|
||||
createWindow();
|
||||
|
||||
app.on("activate", () => {
|
||||
if (BrowserWindow.getAllWindows().length === 0) createWindow();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,5 @@
|
||||
const { contextBridge } = require("electron");
|
||||
|
||||
contextBridge.exposeInMainWorld("desktop", {
|
||||
url: "http://localhost:3000",
|
||||
});
|
||||
Reference in New Issue
Block a user