File tree 1 file changed +13
-5
lines changed
1 file changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -44,18 +44,20 @@ console.log(destr('{ "deno": "yay" }'));
44
44
45
45
## Why?
46
46
47
- ### ✅Type Safe
47
+ ### ✅ Type Safe
48
48
49
- ``` js
50
- const obj = JSON .parse (" ... " ); // obj type is any
49
+ ``` ts
50
+ const obj = JSON .parse (" {} " ); // obj type is any
51
51
52
- const obj = destr (" ... " ); // obj type is unknown by default
52
+ const obj = destr (" {} " ); // obj type is unknown by default
53
53
54
- const obj = destr < MyInterface > " ... " ; // obj is well-typed
54
+ const obj = destr < MyInterface >( " {} " ) ; // obj is well-typed
55
55
```
56
56
57
57
### ✅ Fast fallback to input if is not string
58
58
59
+ > 🚀 Up to 500 faster than ` JSON.parse ` !
60
+
59
61
``` js
60
62
// Uncaught SyntaxError: Unexpected token u in JSON at position 0
61
63
JSON .parse ();
@@ -66,6 +68,8 @@ destr();
66
68
67
69
### ✅ Fast lookup for known string values
68
70
71
+ > 🚀 Up to 900 times faster than ` JSON.parse ` !
72
+
69
73
``` js
70
74
// Uncaught SyntaxError: Unexpected token T in JSON at position 0
71
75
JSON .parse (" TRUE" );
@@ -76,6 +80,8 @@ destr("TRUE");
76
80
77
81
### ✅ Fallback to original value if parse fails (empty or any plain string)
78
82
83
+ > 🚀 Up to 900 times faster than ` JSON.parse ` !
84
+
79
85
``` js
80
86
// Uncaught SyntaxError: Unexpected token s in JSON at position 0
81
87
JSON .parse (" salam" );
@@ -84,6 +90,8 @@ JSON.parse("salam");
84
90
destr (" salam" );
85
91
```
86
92
93
+ ** Note:** This fails in safe/strict mode with ` safeDestr ` .
94
+
87
95
### ✅ Avoid prototype pollution
88
96
89
97
``` js
You can’t perform that action at this time.
0 commit comments