mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-13 04:28:41 -09:00
* Step 1: move electorn into `app/`. This is to comply with the suggested directory format of `electron-builder`: https://github.com/electron-userland/electron-builder#two-packagejson-structure * Step 2: add build directory with icon files for mac / windows * Step 3: move all development (web) assets into main directory * Step 4: add `build` namespace to dev `package.json` * Step 5: move all dev dependencies into dev file and get rid of old electron packagers in favor of `eletorn-builder` * Step 6: target build inside `app/` as everything else is excluded at build time * Step 7: remove old stuff! * Step 8: update README * turn off asar for `child_pty`
41 lines
919 B
JavaScript
41 lines
919 B
JavaScript
const { app, BrowserWindow } = require('electron');
|
|
const isDev = require('electron-is-dev');
|
|
const { resolve } = require('path');
|
|
|
|
let win;
|
|
|
|
// the hack of all hacks
|
|
// electron doesn't have a built in notification thing,
|
|
// so we launch a window on which we can use the
|
|
// HTML5 `Notification` API :'(
|
|
|
|
let buffer = [];
|
|
|
|
app.on('ready', () => {
|
|
const win_ = new BrowserWindow({
|
|
show: false
|
|
});
|
|
const url = 'file://' + resolve(
|
|
isDev ? __dirname : app.getAppPath(),
|
|
'notify.html'
|
|
);
|
|
win_.loadURL(url);
|
|
win_.webContents.on('dom-ready', () => {
|
|
win = win_;
|
|
buffer.forEach(([title, body]) => {
|
|
notify(title, body);
|
|
});
|
|
buffer = null;
|
|
});
|
|
});
|
|
|
|
function notify (title, body) {
|
|
console.log(`[Notification] ${title}: ${body}`);
|
|
if (win) {
|
|
win.webContents.send('notification', { title, body });
|
|
} else {
|
|
buffer.push([title, body]);
|
|
}
|
|
}
|
|
|
|
module.exports = notify;
|