-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.ts
76 lines (68 loc) · 1.7 KB
/
main.ts
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import url from 'url';
import WindowManager from 'electron-windows';
import { app } from 'electron';
import { waitPort } from 'detect-port';
import pkg from '../package.json';
import {
Monitor,
// PerfTracing,
EVENT_ACTION_CHANNEL_NAME, EVENT_DATA_CHANNEL_NAME,
BROWSER_WINDOW_PRELOAD_PATH,
} from '../src/main';
const webpackPort = 8080;
function getMainUrl() {
return url.format({
protocol: 'http:',
hostname: 'localhost',
pathname: 'index.html',
port: webpackPort,
query: {
EVENT_DATA_CHANNEL_NAME,
EVENT_ACTION_CHANNEL_NAME,
},
});
}
app.on('ready', async () => {
await waitPort(webpackPort);
const monitor = new Monitor();
const windowManager = new WindowManager();
const win = windowManager.create({
name: 'main',
browserWindow: {
width: 1280,
height: 800,
title: pkg.name,
show: false,
acceptFirstMouse: true,
webPreferences: {
preload: BROWSER_WINDOW_PRELOAD_PATH,
},
},
});
const mainUrl = getMainUrl();
console.log('load url: %s', mainUrl);
win.loadURL(mainUrl);
win.webContents.openDevTools({ mode: 'detach' });
win.webContents.on('dom-ready', () => {
monitor.on(EVENT_DATA_CHANNEL_NAME, (data: any) => {
win.webContents.send(EVENT_DATA_CHANNEL_NAME, data);
});
monitor.bindEventToWindow(win);
monitor.start();
});
win.once('ready-to-show', () => {
win.show();
});
// PerfTracing({
// dumpTargetDir: path.join(process.cwd(), '.electrom'),
// partitionThreshold: 30e3,
// memoryDumpConfig: {
// triggers: [
// {
// mode: 'light',
// periodic_interval_ms: 10e3,
// },
// ],
// },
// });
});