96 lines
3.8 KiB
JavaScript
96 lines
3.8 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.injectBuildInfo = injectBuildInfo;
|
|
exports.injectModuleUpdater = injectModuleUpdater;
|
|
exports.injectUpdater = injectUpdater;
|
|
var _electron = _interopRequireDefault(require("electron"));
|
|
var _DiscordIPC = require("../common/DiscordIPC");
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
/* eslint-disable require-await */
|
|
|
|
let injectedBuildInfo = null;
|
|
let injectedModuleUpdater = null;
|
|
let injectedUpdater = null;
|
|
function injectBuildInfo(buildInfo) {
|
|
injectedBuildInfo = buildInfo;
|
|
}
|
|
function injectModuleUpdater(moduleUpdater) {
|
|
injectedModuleUpdater = moduleUpdater;
|
|
}
|
|
function injectUpdater(updater) {
|
|
injectedUpdater = updater;
|
|
}
|
|
_DiscordIPC.DiscordIPC.main.on(_DiscordIPC.IPCEvents.APP_GET_RELEASE_CHANNEL_SYNC, event => {
|
|
event.returnValue = injectedBuildInfo.releaseChannel;
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.on(_DiscordIPC.IPCEvents.APP_GET_HOST_VERSION_SYNC, event => {
|
|
event.returnValue = _electron.default.app.getVersion();
|
|
});
|
|
async function newUpdaterGetModuleVersions(updater) {
|
|
// eslint-disable-next-line camelcase
|
|
return (await updater.queryCurrentVersions()).current_modules;
|
|
}
|
|
function newUpdaterGetBuildNumber(updater) {
|
|
const version = updater.queryCurrentVersionsSync();
|
|
// eslint-disable-next-line camelcase
|
|
if (version.running_update != null) {
|
|
return version.running_update.metadata_version;
|
|
}
|
|
return version.last_successful_update.metadata_version;
|
|
}
|
|
_DiscordIPC.DiscordIPC.main.on(_DiscordIPC.IPCEvents.APP_GET_BUILD_NUMBER, event => {
|
|
var _injectedUpdater;
|
|
const newUpdater = (_injectedUpdater = injectedUpdater) === null || _injectedUpdater === void 0 ? void 0 : _injectedUpdater.getUpdater();
|
|
if (newUpdater != null) {
|
|
event.returnValue = newUpdaterGetBuildNumber(newUpdater);
|
|
return;
|
|
}
|
|
event.returnValue = null;
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_GET_MODULE_VERSIONS, async _ => {
|
|
var _injectedUpdater2;
|
|
const newUpdater = (_injectedUpdater2 = injectedUpdater) === null || _injectedUpdater2 === void 0 ? void 0 : _injectedUpdater2.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;
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_GET_PATH, async (_, path) => {
|
|
// TODO: Fix argument in AsyncIPCEventMap.
|
|
return _electron.default.app.getPath(path);
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_SET_BADGE_COUNT, async (_, count) => {
|
|
_electron.default.app.setBadgeCount(count);
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_DOCK_SET_BADGE, async (_, badge) => {
|
|
if (_electron.default.app.dock != null) {
|
|
_electron.default.app.dock.setBadge(badge);
|
|
}
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_DOCK_BOUNCE, async (_, type) => {
|
|
if (_electron.default.app.dock != null) {
|
|
return _electron.default.app.dock.bounce(type);
|
|
} else {
|
|
return -1;
|
|
}
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_DOCK_CANCEL_BOUNCE, async (_, id) => {
|
|
if (_electron.default.app.dock != null) {
|
|
_electron.default.app.dock.cancelBounce(id);
|
|
}
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_RELAUNCH, async _ => {
|
|
_electron.default.app.relaunch();
|
|
_electron.default.app.exit(0);
|
|
});
|
|
_DiscordIPC.DiscordIPC.main.handle(_DiscordIPC.IPCEvents.APP_GET_DEFAULT_DOUBLE_CLICK_ACTION, async _ => {
|
|
return _electron.default.systemPreferences.getUserDefault('AppleActionOnDoubleClick', 'string');
|
|
}); |