aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview/badge.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/webview/badge.ts')
-rw-r--r--src/webview/badge.ts13
1 files changed, 9 insertions, 4 deletions
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 {
12 }; 12 };
13 } 13 }
14 14
15 _normalizeNumber(count: string | number) { 15 // TODO: Need to extract this into a utility class and reuse outside of the recipes
16 safeParseInt(text: string | number | undefined | null) {
17 if (text === undefined || text === null) {
18 return 0;
19 }
20
16 // Parse number to integer 21 // Parse number to integer
17 // This will correct errors that recipes may introduce, e.g. 22 // This will correct errors that recipes may introduce, e.g.
18 // by sending a String instead of an integer 23 // by sending a String instead of an integer
19 const parsedNumber = parseInt(count.toString(), 10); 24 const parsedNumber = parseInt(text.toString(), 10);
20 const adjustedNumber = Number.isNaN(parsedNumber) ? 0 : parsedNumber; 25 const adjustedNumber = Number.isNaN(parsedNumber) ? 0 : parsedNumber;
21 return Math.max(adjustedNumber, 0); 26 return Math.max(adjustedNumber, 0);
22 } 27 }
@@ -28,8 +33,8 @@ export class BadgeHandler {
28 } 33 }
29 34
30 const count = { 35 const count = {
31 direct: this._normalizeNumber(direct), 36 direct: this.safeParseInt(direct),
32 indirect: this._normalizeNumber(indirect), 37 indirect: this.safeParseInt(indirect),
33 }; 38 };
34 39
35 debug('Sending badge count to host', count); 40 debug('Sending badge count to host', count);