90 lines
3.1 KiB
JavaScript
90 lines
3.1 KiB
JavaScript
"use strict";
|
|
|
|
var _electron = _interopRequireDefault(require("electron"));
|
|
var _DiscordIPC = require("../common/DiscordIPC");
|
|
var _paths = require("../common/paths");
|
|
var _crashReporter = require("./crashReporter");
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
const releaseChannel = _DiscordIPC.DiscordIPC.renderer.sendSync(_DiscordIPC.IPCEvents.APP_GET_RELEASE_CHANNEL_SYNC);
|
|
const hostVersion = _DiscordIPC.DiscordIPC.renderer.sendSync(_DiscordIPC.IPCEvents.APP_GET_HOST_VERSION_SYNC);
|
|
const buildNumber = _DiscordIPC.DiscordIPC.renderer.sendSync(_DiscordIPC.IPCEvents.APP_GET_BUILD_NUMBER);
|
|
(0, _crashReporter.updateCrashReporter)({
|
|
nativeBuildNumber: (buildNumber === null || buildNumber === void 0 ? void 0 : buildNumber.toString()) ?? 'null'
|
|
});
|
|
let moduleVersions = {};
|
|
_DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_GET_MODULE_VERSIONS).then(versions => {
|
|
moduleVersions = versions;
|
|
});
|
|
|
|
// TODO: Fix this .on to be part of our typing.
|
|
_electron.default.ipcRenderer.on('DISCORD_MODULE_INSTALLED', async _ => {
|
|
moduleVersions = await _DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_GET_MODULE_VERSIONS);
|
|
});
|
|
function getReleaseChannel() {
|
|
return releaseChannel;
|
|
}
|
|
function getVersion() {
|
|
return hostVersion;
|
|
}
|
|
function getBuildNumber() {
|
|
return buildNumber;
|
|
}
|
|
function getModuleVersions() {
|
|
return moduleVersions;
|
|
}
|
|
function setBadgeCount(count) {
|
|
_DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_SET_BADGE_COUNT, count);
|
|
return Promise.resolve();
|
|
}
|
|
function dockSetBadge(badge) {
|
|
_DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_DOCK_SET_BADGE, badge);
|
|
return Promise.resolve();
|
|
}
|
|
function dockBounce(type) {
|
|
_DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_DOCK_BOUNCE, type);
|
|
return Promise.resolve();
|
|
}
|
|
function dockCancelBounce(id) {
|
|
_DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_DOCK_CANCEL_BOUNCE, id);
|
|
return Promise.resolve();
|
|
}
|
|
function relaunch() {
|
|
_DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_RELAUNCH);
|
|
return Promise.resolve();
|
|
}
|
|
function getDefaultDoubleClickAction() {
|
|
return _DiscordIPC.DiscordIPC.renderer.invoke(_DiscordIPC.IPCEvents.APP_GET_DEFAULT_DOUBLE_CLICK_ACTION);
|
|
}
|
|
function registerUserInteractionHandler(elementId, eventType, callback) {
|
|
const element = document.getElementById(elementId);
|
|
if (element == null) {
|
|
throw new Error(`Element with id '${elementId}' was not found`);
|
|
}
|
|
function handleUserInteraction(ev) {
|
|
if (!ev.isTrusted) {
|
|
return;
|
|
}
|
|
callback(ev);
|
|
}
|
|
element.addEventListener(eventType, handleUserInteraction);
|
|
return () => {
|
|
element.removeEventListener(eventType, handleUserInteraction);
|
|
};
|
|
}
|
|
module.exports = {
|
|
getReleaseChannel,
|
|
getVersion,
|
|
getModuleVersions,
|
|
getBuildNumber,
|
|
getPath: _paths.getPath,
|
|
// used via DiscordNative.remoteApp.getPath
|
|
setBadgeCount,
|
|
dock: {
|
|
setBadge: dockSetBadge,
|
|
bounce: dockBounce,
|
|
cancelBounce: dockCancelBounce
|
|
},
|
|
relaunch,
|
|
getDefaultDoubleClickAction,
|
|
registerUserInteractionHandler
|
|
}; |