Handle errors in Discord activity callbacks

This commit is contained in:
Samuel Elliott 2022-09-21 19:42:56 +01:00
parent c85d184807
commit 9f001b83ff
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6

View File

@ -1,3 +1,4 @@
import createDebug from 'debug';
import DiscordRPC from 'discord-rpc';
import { Game, PresenceState } from '../api/coral-types.js';
import { defaultTitle, titles } from './titles.js';
@ -5,6 +6,8 @@ import { product, version } from '../util/product.js';
import { getTitleIdFromEcUrl, hrduration } from '../util/misc.js';
import { DiscordPresence, DiscordPresenceContext, DiscordPresencePlayTime } from './types.js';
const debug = createDebug('nxapi:discord');
export function getDiscordPresence(
state: PresenceState, game: Game, context?: DiscordPresenceContext
): DiscordPresence {
@ -62,7 +65,11 @@ export function getDiscordPresence(
});
}
title.callback?.call(null, activity, game, context);
try {
title.callback?.call(null, activity, game, context);
} catch (err) {
debug('Error in callback for title %s', titleid, err);
}
return {
id: title.client || defaultTitle.client,