aboutsummaryrefslogtreecommitdiff
path: root/src/tools/json-minify/json-minify.vue
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/tools/json-minify/json-minify.vue66
1 files changed, 18 insertions, 48 deletions
diff --git a/src/tools/json-minify/json-minify.vue b/src/tools/json-minify/json-minify.vue
index 92ab7d2..d7e9d15 100644
--- a/src/tools/json-minify/json-minify.vue
+++ b/src/tools/json-minify/json-minify.vue
@@ -1,57 +1,27 @@
<template>
- <n-form-item
- label="Your raw json"
- :feedback="rawJsonValidation.message"
- :validation-status="rawJsonValidation.status"
- >
- <n-input
- ref="inputElement"
- v-model:value="rawJson"
- placeholder="Paste your raw json here..."
- type="textarea"
- rows="20"
- autocomplete="off"
- autocorrect="off"
- autocapitalize="off"
- spellcheck="false"
- />
- </n-form-item>
- <n-form-item label="Minify version of your JSON">
- <textarea-copyable :value="cleanJson" language="json" :follow-height-of="inputElement" />
- </n-form-item>
+ <format-transformer
+ input-label="Your raw json"
+ :input-default="defaultValue"
+ input-placeholder="Paste your raw json here..."
+ output-label="Minify version of your JSON"
+ output-language="json"
+ :input-validation-rules="rules"
+ :transformer="transformer"
+ />
</template>
<script setup lang="ts">
-import TextareaCopyable from '@/components/TextareaCopyable.vue';
-import { useValidation } from '@/composable/validation';
+import type { UseValidationRule } from '@/composable/validation';
import { withDefaultOnError } from '@/utils/defaults';
import JSON5 from 'json5';
-import { computed, ref } from 'vue';
-const inputElement = ref<HTMLElement>();
+const defaultValue = '{\n\t"hello": [\n\t\t"world"\n\t]\n}';
+const transformer = (value: string) => withDefaultOnError(() => JSON.stringify(JSON5.parse(value), null, 0), '');
-const rawJson = ref('{\n\t"hello": [\n\t\t"world"\n\t]\n}');
-const cleanJson = computed(() => withDefaultOnError(() => JSON.stringify(JSON5.parse(rawJson.value), null, 0), ''));
-
-const rawJsonValidation = useValidation({
- source: rawJson,
- rules: [
- {
- validator: (v) => v === '' || JSON5.parse(v),
- message: 'Provided JSON is not valid.',
- },
- ],
-});
+const rules: UseValidationRule<string>[] = [
+ {
+ validator: (v: string) => v === '' || JSON5.parse(v),
+ message: 'Provided JSON is not valid.',
+ },
+];
</script>
-
-<style lang="less" scoped>
-.result-card {
- position: relative;
-
- .copy-button {
- position: absolute;
- top: 10px;
- right: 10px;
- }
-}
-</style>
d/update-zig1 Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/buffer-read.js (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2023-10-09Fix npm tag for canary bun-types, againGravatar Ashcon Partovi 2-56/+10
2023-10-09Add Fedora build instructions to development.md (#6359)Gravatar otterDeveloper 1-0/+10
2023-10-09added commands (#6314)Gravatar babar 1-1/+2
2023-10-09Update README.md (#6291)Gravatar TPLJ 1-1/+1
2023-10-09docs: fixing a couple typos (#6331)Gravatar Michael Di Prisco 2-2/+2
2023-10-09fix: support uint8 exit code range (#6303)Gravatar Liz 2-2/+11
2023-10-09Fix array variables preview in debugger (#6379)Gravatar 2hu 1-1/+4
2023-10-07feat(KeyObject) (#5940)Gravatar Ciro Spaciari 106-67/+9342
2023-10-07Exclude more filesGravatar Jarred Sumner 1-1/+1
2023-10-07Exclude more filesGravatar Jarred Sumner 1-1/+2
2023-10-07Update settings.jsonGravatar Jarred Sumner 1-1/+2
2023-10-07Update settings.jsonGravatar Jarred Sumner 1-2/+3
2023-10-06fix a couple install testsGravatar Dylan Conway 1-8/+8
2023-10-06formatGravatar Dylan Conway 1-1/+2
2023-10-06Fix memory leak in fetch() (#6350)Gravatar Jarred Sumner 1-2/+0
2023-10-06[types] allow onLoad plugin callbacks to return undefined (#6346)Gravatar Silver 1-1/+1
2023-10-06docs: `file.stream()` is not a promise (#6337)Gravatar Paul Nodet 1-1/+1