From b3950330e3351437f153c6c1debb3821d6e28864 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 8 Dec 2018 12:39:18 +0100 Subject: Create Electron app --- src/main/index.ts | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/main/index.ts (limited to 'src/main') diff --git a/src/main/index.ts b/src/main/index.ts new file mode 100644 index 0000000..a4beb71 --- /dev/null +++ b/src/main/index.ts @@ -0,0 +1,51 @@ +import { app, BrowserWindow } from 'electron'; +import * as path from 'path'; +import { format as formatUrl } from 'url'; + +const isDevelopment = process.env.NODE_ENV !== 'production'; + +let mainWindow: BrowserWindow|null = null; + +function getIndexURL(): string { + if (isDevelopment) + return `http://localhost:${process.env.ELECTRON_WEBPACK_WDS_PORT}`; + + return formatUrl({ + pathname: path.join(__dirname, 'index.html'), + protocol: 'file', + slashes: true, + }); +} + +function createMainWindow(): BrowserWindow { + const window = new BrowserWindow(); + + if (isDevelopment) + window.webContents.openDevTools(); + + window.loadURL(getIndexURL()); + + window.on('closed', () => { + mainWindow = null; + }); + + window.webContents.on('devtools-opened', () => { + window.webContents.focus(); + }); + + return window; +} + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') + app.quit(); +}); + +app.on('activate', () => { + if (!mainWindow) + mainWindow = createMainWindow(); +}); + +app.on('ready', () => { + mainWindow = createMainWindow(); +}); -- cgit v1.2.3