floss
Version:
Unit-testing for those hard to reach places
63 lines • 4.97 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs");
const path = require("path");
const electron_1 = require("electron");
const chalk = require("chalk");
// Get the configuration path
const configPath = path.join(electron_1.app.getPath('userData'), 'config.json');
/**
* Restore the bounds of the window.
*/
const restoreBounds = () => {
try {
return JSON.parse(fs_1.readFileSync(configPath, 'utf8'));
}
catch (e) {
return {
width: 1024,
height: 768
};
}
};
const createWindow = () => {
const args = JSON.parse(process.argv.slice(2)[0]);
// Get the window bounds
const options = Object.assign(Object.assign({}, restoreBounds()), { show: args.debug, background: '#fff', webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
contextIsolation: false,
} });
// Create the browser window.
const mainWindow = new electron_1.BrowserWindow(options);
electron_1.ipcMain
.on("floss-done" /* Done */, () => process.exit(0))
.on("floss-error" /* Error */, (_event, message) => {
if (message) {
console.error(chalk.red(`\n[floss] Error: ${message}\n`));
}
process.exit(1);
});
// and load the index.html of the app.
mainWindow.loadFile(path.join(__dirname, 'index.html'));
const { webContents } = mainWindow;
// don't show the dev tools if you're not in headless mode. this is to
// avoid having breakpoints and "pause on caught / uncaught exceptions" halting
// the runtime. plus, if you're in headless mode, having the devtools open is probably
// not very useful anyway
if (args.debug) {
webContents.openDevTools({ mode: 'bottom' });
}
webContents.on('did-finish-load', () => {
webContents.send("floss-start" /* Start */, JSON.stringify(args));
});
mainWindow.on('close', () => {
fs_1.writeFileSync(configPath, JSON.stringify(mainWindow.getBounds()));
});
};
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
electron_1.app.whenReady().then(createWindow);
// Quit when all windows are closed.
electron_1.app.on('window-all-closed', () => electron_1.app.quit());
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQWlEO0FBQ2pELDZCQUE2QjtBQUM3Qix1Q0FBdUQ7QUFFdkQsK0JBQStCO0FBRS9CLDZCQUE2QjtBQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFFckU7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxHQUFnQyxFQUFFO0lBRXBELElBQ0E7UUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUN2RDtJQUNELE9BQU8sQ0FBQyxFQUNSO1FBQ0ksT0FBTztZQUNILEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLEdBQUc7U0FDZCxDQUFDO0tBQ0w7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFFdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWxELHdCQUF3QjtJQUN4QixNQUFNLE9BQU8sbUNBQ04sYUFBYSxFQUFFLEtBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUNoQixVQUFVLEVBQUUsTUFBTSxFQUNsQixjQUFjLEVBQUU7WUFDWixlQUFlLEVBQUUsSUFBSTtZQUNyQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLGdCQUFnQixFQUFFLEtBQUs7U0FDMUIsR0FDSixDQUFDO0lBRUYsNkJBQTZCO0lBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksd0JBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU5QyxrQkFBTztTQUNGLEVBQUUsMEJBQWtCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUMsRUFBRSw0QkFBbUIsQ0FBQyxNQUFXLEVBQUUsT0FBZSxFQUFFLEVBQUU7UUFFbkQsSUFBSSxPQUFPLEVBQ1g7WUFDSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsb0JBQW9CLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM3RDtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFUCxzQ0FBc0M7SUFDdEMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBRXhELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFFbkMsc0VBQXNFO0lBQ3RFLCtFQUErRTtJQUMvRSx1RkFBdUY7SUFDdkYseUJBQXlCO0lBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssRUFDZDtRQUNJLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNoRDtJQUVELFdBQVcsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO1FBRW5DLFdBQVcsQ0FBQyxJQUFJLDRCQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFFeEIsa0JBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsd0RBQXdEO0FBQ3hELHlEQUF5RDtBQUN6RCxjQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRW5DLG9DQUFvQztBQUNwQyxjQUFHLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDIn0=
;