@launchmenu/launcher
Version:
The installer + launcher of LM
76 lines • 4.87 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.InstallerWindow = void 0;
const electron_1 = require("electron");
const path_1 = __importDefault(require("path"));
class InstallerWindow {
/**
* Creates a new installer window, which can be used to visualize the current installation step.
*/
constructor() { }
/**
* Initializes the window
*/
init() {
return new Promise(res => {
electron_1.ipcMain.once("ready", () => {
this.window.show();
res();
});
this.window = new electron_1.BrowserWindow({
title: "LM setup",
width: 400,
height: 250,
frame: false,
show: false,
resizable: false,
webPreferences: {
nodeIntegration: true,
},
icon: path_1.default.join(__dirname, "..", "icon.png"),
});
this.window.loadFile(path_1.default.join(__dirname, "index.html"));
if (DEV)
this.window.webContents.openDevTools();
});
}
/**
* Retrieves the initial applets to be installed, by asking the user for it
* @returns The selected applets to install
*/
async getInitialApplets() {
this.setState({ type: "configuring", name: "applets" });
return new Promise((res, rej) => {
electron_1.ipcMain.once("selectApplets", (event, applets) => {
res(applets);
});
});
}
/**
* Sets the state to be displayed in the window
* @param state The state to be displayed
* @returns The selected value if a prompt state was specified
*/
async setState(state) {
this.window.webContents.send("state", state);
if (state.type == "prompt") {
return new Promise(res => {
electron_1.ipcMain.once("clickButton", (event, index) => {
res(state.buttons[index].value);
});
});
}
return Promise.resolve();
}
/**
* Closes the window
*/
close() {
this.window.close();
}
}
exports.InstallerWindow = InstallerWindow;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFsbGVyV2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc3RhbGxlcldpbmRvdy9JbnN0YWxsZXJXaW5kb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUNBQWdEO0FBQ2hELGdEQUF3QjtBQUV4QixNQUFhLGVBQWU7SUFHeEI7O09BRUc7SUFDSCxnQkFBc0IsQ0FBQztJQUV2Qjs7T0FFRztJQUNJLElBQUk7UUFDUCxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLGtCQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ25CLEdBQUcsRUFBRSxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksd0JBQWEsQ0FBQztnQkFDNUIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEtBQUssRUFBRSxHQUFHO2dCQUNWLE1BQU0sRUFBRSxHQUFHO2dCQUNYLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixjQUFjLEVBQUU7b0JBQ1osZUFBZSxFQUFFLElBQUk7aUJBQ3hCO2dCQUNELElBQUksRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDO2FBQy9DLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxHQUFHO2dCQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1QixrQkFBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBaUIsRUFBRSxFQUFFO2dCQUN2RCxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBSSxLQUFnQjtRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDeEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDckIsa0JBQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO29CQUNqRCxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUF1QixDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDSjtBQXhFRCwwQ0F3RUMifQ==