From 8476cf319b7ebae87c7928592604a54833ac56ef Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Wed, 7 Dec 2022 21:52:24 +0100 Subject: [PATCH] fix(integer-base-converter): handle non-decimal char and better error message --- .../integer-base-converter.model.ts | 2 +- .../integer-base-converter.vue | 49 +++++++++++++++---- src/utils/error.test.ts | 29 +++++++++++ src/utils/error.ts | 24 +++++++++ 4 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 src/utils/error.test.ts create mode 100644 src/utils/error.ts diff --git a/src/tools/integer-base-converter/integer-base-converter.model.ts b/src/tools/integer-base-converter/integer-base-converter.model.ts index c3ed66df..cfe15bd1 100644 --- a/src/tools/integer-base-converter/integer-base-converter.model.ts +++ b/src/tools/integer-base-converter/integer-base-converter.model.ts @@ -7,7 +7,7 @@ export function convertBase({ value, fromBase, toBase }: { value: string; fromBa .reverse() .reduce((carry: number, digit: string, index: number) => { if (!fromRange.includes(digit)) { - throw new Error('Invalid digit `' + digit + '` for base ' + fromBase + '.'); + throw new Error('Invalid digit "' + digit + '" for base ' + fromBase + '.'); } return (carry += fromRange.indexOf(digit) * Math.pow(fromBase, index)); }, 0); diff --git a/src/tools/integer-base-converter/integer-base-converter.vue b/src/tools/integer-base-converter/integer-base-converter.vue index 04c43218..33b1deeb 100644 --- a/src/tools/integer-base-converter/integer-base-converter.vue +++ b/src/tools/integer-base-converter/integer-base-converter.vue @@ -4,7 +4,7 @@
Input number: - + Input base: @@ -14,51 +14,65 @@ Input number: - + Input base: + + {{ error }} Binary (2): - + Octal (8): - + Decimal (10): Hexadecimal (16): Base64 (64): Custom: @@ -66,16 +80,31 @@