bloodymary/app/discord_native/browser/app.js

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');
});