refactor(dry): mutualised duplicated code with withDefaultOnError

This commit is contained in:
Corentin Thomasset 2022-08-04 22:57:24 +02:00
parent 208a373fd0
commit f6cd9b76d3
No known key found for this signature in database
GPG key ID: DBD997E935996158
4 changed files with 10 additions and 35 deletions

View file

@ -60,6 +60,7 @@
<script setup lang="ts">
import { useCopy } from '@/composable/copy';
import { useValidation } from '@/composable/validation';
import { withDefaultOnError } from '@/utils/defaults';
import {
chineseSimplifiedWordList,
chineseTraditionalWordList,
@ -105,12 +106,7 @@ const passphrase = computed({
},
set(value: string) {
passphraseInput.value = value;
try {
entropy.value = mnemonicToEntropy(value, languages[language.value]);
} catch (_) {
entropy.value = '';
}
entropy.value = withDefaultOnError(() => mnemonicToEntropy(value, languages[language.value]), '');
},
});

View file

@ -21,18 +21,13 @@
</template>
<script setup lang="ts">
import { withDefaultOnError } from '@/utils/defaults';
import { evaluate } from 'mathjs';
import { computed, ref } from 'vue';
const expression = ref('');
const result = computed(() => {
try {
return evaluate(expression.value) ?? '';
} catch (_) {
return '';
}
});
const result = computed(() => withDefaultOnError(() => evaluate(expression.value) ?? '', ''));
</script>
<style lang="less" scoped></style>

View file

@ -60,16 +60,11 @@
<script setup lang="ts">
import { useCopy } from '@/composable/copy';
import { useValidation } from '@/composable/validation';
import { withDefaultOnError } from '@/utils/defaults';
import { computed, ref } from 'vue';
const encodeInput = ref('Hello world :)');
const encodeOutput = computed(() => {
try {
return encodeURIComponent(encodeInput.value);
} catch (_) {
return '';
}
});
const encodeOutput = computed(() => withDefaultOnError(() => encodeURIComponent(encodeInput.value), ''));
const encodedValidation = useValidation({
source: encodeInput,
@ -91,14 +86,7 @@ const encodedValidation = useValidation({
const { copy: copyEncoded } = useCopy({ source: encodeOutput, text: 'Encoded string copied to the clipboard' });
const decodeInput = ref('Hello%20world%20%3A)');
const decodeOutput = computed(() => {
try {
return decodeURIComponent(decodeInput.value);
} catch (_) {
return '';
}
});
const decodeOutput = computed(() => withDefaultOnError(() => decodeURIComponent(decodeInput.value), ''));
const decodeValidation = useValidation({
source: encodeInput,

View file

@ -30,16 +30,12 @@
import { computed, ref } from 'vue';
import { SubdirectoryArrowRightRound } from '@vicons/material';
import { useValidation } from '@/composable/validation';
import { withDefaultOnError } from '@/utils/defaults';
import InputCopyable from '../../components/InputCopyable.vue';
const urlToParse = ref('https://me:pwd@it-tools.tech:3000/url-parser?key1=value&key2=value2#the-hash');
const urlParsed = computed<URL | undefined>(() => {
try {
return new URL(urlToParse.value);
} catch (_) {
return undefined;
}
});
const urlParsed = computed(() => withDefaultOnError(() => new URL(urlToParse.value), undefined));
const validation = useValidation({
source: urlToParse,
rules: [