From 91ebfb1c7dc2ef63be02f614585fdf9fd9ef6773 Mon Sep 17 00:00:00 2001 From: Vijay A Date: Tue, 31 Aug 2021 16:29:31 +0530 Subject: refactor: expose safeParseInt so that all recipes can use the same for consistent error handling --- src/webview/badge.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/webview/badge.ts') diff --git a/src/webview/badge.ts b/src/webview/badge.ts index b1da36271..753e90fef 100644 --- a/src/webview/badge.ts +++ b/src/webview/badge.ts @@ -12,11 +12,16 @@ export class BadgeHandler { }; } - _normalizeNumber(count: string | number) { + // TODO: Need to extract this into a utility class and reuse outside of the recipes + safeParseInt(text: string | number | undefined | null) { + if (text === undefined || text === null) { + return 0; + } + // Parse number to integer // This will correct errors that recipes may introduce, e.g. // by sending a String instead of an integer - const parsedNumber = parseInt(count.toString(), 10); + const parsedNumber = parseInt(text.toString(), 10); const adjustedNumber = Number.isNaN(parsedNumber) ? 0 : parsedNumber; return Math.max(adjustedNumber, 0); } @@ -28,8 +33,8 @@ export class BadgeHandler { } const count = { - direct: this._normalizeNumber(direct), - indirect: this._normalizeNumber(indirect), + direct: this.safeParseInt(direct), + indirect: this.safeParseInt(indirect), }; debug('Sending badge count to host', count); -- cgit v1.2.3-70-g09d2