react-hook-core 0.4.5 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/com.js +33 -11
- package/lib/core.js +103 -157
- package/lib/diff.js +28 -30
- package/lib/edit.js +54 -112
- package/lib/error.js +53 -0
- package/lib/formutil.js +58 -72
- package/lib/index.js +110 -95
- package/lib/input.js +31 -32
- package/lib/merge.js +26 -16
- package/lib/reflect.js +140 -147
- package/lib/route.js +45 -53
- package/lib/search.js +233 -475
- package/lib/state.js +159 -168
- package/lib/update.js +69 -64
- package/lib/useEdit.js +421 -348
- package/lib/useMessage.js +20 -20
- package/lib/useSearch.js +437 -246
- package/lib/useView.js +127 -120
- package/lib/util.js +74 -85
- package/package.json +1 -1
- package/src/com.ts +44 -30
- package/src/core.ts +147 -321
- package/src/diff.ts +54 -24
- package/src/edit.ts +42 -121
- package/src/error.ts +55 -0
- package/src/formutil.ts +51 -62
- package/src/index.ts +129 -114
- package/src/input.ts +44 -38
- package/src/merge.ts +16 -13
- package/src/reflect.ts +100 -101
- package/src/route.ts +40 -40
- package/src/search.ts +130 -316
- package/src/state.ts +135 -124
- package/src/update.ts +41 -41
- package/src/useEdit.ts +450 -319
- package/src/useMessage.ts +21 -21
- package/src/useSearch.ts +493 -277
- package/src/useView.ts +122 -97
- package/src/util.ts +67 -66
package/lib/reflect.js
CHANGED
|
@@ -1,294 +1,287 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
1
|
+
"use strict"
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
3
|
function clone(obj) {
|
|
4
4
|
if (!obj) {
|
|
5
|
-
return obj
|
|
5
|
+
return obj
|
|
6
6
|
}
|
|
7
7
|
if (obj instanceof Date) {
|
|
8
|
-
return new Date(obj.getTime())
|
|
8
|
+
return new Date(obj.getTime())
|
|
9
9
|
}
|
|
10
|
-
if (typeof obj !==
|
|
11
|
-
return obj
|
|
10
|
+
if (typeof obj !== "object") {
|
|
11
|
+
return obj
|
|
12
12
|
}
|
|
13
13
|
if (Array.isArray(obj)) {
|
|
14
|
-
var arr = []
|
|
14
|
+
var arr = []
|
|
15
15
|
for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
|
|
16
|
-
var sub = obj_1[_i]
|
|
17
|
-
var c = clone(sub)
|
|
18
|
-
arr.push(c)
|
|
16
|
+
var sub = obj_1[_i]
|
|
17
|
+
var c = clone(sub)
|
|
18
|
+
arr.push(c)
|
|
19
19
|
}
|
|
20
|
-
return arr
|
|
20
|
+
return arr
|
|
21
21
|
}
|
|
22
|
-
var x = {}
|
|
23
|
-
var keys = Object.keys(obj)
|
|
22
|
+
var x = {}
|
|
23
|
+
var keys = Object.keys(obj)
|
|
24
24
|
for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) {
|
|
25
|
-
var k = keys_1[_a]
|
|
26
|
-
var v = obj[k]
|
|
25
|
+
var k = keys_1[_a]
|
|
26
|
+
var v = obj[k]
|
|
27
27
|
if (v instanceof Date) {
|
|
28
|
-
x[k] = new Date(v.getTime())
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
28
|
+
x[k] = new Date(v.getTime())
|
|
29
|
+
} else {
|
|
31
30
|
switch (typeof v) {
|
|
32
|
-
case
|
|
33
|
-
x[k] = clone(v)
|
|
34
|
-
break
|
|
31
|
+
case "object":
|
|
32
|
+
x[k] = clone(v)
|
|
33
|
+
break
|
|
35
34
|
default:
|
|
36
|
-
x[k] = v
|
|
37
|
-
break
|
|
35
|
+
x[k] = v
|
|
36
|
+
break
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
|
-
return x
|
|
40
|
+
return x
|
|
42
41
|
}
|
|
43
|
-
exports.clone = clone
|
|
42
|
+
exports.clone = clone
|
|
44
43
|
function getDirectValue(obj, key) {
|
|
45
44
|
if (obj && obj.hasOwnProperty(key)) {
|
|
46
|
-
return obj[key]
|
|
45
|
+
return obj[key]
|
|
47
46
|
}
|
|
48
|
-
return null
|
|
47
|
+
return null
|
|
49
48
|
}
|
|
50
|
-
exports.getDirectValue = getDirectValue
|
|
49
|
+
exports.getDirectValue = getDirectValue
|
|
51
50
|
function setValue(obj, key, value) {
|
|
52
|
-
var replaceKey = key.replace(/\[/g,
|
|
53
|
-
if (replaceKey.indexOf(
|
|
54
|
-
replaceKey = replaceKey.slice(1, replaceKey.length)
|
|
51
|
+
var replaceKey = key.replace(/\[/g, ".[").replace(/\.\./g, ".")
|
|
52
|
+
if (replaceKey.indexOf(".") === 0) {
|
|
53
|
+
replaceKey = replaceKey.slice(1, replaceKey.length)
|
|
55
54
|
}
|
|
56
|
-
var keys = replaceKey.split(
|
|
57
|
-
var firstKey = keys.shift()
|
|
55
|
+
var keys = replaceKey.split(".")
|
|
56
|
+
var firstKey = keys.shift()
|
|
58
57
|
if (!firstKey) {
|
|
59
|
-
return
|
|
58
|
+
return
|
|
60
59
|
}
|
|
61
|
-
var isArrayKey = /\[([0-9]+)\]/.test(firstKey)
|
|
60
|
+
var isArrayKey = /\[([0-9]+)\]/.test(firstKey)
|
|
62
61
|
if (keys.length > 0) {
|
|
63
|
-
var firstKeyValue = obj[firstKey] || {}
|
|
64
|
-
var returnValue = setValue(firstKeyValue, keys.join(
|
|
65
|
-
return setKey(obj, isArrayKey, firstKey, returnValue)
|
|
62
|
+
var firstKeyValue = obj[firstKey] || {}
|
|
63
|
+
var returnValue = setValue(firstKeyValue, keys.join("."), value)
|
|
64
|
+
return setKey(obj, isArrayKey, firstKey, returnValue)
|
|
66
65
|
}
|
|
67
|
-
return setKey(obj, isArrayKey, firstKey, value)
|
|
66
|
+
return setKey(obj, isArrayKey, firstKey, value)
|
|
68
67
|
}
|
|
69
|
-
exports.setValue = setValue
|
|
68
|
+
exports.setValue = setValue
|
|
70
69
|
var setKey = function (_object, _isArrayKey, _key, _nextValue) {
|
|
71
70
|
if (_isArrayKey) {
|
|
72
71
|
if (_object.length > _key) {
|
|
73
|
-
_object[_key] = _nextValue
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
_object.push(_nextValue);
|
|
72
|
+
_object[_key] = _nextValue
|
|
73
|
+
} else {
|
|
74
|
+
_object.push(_nextValue)
|
|
77
75
|
}
|
|
76
|
+
} else {
|
|
77
|
+
_object[_key] = _nextValue
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
return _object;
|
|
83
|
-
};
|
|
79
|
+
return _object
|
|
80
|
+
}
|
|
84
81
|
function isEmptyObject(obj) {
|
|
85
82
|
for (var key in obj) {
|
|
86
83
|
if (obj.hasOwnProperty(key)) {
|
|
87
|
-
return false
|
|
84
|
+
return false
|
|
88
85
|
}
|
|
89
86
|
}
|
|
90
|
-
return true
|
|
87
|
+
return true
|
|
91
88
|
}
|
|
92
|
-
exports.isEmptyObject = isEmptyObject
|
|
93
|
-
;
|
|
89
|
+
exports.isEmptyObject = isEmptyObject
|
|
94
90
|
function diff(obj1, obj2) {
|
|
95
|
-
var fields = []
|
|
96
|
-
var key1s = Object.keys(obj1)
|
|
91
|
+
var fields = []
|
|
92
|
+
var key1s = Object.keys(obj1)
|
|
97
93
|
for (var _i = 0, key1s_1 = key1s; _i < key1s_1.length; _i++) {
|
|
98
|
-
var k = key1s_1[_i]
|
|
99
|
-
var v1 = obj1[k]
|
|
100
|
-
var v2 = obj2[k]
|
|
94
|
+
var k = key1s_1[_i]
|
|
95
|
+
var v1 = obj1[k]
|
|
96
|
+
var v2 = obj2[k]
|
|
101
97
|
if (v1 == null) {
|
|
102
98
|
if (v2 != null) {
|
|
103
|
-
fields.push(k)
|
|
99
|
+
fields.push(k)
|
|
104
100
|
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (typeof v1 !== 'object') {
|
|
101
|
+
} else {
|
|
102
|
+
if (typeof v1 !== "object") {
|
|
108
103
|
if (v1 !== v2) {
|
|
109
|
-
fields.push(k)
|
|
104
|
+
fields.push(k)
|
|
110
105
|
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
var e = equal(v1, v2);
|
|
106
|
+
} else {
|
|
107
|
+
var e = equal(v1, v2)
|
|
114
108
|
if (!e) {
|
|
115
|
-
fields.push(k)
|
|
109
|
+
fields.push(k)
|
|
116
110
|
}
|
|
117
111
|
}
|
|
118
112
|
}
|
|
119
113
|
}
|
|
120
|
-
var key2s = Object.keys(obj2)
|
|
121
|
-
var ni = notIn(key1s, key2s)
|
|
114
|
+
var key2s = Object.keys(obj2)
|
|
115
|
+
var ni = notIn(key1s, key2s)
|
|
122
116
|
for (var _a = 0, ni_1 = ni; _a < ni_1.length; _a++) {
|
|
123
|
-
var n = ni_1[_a]
|
|
124
|
-
fields.push(n)
|
|
117
|
+
var n = ni_1[_a]
|
|
118
|
+
fields.push(n)
|
|
125
119
|
}
|
|
126
|
-
return fields
|
|
120
|
+
return fields
|
|
127
121
|
}
|
|
128
|
-
exports.diff = diff
|
|
122
|
+
exports.diff = diff
|
|
129
123
|
function makeDiff(o1, o2, keys, version) {
|
|
130
|
-
var obj1 = o1
|
|
131
|
-
var obj2 = o2
|
|
132
|
-
var obj3 = {}
|
|
133
|
-
var s = diff(obj1, obj2)
|
|
124
|
+
var obj1 = o1
|
|
125
|
+
var obj2 = o2
|
|
126
|
+
var obj3 = {}
|
|
127
|
+
var s = diff(obj1, obj2)
|
|
134
128
|
if (s.length === 0) {
|
|
135
|
-
return obj3
|
|
129
|
+
return obj3
|
|
136
130
|
}
|
|
137
131
|
for (var _i = 0, s_1 = s; _i < s_1.length; _i++) {
|
|
138
|
-
var d = s_1[_i]
|
|
139
|
-
obj3[d] = obj2[d]
|
|
132
|
+
var d = s_1[_i]
|
|
133
|
+
obj3[d] = obj2[d]
|
|
140
134
|
}
|
|
141
135
|
if (keys && keys.length > 0) {
|
|
142
136
|
for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {
|
|
143
|
-
var x = keys_2[_a]
|
|
137
|
+
var x = keys_2[_a]
|
|
144
138
|
if (x.length > 0) {
|
|
145
|
-
obj3[x] = obj1[x]
|
|
139
|
+
obj3[x] = obj1[x]
|
|
146
140
|
}
|
|
147
141
|
}
|
|
148
142
|
}
|
|
149
143
|
if (version && version.length > 0) {
|
|
150
|
-
obj3[version] = obj1[version]
|
|
144
|
+
obj3[version] = obj1[version]
|
|
151
145
|
}
|
|
152
|
-
return obj3
|
|
146
|
+
return obj3
|
|
153
147
|
}
|
|
154
|
-
exports.makeDiff = makeDiff
|
|
148
|
+
exports.makeDiff = makeDiff
|
|
155
149
|
function hasDiff(o1, o2, keys, version) {
|
|
156
|
-
var diff = makeDiff(o1, o2, keys, version)
|
|
157
|
-
return !isEmptyObject(diff)
|
|
150
|
+
var diff = makeDiff(o1, o2, keys, version)
|
|
151
|
+
return !isEmptyObject(diff)
|
|
158
152
|
}
|
|
159
|
-
exports.hasDiff = hasDiff
|
|
153
|
+
exports.hasDiff = hasDiff
|
|
160
154
|
function goBack(navigate, confirm, resource, o1, o2, keys, version) {
|
|
161
155
|
if (!hasDiff(o1, o2, keys, version)) {
|
|
162
|
-
navigate(-1)
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
|
|
156
|
+
navigate(-1)
|
|
157
|
+
} else {
|
|
158
|
+
confirm(resource.msg_confirm_back, function () {
|
|
159
|
+
return navigate(-1)
|
|
160
|
+
})
|
|
166
161
|
}
|
|
167
162
|
}
|
|
168
|
-
exports.goBack = goBack
|
|
163
|
+
exports.goBack = goBack
|
|
169
164
|
function notIn(s1, s2) {
|
|
170
|
-
var r = []
|
|
165
|
+
var r = []
|
|
171
166
|
for (var _i = 0, s2_1 = s2; _i < s2_1.length; _i++) {
|
|
172
|
-
var s = s2_1[_i]
|
|
167
|
+
var s = s2_1[_i]
|
|
173
168
|
if (s1.indexOf(s) < 0) {
|
|
174
|
-
r.push(s)
|
|
169
|
+
r.push(s)
|
|
175
170
|
}
|
|
176
171
|
}
|
|
177
|
-
return r
|
|
172
|
+
return r
|
|
178
173
|
}
|
|
179
|
-
exports.notIn = notIn
|
|
174
|
+
exports.notIn = notIn
|
|
180
175
|
function equal(obj1, obj2) {
|
|
181
176
|
if (obj1 == null && obj2 == null) {
|
|
182
|
-
return true
|
|
177
|
+
return true
|
|
183
178
|
}
|
|
184
179
|
if (obj1 == null || obj2 == null) {
|
|
185
|
-
return false
|
|
180
|
+
return false
|
|
186
181
|
}
|
|
187
|
-
if (
|
|
188
|
-
return false
|
|
182
|
+
if (typeof obj1 !== typeof obj2) {
|
|
183
|
+
return false
|
|
189
184
|
}
|
|
190
|
-
if (typeof obj1 !==
|
|
191
|
-
return obj1 === obj2
|
|
185
|
+
if (typeof obj1 !== "object") {
|
|
186
|
+
return obj1 === obj2
|
|
192
187
|
}
|
|
193
188
|
if (obj1 instanceof Date) {
|
|
194
189
|
if (!(obj2 instanceof Date)) {
|
|
195
|
-
return false
|
|
190
|
+
return false
|
|
196
191
|
}
|
|
197
|
-
return
|
|
192
|
+
return obj1.getTime() === obj2.getTime()
|
|
198
193
|
}
|
|
199
|
-
if ((Array.isArray(obj1) && !Array.isArray(obj2))
|
|
200
|
-
|
|
201
|
-
return false;
|
|
194
|
+
if ((Array.isArray(obj1) && !Array.isArray(obj2)) || (!Array.isArray(obj1) && Array.isArray(obj2))) {
|
|
195
|
+
return false
|
|
202
196
|
}
|
|
203
197
|
if (!Array.isArray(obj1) && !Array.isArray(obj2)) {
|
|
204
|
-
var key1s = Object.keys(obj1)
|
|
205
|
-
var key2s = Object.keys(obj2)
|
|
198
|
+
var key1s = Object.keys(obj1)
|
|
199
|
+
var key2s = Object.keys(obj2)
|
|
206
200
|
if (key1s.length !== key2s.length) {
|
|
207
|
-
return false
|
|
201
|
+
return false
|
|
208
202
|
}
|
|
209
203
|
for (var _i = 0, key1s_2 = key1s; _i < key1s_2.length; _i++) {
|
|
210
|
-
var k = key1s_2[_i]
|
|
211
|
-
var v = obj1[k]
|
|
212
|
-
if (typeof v !==
|
|
204
|
+
var k = key1s_2[_i]
|
|
205
|
+
var v = obj1[k]
|
|
206
|
+
if (typeof v !== "object") {
|
|
213
207
|
if (v !== obj2[k]) {
|
|
214
|
-
return false
|
|
208
|
+
return false
|
|
215
209
|
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
var e = equal(v, obj2[k]);
|
|
210
|
+
} else {
|
|
211
|
+
var e = equal(v, obj2[k])
|
|
219
212
|
if (e === false) {
|
|
220
|
-
return false
|
|
213
|
+
return false
|
|
221
214
|
}
|
|
222
215
|
}
|
|
223
216
|
}
|
|
224
|
-
return true
|
|
217
|
+
return true
|
|
225
218
|
}
|
|
226
|
-
return equalArrays(obj1, obj2)
|
|
219
|
+
return equalArrays(obj1, obj2)
|
|
227
220
|
}
|
|
228
|
-
exports.equal = equal
|
|
221
|
+
exports.equal = equal
|
|
229
222
|
function equalArrays(ar1, ar2) {
|
|
230
223
|
if (ar1 == null && ar2 == null) {
|
|
231
|
-
return true
|
|
224
|
+
return true
|
|
232
225
|
}
|
|
233
226
|
if (ar1 == null || ar2 == null) {
|
|
234
|
-
return false
|
|
227
|
+
return false
|
|
235
228
|
}
|
|
236
229
|
if (ar1.length !== ar2.length) {
|
|
237
|
-
return false
|
|
230
|
+
return false
|
|
238
231
|
}
|
|
239
232
|
for (var i = 0; i < ar1.length; i++) {
|
|
240
|
-
var e = equal(ar1[i], ar2[i])
|
|
233
|
+
var e = equal(ar1[i], ar2[i])
|
|
241
234
|
if (e === false) {
|
|
242
|
-
return false
|
|
235
|
+
return false
|
|
243
236
|
}
|
|
244
237
|
}
|
|
245
|
-
return true
|
|
238
|
+
return true
|
|
246
239
|
}
|
|
247
|
-
exports.equalArrays = equalArrays
|
|
240
|
+
exports.equalArrays = equalArrays
|
|
248
241
|
function getArray(list, name, v) {
|
|
249
|
-
var arrs = []
|
|
242
|
+
var arrs = []
|
|
250
243
|
if (list) {
|
|
251
244
|
for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
|
|
252
|
-
var obj = list_1[_i]
|
|
245
|
+
var obj = list_1[_i]
|
|
253
246
|
if (obj[name] === v) {
|
|
254
|
-
arrs.push(obj)
|
|
247
|
+
arrs.push(obj)
|
|
255
248
|
}
|
|
256
249
|
}
|
|
257
250
|
}
|
|
258
|
-
return arrs
|
|
251
|
+
return arrs
|
|
259
252
|
}
|
|
260
|
-
exports.getArray = getArray
|
|
253
|
+
exports.getArray = getArray
|
|
261
254
|
function getDiffArray(list, name, v) {
|
|
262
|
-
var arrs = []
|
|
255
|
+
var arrs = []
|
|
263
256
|
if (list) {
|
|
264
257
|
for (var _i = 0, list_2 = list; _i < list_2.length; _i++) {
|
|
265
|
-
var obj = list_2[_i]
|
|
258
|
+
var obj = list_2[_i]
|
|
266
259
|
if (obj[name] !== true) {
|
|
267
|
-
arrs.push(obj)
|
|
260
|
+
arrs.push(obj)
|
|
268
261
|
}
|
|
269
262
|
}
|
|
270
263
|
}
|
|
271
|
-
return arrs
|
|
264
|
+
return arrs
|
|
272
265
|
}
|
|
273
|
-
exports.getDiffArray = getDiffArray
|
|
266
|
+
exports.getDiffArray = getDiffArray
|
|
274
267
|
function setAll(list, name, v) {
|
|
275
268
|
if (list) {
|
|
276
269
|
for (var _i = 0, list_3 = list; _i < list_3.length; _i++) {
|
|
277
|
-
var obj = list_3[_i]
|
|
278
|
-
obj[name] = v
|
|
270
|
+
var obj = list_3[_i]
|
|
271
|
+
obj[name] = v
|
|
279
272
|
}
|
|
280
273
|
}
|
|
281
274
|
}
|
|
282
|
-
exports.setAll = setAll
|
|
275
|
+
exports.setAll = setAll
|
|
283
276
|
function equalAll(list, name, v) {
|
|
284
277
|
if (list) {
|
|
285
278
|
for (var _i = 0, list_4 = list; _i < list_4.length; _i++) {
|
|
286
|
-
var obj = list_4[_i]
|
|
279
|
+
var obj = list_4[_i]
|
|
287
280
|
if (obj[name] !== v) {
|
|
288
|
-
return false
|
|
281
|
+
return false
|
|
289
282
|
}
|
|
290
283
|
}
|
|
291
284
|
}
|
|
292
|
-
return true
|
|
285
|
+
return true
|
|
293
286
|
}
|
|
294
|
-
exports.equalAll = equalAll
|
|
287
|
+
exports.equalAll = equalAll
|
package/lib/route.js
CHANGED
|
@@ -1,93 +1,85 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
-
var qs = require("query-string")
|
|
1
|
+
"use strict"
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
+
var qs = require("query-string")
|
|
4
4
|
function buildFromUrl(modelT) {
|
|
5
|
-
return buildParameters(window.location.search, modelT)
|
|
5
|
+
return buildParameters(window.location.search, modelT)
|
|
6
6
|
}
|
|
7
|
-
exports.buildFromUrl = buildFromUrl
|
|
7
|
+
exports.buildFromUrl = buildFromUrl
|
|
8
8
|
function buildParameters(url, model) {
|
|
9
|
-
var urlSearch = url
|
|
10
|
-
var i = urlSearch.indexOf("?")
|
|
9
|
+
var urlSearch = url
|
|
10
|
+
var i = urlSearch.indexOf("?")
|
|
11
11
|
if (i >= 0) {
|
|
12
|
-
urlSearch = url.substring(i + 1)
|
|
12
|
+
urlSearch = url.substring(i + 1)
|
|
13
13
|
}
|
|
14
14
|
try {
|
|
15
|
-
var parsed = convertToObject(qs.parse(urlSearch), model)
|
|
16
|
-
return parsed
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
throw error;
|
|
15
|
+
var parsed = convertToObject(qs.parse(urlSearch), model)
|
|
16
|
+
return parsed
|
|
17
|
+
} catch (error) {
|
|
18
|
+
console.log(error)
|
|
19
|
+
throw error
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
|
-
exports.buildParameters = buildParameters
|
|
22
|
+
exports.buildParameters = buildParameters
|
|
24
23
|
function convertToObject(input, model) {
|
|
25
24
|
if (model) {
|
|
26
|
-
return parseToModel(input, model)
|
|
25
|
+
return parseToModel(input, model)
|
|
27
26
|
}
|
|
28
|
-
var output = {}
|
|
27
|
+
var output = {}
|
|
29
28
|
for (var key in input) {
|
|
30
|
-
var value = input[key]
|
|
31
|
-
var keys = key.split(".")
|
|
32
|
-
var currentObj = output
|
|
29
|
+
var value = input[key]
|
|
30
|
+
var keys = key.split(".")
|
|
31
|
+
var currentObj = output
|
|
33
32
|
for (var i = 0; i < keys.length; i++) {
|
|
34
|
-
var currentKey = keys[i]
|
|
33
|
+
var currentKey = keys[i]
|
|
35
34
|
if (!currentObj[currentKey]) {
|
|
36
35
|
if (i === keys.length - 1) {
|
|
37
|
-
currentObj[currentKey] = parseValue(value)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
currentObj[currentKey] = {};
|
|
36
|
+
currentObj[currentKey] = parseValue(value)
|
|
37
|
+
} else {
|
|
38
|
+
currentObj[currentKey] = {}
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
|
-
currentObj = currentObj[currentKey]
|
|
41
|
+
currentObj = currentObj[currentKey]
|
|
44
42
|
}
|
|
45
43
|
}
|
|
46
|
-
return output
|
|
44
|
+
return output
|
|
47
45
|
}
|
|
48
|
-
exports.convertToObject = convertToObject
|
|
46
|
+
exports.convertToObject = convertToObject
|
|
49
47
|
function parseToModel(dest, src) {
|
|
50
|
-
if (typeof dest !==
|
|
51
|
-
return dest
|
|
48
|
+
if (typeof dest !== "object" || typeof src !== "object") {
|
|
49
|
+
return dest
|
|
52
50
|
}
|
|
53
51
|
for (var key in src) {
|
|
54
|
-
if (!Object.hasOwn(dest, key))
|
|
55
|
-
continue;
|
|
52
|
+
if (!Object.hasOwn(dest, key)) continue
|
|
56
53
|
if (src.hasOwnProperty(key)) {
|
|
57
54
|
if (src[key] && src[key].constructor === Object) {
|
|
58
55
|
if (!dest[key] || dest[key].constructor !== Object) {
|
|
59
|
-
dest[key] = {}
|
|
56
|
+
dest[key] = {}
|
|
60
57
|
}
|
|
61
|
-
parseToModel(dest[key], src[key])
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
else if (typeof src[key] === 'boolean') {
|
|
58
|
+
parseToModel(dest[key], src[key])
|
|
59
|
+
} else if (src[key] instanceof Date) {
|
|
60
|
+
dest[key] = new Date(dest[key])
|
|
61
|
+
} else if (typeof src[key] === "boolean") {
|
|
67
62
|
if (dest[key].length > 0) {
|
|
68
|
-
dest[key] = new Boolean(dest[key])
|
|
63
|
+
dest[key] = new Boolean(dest[key])
|
|
69
64
|
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
else {
|
|
76
|
-
dest[key] = parseInt(dest[key], 10);
|
|
65
|
+
} else if (typeof src[key] === "number") {
|
|
66
|
+
if (typeof dest[key] === "string" && dest[key].indexOf(".") !== -1) {
|
|
67
|
+
dest[key] = parseFloat(dest[key])
|
|
68
|
+
} else {
|
|
69
|
+
dest[key] = parseInt(dest[key], 10)
|
|
77
70
|
}
|
|
78
|
-
}
|
|
79
|
-
else if (typeof src[key] === 'string') {
|
|
71
|
+
} else if (typeof src[key] === "string") {
|
|
80
72
|
if (dest[key]) {
|
|
81
|
-
dest[key] = dest[key].toString()
|
|
73
|
+
dest[key] = dest[key].toString()
|
|
82
74
|
}
|
|
83
75
|
}
|
|
84
76
|
}
|
|
85
77
|
}
|
|
86
|
-
return dest
|
|
78
|
+
return dest
|
|
87
79
|
}
|
|
88
80
|
function parseValue(value) {
|
|
89
81
|
if (!isNaN(value) && !isNaN(parseFloat(value))) {
|
|
90
|
-
return parseFloat(value)
|
|
82
|
+
return parseFloat(value)
|
|
91
83
|
}
|
|
92
|
-
return value
|
|
84
|
+
return value
|
|
93
85
|
}
|