diff options
Diffstat (limited to 'src/jsUtils.ts')
-rw-r--r-- | src/jsUtils.ts | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/jsUtils.ts b/src/jsUtils.ts index b93d6db5b..0cc83bb91 100644 --- a/src/jsUtils.ts +++ b/src/jsUtils.ts | |||
@@ -9,4 +9,17 @@ export const convertToJSON = (data: string | any | undefined | null) => | |||
9 | export const cleanseJSObject = (data: any | undefined | null) => | 9 | export const cleanseJSObject = (data: any | undefined | null) => |
10 | JSON.parse(JSON.stringify(data)); | 10 | JSON.parse(JSON.stringify(data)); |
11 | 11 | ||
12 | export const isEscKeyPress = (keyCode: Number) => keyCode === 27; | 12 | export const isEscKeyPress = (keyCode: number) => keyCode === 27; |
13 | |||
14 | export const safeParseInt = (text: string | number | undefined | null) => { | ||
15 | if (text === undefined || text === null) { | ||
16 | return 0; | ||
17 | } | ||
18 | |||
19 | // Parse number to integer | ||
20 | // This will correct errors that recipes may introduce, e.g. | ||
21 | // by sending a String instead of an integer | ||
22 | const parsedNumber = Number.parseInt(text.toString(), 10); | ||
23 | const adjustedNumber = Number.isNaN(parsedNumber) ? 0 : parsedNumber; | ||
24 | return Math.max(adjustedNumber, 0); | ||
25 | }; | ||