100 lines
2.7 KiB
JavaScript
100 lines
2.7 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.injectBuildInfo = injectBuildInfo;
|
|
exports.injectModuleUpdater = injectModuleUpdater;
|
|
exports.injectUpdater = injectUpdater;
|
|
|
|
const electron = require('electron');
|
|
|
|
const {
|
|
APP_GET_RELEASE_CHANNEL_SYNC,
|
|
APP_GET_HOST_VERSION_SYNC,
|
|
APP_GET_MODULE_VERSIONS,
|
|
APP_GET_PATH,
|
|
APP_SET_BADGE_COUNT,
|
|
APP_DOCK_SET_BADGE,
|
|
APP_DOCK_BOUNCE,
|
|
APP_DOCK_CANCEL_BOUNCE,
|
|
APP_RELAUNCH,
|
|
APP_GET_DEFAULT_DOUBLE_CLICK_ACTION
|
|
} = require('../common/constants').IPCEvents;
|
|
|
|
let injectedBuildInfo = null;
|
|
let injectedModuleUpdater = null;
|
|
let injectedUpdater = null;
|
|
|
|
function injectBuildInfo(buildInfo) {
|
|
injectedBuildInfo = buildInfo;
|
|
}
|
|
|
|
function injectModuleUpdater(moduleUpdater) {
|
|
injectedModuleUpdater = moduleUpdater;
|
|
}
|
|
|
|
function injectUpdater(updater) {
|
|
injectedUpdater = updater;
|
|
}
|
|
|
|
electron.ipcMain.on(APP_GET_RELEASE_CHANNEL_SYNC, event => {
|
|
event.returnValue = injectedBuildInfo.releaseChannel;
|
|
});
|
|
electron.ipcMain.on(APP_GET_HOST_VERSION_SYNC, event => {
|
|
event.returnValue = electron.app.getVersion();
|
|
});
|
|
|
|
async function newUpdaterGetModuleVersions(updater) {
|
|
// eslint-disable-next-line camelcase
|
|
return (await updater.queryCurrentVersions()).current_modules;
|
|
}
|
|
|
|
electron.ipcMain.handle(APP_GET_MODULE_VERSIONS, async _ => {
|
|
var _injectedUpdater;
|
|
|
|
const newUpdater = (_injectedUpdater = injectedUpdater) === null || _injectedUpdater === void 0 ? void 0 : _injectedUpdater.getUpdater();
|
|
|
|
if (newUpdater != null) {
|
|
return newUpdaterGetModuleVersions(newUpdater);
|
|
}
|
|
|
|
const versions = {};
|
|
const installed = injectedModuleUpdater != null ? injectedModuleUpdater.getInstalled() : {};
|
|
|
|
for (const name of Object.keys(installed)) {
|
|
versions[name] = installed[name].installedVersion;
|
|
}
|
|
|
|
return versions;
|
|
});
|
|
electron.ipcMain.handle(APP_GET_PATH, async (_, path) => {
|
|
return electron.app.getPath(path);
|
|
});
|
|
electron.ipcMain.handle(APP_SET_BADGE_COUNT, async (_, count) => {
|
|
electron.app.setBadgeCount(count);
|
|
});
|
|
electron.ipcMain.handle(APP_DOCK_SET_BADGE, async (_, badge) => {
|
|
if (electron.app.dock != null) {
|
|
electron.app.dock.setBadge(badge);
|
|
}
|
|
});
|
|
electron.ipcMain.handle(APP_DOCK_BOUNCE, async (_, type) => {
|
|
if (electron.app.dock != null) {
|
|
return electron.app.dock.bounce(type);
|
|
} else {
|
|
return -1;
|
|
}
|
|
});
|
|
electron.ipcMain.handle(APP_DOCK_CANCEL_BOUNCE, async (_, id) => {
|
|
if (electron.app.dock != null) {
|
|
electron.app.dock.cancelBounce(id);
|
|
}
|
|
});
|
|
electron.ipcMain.handle(APP_RELAUNCH, async _ => {
|
|
electron.app.relaunch();
|
|
electron.app.exit(0);
|
|
});
|
|
electron.ipcMain.handle(APP_GET_DEFAULT_DOUBLE_CLICK_ACTION, async _ => {
|
|
return electron.systemPreferences.getUserDefault('AppleActionOnDoubleClick', 'string');
|
|
}); |