@launchmenu/core
Version:
An environment for visual keyboard controlled applets
67 lines • 5.25 kB
JavaScript
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=
;