forked from facebook/react
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
62 lines (53 loc) · 1.92 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const {app, BrowserWindow, shell} = require('electron'); // Module to create native browser window.
const {join} = require('path');
const os = require('os');
const argv = require('minimist')(process.argv.slice(2));
const projectRoots = argv._;
let mainWindow = null;
app.on('window-all-closed', function () {
app.quit();
});
app.on('ready', function () {
// Create the browser window.
mainWindow = new BrowserWindow({
width: 800,
height: 600,
icon: join(__dirname, 'icons/icon128.png'),
frame: false,
//titleBarStyle: 'customButtonsOnHover',
webPreferences: {
contextIsolation: true, // protect against prototype pollution
enableRemoteModule: false, // turn off remote
sandbox: false, // allow preload script to access file system
preload: join(__dirname, 'preload.js'), // use a preload script to expose node globals
},
});
// set dock icon for macos
if (os.platform() === 'darwin') {
app.dock.setIcon(join(__dirname, 'icons/icon128.png'));
}
// https://stackoverflow.com/questions/32402327/
mainWindow.webContents.setWindowOpenHandler(({url}) => {
shell.openExternal(url);
return {action: 'deny'};
});
// and load the index.html of the app.
mainWindow.loadURL('file://' + __dirname + '/app.html');
// $FlowFixMe[incompatible-use] found when upgrading Flow
mainWindow.webContents.executeJavaScript(
// We use this so that RN can keep relative JSX __source filenames
// but "click to open in editor" still works. js1 passes project roots
// as the argument to DevTools.
'window.devtools.setProjectRoots(' + JSON.stringify(projectRoots) + ')',
);
// Emitted when the window is closed.
mainWindow.on('closed', function () {
mainWindow = null;
});
});