Skip to content

Commit 256cb7e

Browse files
committed
perf: deserialize with [destr](https://github.com/unjs/destr) instead of JSON.parse by default
1 parent 0e340a7 commit 256cb7e

File tree

7 files changed

+857
-970
lines changed

7 files changed

+857
-970
lines changed

README.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
- 🚀 Performant
4444
- Handle large JSON documents up to 512 MB
45+
- Deserialize with [destr](https://github.com/unjs/destr) by default, up to 35.96x faster than `JSON.parse`
4546
- 💪 Powerful
4647
- View, edit, format, validate, compact, sort, query, filter, transform, repair, highlight JSON
4748
- 7 primitive data types including `BigInt` and `Symbol`
@@ -154,8 +155,8 @@ const value = ref()
154155
#### Global Registration
155156

156157
```ts
157-
import { createApp } from 'vue'
158158
import JsonEditorVue from 'json-editor-vue'
159+
import { createApp } from 'vue'
159160

160161
createApp()
161162
.use(JsonEditorVue, {
@@ -276,8 +277,8 @@ const value = ref()
276277
#### Global Registration
277278

278279
```ts
279-
import Vue from 'vue'
280280
import JsonEditorVue from 'json-editor-vue'
281+
import Vue from 'vue'
281282

282283
Vue.use(JsonEditorVue, {
283284
// global props & attrs (one-way data flow)
@@ -381,9 +382,9 @@ npx jsr add @cloydlau/json-editor-vue
381382

382383
```vue
383384
<script>
384-
import Vue from 'vue'
385385
import VCA from '@vue/composition-api'
386386
import JsonEditorVue from 'json-editor-vue'
387+
import Vue from 'vue'
387388
388389
Vue.use(VCA)
389390
@@ -408,9 +409,9 @@ export default {
408409
#### Global Registration
409410

410411
```ts
411-
import Vue from 'vue'
412412
import VCA from '@vue/composition-api'
413413
import JsonEditorVue from 'json-editor-vue'
414+
import Vue from 'vue'
414415

415416
Vue.use(VCA)
416417
Vue.use(JsonEditorVue, {
@@ -679,8 +680,8 @@ export default {
679680
```ts
680681
// ~/plugins/JsonEditorVue.client.js
681682

682-
import Vue from 'vue'
683683
import JsonEditorVue from 'json-editor-vue'
684+
import Vue from 'vue'
684685

685686
Vue.use(JsonEditorVue, {
686687
// global props & attrs (one-way data flow)
@@ -741,8 +742,8 @@ export default {
741742

742743
```vue
743744
<script>
744-
import Vue from 'vue'
745745
import VCA from '@vue/composition-api'
746+
import Vue from 'vue'
746747
747748
Vue.use(VCA)
748749
@@ -794,9 +795,9 @@ export default {
794795
```ts
795796
// ~/plugins/JsonEditorVue.client.js
796797

797-
import Vue from 'vue'
798798
import VCA from '@vue/composition-api'
799799
import JsonEditorVue from 'json-editor-vue'
800+
import Vue from 'vue'
800801

801802
Vue.use(VCA)
802803
Vue.use(JsonEditorVue, {
@@ -907,7 +908,8 @@ module.exports = {
907908
// Getting webpack to recognize the `.mjs` file
908909
config.module
909910
.rule('mjs')
910-
.include.add(/node_modules/)
911+
.include
912+
.add(/node_modules/)
911913
.type('javascript/auto')
912914
.end()
913915
},
@@ -1064,8 +1066,8 @@ onMounted(() => {
10641066

10651067
```vue
10661068
<script setup>
1067-
import 'vanilla-jsoneditor/themes/jse-theme-dark.css'
10681069
import JsonEditorVue from 'json-editor-vue'
1070+
import 'vanilla-jsoneditor/themes/jse-theme-dark.css'
10691071
</script>
10701072
10711073
<template>

docs/README.zh-CN.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
- 🚀 高性能
4444
- 支持高达 512 MB 的大型 JSON 文档
45+
- 反序列化默认使用 [destr](https://github.com/unjs/destr),比 `JSON.parse` 快达 35.96 倍
4546
- 💪 强力
4647
- 预览、编辑、格式化、校验、压缩、排序、查询、过滤、转换、修复、高亮 JSON
4748
- 7 种原始数据类型包括 `BigInt` and `Symbol`
@@ -152,8 +153,8 @@ const value = ref()
152153
#### 全局注册
153154

154155
```ts
155-
import { createApp } from 'vue'
156156
import JsonEditorVue from 'json-editor-vue'
157+
import { createApp } from 'vue'
157158

158159
createApp()
159160
.use(JsonEditorVue, {
@@ -274,8 +275,8 @@ const value = ref()
274275
#### 全局注册
275276

276277
```ts
277-
import Vue from 'vue'
278278
import JsonEditorVue from 'json-editor-vue'
279+
import Vue from 'vue'
279280

280281
Vue.use(JsonEditorVue, {
281282
// 全局 props & attrs(单向数据流)
@@ -379,9 +380,9 @@ npx jsr add @cloydlau/json-editor-vue
379380

380381
```vue
381382
<script>
382-
import Vue from 'vue'
383383
import VCA from '@vue/composition-api'
384384
import JsonEditorVue from 'json-editor-vue'
385+
import Vue from 'vue'
385386
386387
Vue.use(VCA)
387388
@@ -406,9 +407,9 @@ export default {
406407
#### 全局注册
407408

408409
```ts
409-
import Vue from 'vue'
410410
import VCA from '@vue/composition-api'
411411
import JsonEditorVue from 'json-editor-vue'
412+
import Vue from 'vue'
412413

413414
Vue.use(VCA)
414415
Vue.use(JsonEditorVue, {
@@ -677,8 +678,8 @@ export default {
677678
```ts
678679
// ~/plugins/JsonEditorVue.client.js
679680

680-
import Vue from 'vue'
681681
import JsonEditorVue from 'json-editor-vue'
682+
import Vue from 'vue'
682683

683684
Vue.use(JsonEditorVue, {
684685
// 全局 props & attrs(单向数据流)
@@ -739,8 +740,8 @@ export default {
739740

740741
```vue
741742
<script>
742-
import Vue from 'vue'
743743
import VCA from '@vue/composition-api'
744+
import Vue from 'vue'
744745
745746
Vue.use(VCA)
746747
@@ -792,9 +793,9 @@ export default {
792793
```ts
793794
// ~/plugins/JsonEditorVue.client.js
794795

795-
import Vue from 'vue'
796796
import VCA from '@vue/composition-api'
797797
import JsonEditorVue from 'json-editor-vue'
798+
import Vue from 'vue'
798799

799800
Vue.use(VCA)
800801
Vue.use(JsonEditorVue, {
@@ -905,7 +906,8 @@ module.exports = {
905906
// 让 webpack 识别 `.mjs` 文件
906907
config.module
907908
.rule('mjs')
908-
.include.add(/node_modules/)
909+
.include
910+
.add(/node_modules/)
909911
.type('javascript/auto')
910912
.end()
911913
},
@@ -1062,8 +1064,8 @@ onMounted(() => {
10621064

10631065
```vue
10641066
<script setup>
1065-
import 'vanilla-jsoneditor/themes/jse-theme-dark.css'
10661067
import JsonEditorVue from 'json-editor-vue'
1068+
import 'vanilla-jsoneditor/themes/jse-theme-dark.css'
10671069
</script>
10681070
10691071
<template>

licenses.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
├─ MIT: 90
2-
├─ Apache-2.0: 4
1+
├─ MIT: 87
2+
├─ Apache-2.0: 5
33
├─ BSD-2-Clause: 3
44
├─ BSD-3-Clause: 2
55
└─ ISC: 2

package.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,33 +77,34 @@
7777
"vue-demi": "^0.14.10"
7878
},
7979
"devDependencies": {
80-
"@antfu/eslint-config": "^2.26.0",
81-
"@commitlint/cli": "^19.4.0",
82-
"@commitlint/config-conventional": "^19.2.2",
80+
"@antfu/eslint-config": "^3.3.2",
81+
"@commitlint/cli": "^19.4.1",
82+
"@commitlint/config-conventional": "^19.4.1",
8383
"@types/cross-spawn": "^6.0.6",
8484
"@types/lodash-es": "^4.17.12",
85-
"@types/node": "^22.4.1",
85+
"@types/node": "^22.5.4",
8686
"@types/prompts": "^2.4.9",
8787
"@types/semver": "^7.5.8",
8888
"@vitejs/plugin-vue": "latest",
8989
"@vitest/ui": "^2.0.5",
9090
"@vue/compiler-sfc": "latest",
9191
"@vue/test-utils": "latest",
92-
"axios": "^1.7.4",
92+
"axios": "^1.7.7",
9393
"case-police": "^0.7.0",
9494
"cross-spawn": "^7.0.3",
9595
"del": "^7.1.0",
96+
"destr": "^2.0.3",
9697
"eslint-plugin-format": "^0.1.2",
9798
"esno": "^4.7.0",
98-
"happy-dom": "^14.12.3",
99+
"happy-dom": "^15.7.3",
99100
"json-editor-vue": "workspace:*",
100101
"kolorist": "^1.8.0",
101102
"license-checker": "^25.0.1",
102103
"license-scan": "^0.1.2",
103-
"lint-staged": "^15.2.9",
104+
"lint-staged": "^15.2.10",
104105
"lodash-es": "^4.17.21",
105106
"lossless-json": "^4.0.1",
106-
"magicast": "^0.3.4",
107+
"magicast": "^0.3.5",
107108
"only-allow": "^1.2.1",
108109
"open": "^10.1.0",
109110
"prompts": "^2.4.2",
@@ -113,13 +114,13 @@
113114
"typescript": "^5.5.4",
114115
"unplugin-auto-import": "^0.18.2",
115116
"unplugin-vue-components": "^0.27.4",
116-
"vite": "^5.4.1",
117-
"vite-plugin-dts": "4.0.3",
118-
"vitepress": "^1.3.3",
117+
"vite": "^5.4.3",
118+
"vite-plugin-dts": "4.1.0",
119+
"vitepress": "^1.3.4",
119120
"vitest": "^2.0.5",
120121
"vue": "latest",
121122
"vue-global-config": "^0.6.1",
122-
"zhlint": "^0.8.1"
123+
"zhlint": "^0.8.2"
123124
},
124125
"simple-git-hooks": {
125126
"pre-commit": "pnpm lint-staged",

0 commit comments

Comments
 (0)