UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

68 lines 5.04 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.launch = void 0; const electron_1 = require("electron"); const WindowController_1 = require("./WindowController"); const hmr_1 = __importDefault(require("@launchmenu/hmr")); global.DEV = process.env.NODE_ENV == "dev"; /** * Launches the application * @param config Configuration for LM to be used * @returns A function that can be called to show LM */ async function launch(config) { electron_1.ipcMain.on("log", (event, ...args) => console.log(...args)); let allowQuit = false; electron_1.app.on("will-quit", event => { if (!allowQuit) event.preventDefault(); }); await electron_1.app.whenReady(); // Start the initial LM instance let windowController = new WindowController_1.WindowController(config); let restartPromise = Promise.resolve(); let lastUpdate; /** A function to restart LaunchMenu */ const restart = async () => { const updateTime = Date.now(); lastUpdate = updateTime; restartPromise = restartPromise.then(async () => { // Make sure this is the last requested update if (lastUpdate != updateTime) return; // Dispose the old window await windowController.destroy(); // Get a fresh instance of the class and reinitialize the window const { WindowController, } = require("./WindowController"); windowController = new WindowController(config); }); }; // Take care of restarting and shutting down electron_1.ipcMain.on("restart", restart); let quit = false; electron_1.ipcMain.on("shutdown", async () => { if (quit) return; quit = true; await windowController.destroy(); allowQuit = true; electron_1.app.quit(); }); // If in development enable HMR for the window if (DEV) { // Watch within the windowManager dir for changes, and reload if changes are detected hmr_1.default(__dirname, restart); } // Resolve the promise once LM has fully started await windowController.started; return { show: () => windowController.show(), shown: windowController.shown, exit: () => electron_1.ipcMain.emit("shutdown"), }; } exports.launch = launch; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2luZG93Q29udHJvbGxlci9sYXVuY2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1Q0FBc0M7QUFDdEMseURBQW9EO0FBQ3BELDBEQUFrQztBQUdsQyxNQUFNLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLE1BQU0sQ0FBQyxNQUEwQjtJQVFuRCxrQkFBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRTVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN0QixjQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUN4QixJQUFJLENBQUMsU0FBUztZQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sY0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRXRCLGdDQUFnQztJQUNoQyxJQUFJLGdCQUFnQixHQUFHLElBQUksbUNBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFcEQsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLElBQUksVUFBOEIsQ0FBQztJQUNuQyx1Q0FBdUM7SUFDdkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzlCLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDNUMsOENBQThDO1lBQzlDLElBQUksVUFBVSxJQUFJLFVBQVU7Z0JBQUUsT0FBTztZQUVyQyx5QkFBeUI7WUFDekIsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVqQyxnRUFBZ0U7WUFDaEUsTUFBTSxFQUNGLGdCQUFnQixHQUNuQixHQUF3QyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUN2RSxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0lBRUYsNENBQTRDO0lBQzVDLGtCQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQixJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7SUFDakIsa0JBQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlCLElBQUksSUFBSTtZQUFFLE9BQU87UUFDakIsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNaLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixjQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztJQUVILDhDQUE4QztJQUM5QyxJQUFJLEdBQUcsRUFBRTtRQUNMLHFGQUFxRjtRQUNyRixhQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzNCO0lBRUQsZ0RBQWdEO0lBQ2hELE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQy9CLE9BQU87UUFDSCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1FBQ25DLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1FBQzdCLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxrQkFBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7S0FDdkMsQ0FBQztBQUNOLENBQUM7QUFqRUQsd0JBaUVDIn0=