UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

67 lines 5.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.startApplication = void 0; const react_dom_1 = __importDefault(require("react-dom")); const path_1 = __importDefault(require("path")); const hmr_1 = __importDefault(require("@launchmenu/hmr")); const electron_1 = require("electron"); async function startApplication() { // Retrieve the application config electron_1.ipcRenderer.send("LM-requestConfig"); const config = await new Promise(res => { electron_1.ipcRenderer.once("LM-sendConfig", (event, config) => { res(config); }); }); // Globally inject a DEV variable indicating whether running in production or development mode global.DEV = process.env.NODE_ENV == "dev"; // Prevent accidental global close usage global.close = () => console.log("LM shouldn't be closed this way, did you call global close on accident?"); let lm; async function startup() { const { LaunchMenu, } = require("../application/LaunchMenu"); window.launchmenu = lm = new LaunchMenu(config); lm.setDevMode(global.DEV); await lm.setup(); react_dom_1.default.render(lm.view, document.getElementById("root")); } let prevStartup = startup(); // Listen for dispose requests, to properly dispose of all data electron_1.ipcRenderer.on("LM-dispose", async () => { await prevStartup; await lm.destroy(); electron_1.ipcRenderer.send("LM-disposed"); }); if (DEV) { // Reload the contents whenever something changes // TODO: add some 'except path' to hmr, to ignore any changes to the api and types hmr_1.default(path_1.default.join(__dirname, ".."), (changed, affected) => { const p = prevStartup; prevStartup = (async () => { try { await p; } catch (e) { } try { if (lm) lm.destroy(); } catch (e) { console.log("%cFailed to dispose of previous LM instance:", "color: red;"); console.error(e); } console.log("%cApplication has been reloaded", "color: blue;"); await startup(); })(); }); } } exports.startApplication = startApplication; try { window.startApplication = startApplication; } catch (e) { } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dpbmRvd0NvbnRyb2xsZXIvYXBwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBaUM7QUFDakMsZ0RBQXdCO0FBQ3hCLDBEQUFrQztBQUNsQyx1Q0FBcUM7QUFHOUIsS0FBSyxVQUFVLGdCQUFnQjtJQUNsQyxrQ0FBa0M7SUFDbEMsc0JBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksT0FBTyxDQUFxQixHQUFHLENBQUMsRUFBRTtRQUN2RCxzQkFBVyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1lBQ3BFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBRUgsOEZBQThGO0lBQzlGLE1BQU0sQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0lBRTNDLHdDQUF3QztJQUN4QyxNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUNoQixPQUFPLENBQUMsR0FBRyxDQUNQLHlFQUF5RSxDQUM1RSxDQUFDO0lBRU4sSUFBSSxFQUFrRCxDQUFDO0lBQ3ZELEtBQUssVUFBVSxPQUFPO1FBQ2xCLE1BQU0sRUFDRixVQUFVLEdBQ2IsR0FBK0MsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFcEYsTUFBYyxDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsbUJBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELElBQUksV0FBVyxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBRTVCLCtEQUErRDtJQUMvRCxzQkFBVyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDcEMsTUFBTSxXQUFXLENBQUM7UUFDbEIsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsc0JBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLEdBQUcsRUFBRTtRQUNMLGlEQUFpRDtRQUNqRCxrRkFBa0Y7UUFDbEYsYUFBRyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ2xELE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUN0QixXQUFXLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDdEIsSUFBSTtvQkFDQSxNQUFNLENBQUMsQ0FBQztpQkFDWDtnQkFBQyxPQUFPLENBQUMsRUFBRSxHQUFFO2dCQUNkLElBQUk7b0JBQ0EsSUFBSSxFQUFFO3dCQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDeEI7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FDUCw4Q0FBOEMsRUFDOUMsYUFBYSxDQUNoQixDQUFDO29CQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BCO2dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQy9ELE1BQU0sT0FBTyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO0tBQ047QUFDTCxDQUFDO0FBN0RELDRDQTZEQztBQUNELElBQUk7SUFDQyxNQUFjLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7Q0FDdkQ7QUFBQyxPQUFPLENBQUMsRUFBRSxHQUFFIn0=