w-orm-lowdb 1.0.5 → 1.0.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/README.md +5 -0
- package/babel.config.js +4 -3
- package/dist/w-orm-lowdb.umd.js +2 -2
- package/dist/w-orm-lowdb.umd.js.map +1 -1
- package/docs/WOrmLowdb.html +6 -6
- package/docs/WOrmLowdb.mjs.html +129 -33
- package/docs/index.html +1 -1
- package/package.json +5 -5
- package/script.txt +0 -1
- package/src/WOrmLowdb.mjs +128 -32
- package/test/basic.test.mjs +69 -5
package/docs/WOrmLowdb.html
CHANGED
|
@@ -429,7 +429,7 @@
|
|
|
429
429
|
|
|
430
430
|
<dt class="tag-source">Source:</dt>
|
|
431
431
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
432
|
-
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#
|
|
432
|
+
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#line623">line 623</a>
|
|
433
433
|
</li></ul></dd>
|
|
434
434
|
|
|
435
435
|
|
|
@@ -607,7 +607,7 @@
|
|
|
607
607
|
|
|
608
608
|
<dt class="tag-source">Source:</dt>
|
|
609
609
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
610
|
-
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#
|
|
610
|
+
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#line470">line 470</a>
|
|
611
611
|
</li></ul></dd>
|
|
612
612
|
|
|
613
613
|
|
|
@@ -768,7 +768,7 @@
|
|
|
768
768
|
|
|
769
769
|
<dt class="tag-source">Source:</dt>
|
|
770
770
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
771
|
-
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#
|
|
771
|
+
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#line173">line 173</a>
|
|
772
772
|
</li></ul></dd>
|
|
773
773
|
|
|
774
774
|
|
|
@@ -929,7 +929,7 @@
|
|
|
929
929
|
|
|
930
930
|
<dt class="tag-source">Source:</dt>
|
|
931
931
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
932
|
-
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#
|
|
932
|
+
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#line302">line 302</a>
|
|
933
933
|
</li></ul></dd>
|
|
934
934
|
|
|
935
935
|
|
|
@@ -1216,7 +1216,7 @@
|
|
|
1216
1216
|
|
|
1217
1217
|
<dt class="tag-source">Source:</dt>
|
|
1218
1218
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
1219
|
-
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#
|
|
1219
|
+
<a href="WOrmLowdb.mjs.html">WOrmLowdb.mjs</a>, <a href="WOrmLowdb.mjs.html#line116">line 116</a>
|
|
1220
1220
|
</li></ul></dd>
|
|
1221
1221
|
|
|
1222
1222
|
|
|
@@ -1393,7 +1393,7 @@
|
|
|
1393
1393
|
<br class="clear">
|
|
1394
1394
|
|
|
1395
1395
|
<footer>
|
|
1396
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.
|
|
1396
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Thu May 14 2026 18:57:20 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
1397
1397
|
</footer>
|
|
1398
1398
|
|
|
1399
1399
|
<script>prettyPrint();</script>
|
package/docs/WOrmLowdb.mjs.html
CHANGED
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
import events from 'events'
|
|
50
50
|
import { Low } from 'lowdb'
|
|
51
51
|
import { JSONFile } from 'lowdb/node'
|
|
52
|
-
import { Query } from 'mingo'
|
|
52
|
+
import { Query } from 'mingo'
|
|
53
53
|
import get from 'lodash-es/get.js'
|
|
54
54
|
import each from 'lodash-es/each.js'
|
|
55
55
|
import map from 'lodash-es/map.js'
|
|
@@ -84,6 +84,9 @@ let kpGlock = {}
|
|
|
84
84
|
*/
|
|
85
85
|
function WOrmLowdb(opt = {}) {
|
|
86
86
|
|
|
87
|
+
//_cache
|
|
88
|
+
let _cache = null
|
|
89
|
+
|
|
87
90
|
//url
|
|
88
91
|
let url = get(opt, 'url')
|
|
89
92
|
if (!isestr(url)) {
|
|
@@ -128,6 +131,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
128
131
|
kpGlock[gkey] = false
|
|
129
132
|
}
|
|
130
133
|
|
|
134
|
+
//getData
|
|
135
|
+
let getData = async() => {
|
|
136
|
+
|
|
137
|
+
//check
|
|
138
|
+
if (isarr(_cache)) {
|
|
139
|
+
return cloneDeep(_cache) //與外部使用數據脫勾
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
//read
|
|
143
|
+
await lowdb.read()
|
|
144
|
+
|
|
145
|
+
//default, 使用lowdb.read()初始化後須馬上檢測, 若無key則須先創建空陣列
|
|
146
|
+
if (!haskey(lowdb.data, key)) {
|
|
147
|
+
lowdb.data[key] = []
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
//update
|
|
151
|
+
_cache = lowdb.data[key]
|
|
152
|
+
|
|
153
|
+
return cloneDeep(_cache) //與外部使用數據脫勾
|
|
154
|
+
}
|
|
155
|
+
|
|
131
156
|
/**
|
|
132
157
|
* 查詢數據
|
|
133
158
|
*
|
|
@@ -142,13 +167,8 @@ function WOrmLowdb(opt = {}) {
|
|
|
142
167
|
let res = null
|
|
143
168
|
try {
|
|
144
169
|
|
|
145
|
-
//
|
|
146
|
-
await
|
|
147
|
-
|
|
148
|
-
//default, 使用lowdb.read()初始化後須馬上檢測, 若無key則須先創建空陣列
|
|
149
|
-
if (!haskey(lowdb.data, key)) {
|
|
150
|
-
lowdb.data[key] = []
|
|
151
|
-
}
|
|
170
|
+
//ltdt
|
|
171
|
+
let ltdt = await getData()
|
|
152
172
|
|
|
153
173
|
//filter
|
|
154
174
|
if (iseobj(find)) {
|
|
@@ -158,12 +178,12 @@ function WOrmLowdb(opt = {}) {
|
|
|
158
178
|
// console.log('q', q)
|
|
159
179
|
|
|
160
180
|
//find
|
|
161
|
-
res = q.find(
|
|
181
|
+
res = q.find(ltdt).all()
|
|
162
182
|
// console.log('res', res)
|
|
163
183
|
|
|
164
184
|
}
|
|
165
185
|
else {
|
|
166
|
-
res =
|
|
186
|
+
res = ltdt
|
|
167
187
|
}
|
|
168
188
|
|
|
169
189
|
}
|
|
@@ -202,7 +222,11 @@ function WOrmLowdb(opt = {}) {
|
|
|
202
222
|
|
|
203
223
|
//check
|
|
204
224
|
if (!iseobj(data) && !isearr(data)) {
|
|
205
|
-
return
|
|
225
|
+
return {
|
|
226
|
+
n: 0,
|
|
227
|
+
nInserted: 0,
|
|
228
|
+
ok: 1,
|
|
229
|
+
}
|
|
206
230
|
}
|
|
207
231
|
|
|
208
232
|
//cloneDeep, 與外部數據脫勾
|
|
@@ -273,15 +297,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
273
297
|
ok: 1,
|
|
274
298
|
}
|
|
275
299
|
|
|
276
|
-
//emit
|
|
277
|
-
ee.emit('change', 'insert', data, res)
|
|
278
|
-
|
|
279
300
|
}
|
|
280
301
|
catch (err) {
|
|
281
302
|
isErr = true
|
|
282
303
|
res = err
|
|
283
304
|
}
|
|
284
305
|
|
|
306
|
+
//update, 不能保證插入多少, 一律重設快取
|
|
307
|
+
_cache = null
|
|
308
|
+
|
|
309
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
310
|
+
if (!isErr) {
|
|
311
|
+
try {
|
|
312
|
+
|
|
313
|
+
//emit
|
|
314
|
+
ee.emit('change', 'insert', data, res)
|
|
315
|
+
|
|
316
|
+
}
|
|
317
|
+
catch (err) {
|
|
318
|
+
console.log(err)
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
285
322
|
if (isErr) {
|
|
286
323
|
return Promise.reject(res)
|
|
287
324
|
}
|
|
@@ -314,7 +351,7 @@ function WOrmLowdb(opt = {}) {
|
|
|
314
351
|
|
|
315
352
|
//check
|
|
316
353
|
if (!iseobj(data) && !isearr(data)) {
|
|
317
|
-
return
|
|
354
|
+
return []
|
|
318
355
|
}
|
|
319
356
|
|
|
320
357
|
//cloneDeep, 與外部數據脫勾
|
|
@@ -397,28 +434,61 @@ function WOrmLowdb(opt = {}) {
|
|
|
397
434
|
}
|
|
398
435
|
}
|
|
399
436
|
|
|
400
|
-
//autoInsert
|
|
401
|
-
if (autoInsert && rest.n === 0) {
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
437
|
+
//autoInsert
|
|
438
|
+
if (autoInsert && rest.n === 0) {
|
|
439
|
+
if (!haskey(kp, v.id)) {
|
|
440
|
+
let k = size(lowdb.data[key])
|
|
441
|
+
lowdb.data[key].push(v)
|
|
442
|
+
kp[v.id] = {
|
|
443
|
+
k,
|
|
444
|
+
v: lowdb.data[key][k],
|
|
445
|
+
}
|
|
446
|
+
b = true
|
|
447
|
+
rest = {
|
|
448
|
+
n: 1,
|
|
449
|
+
nInserted: 1,
|
|
450
|
+
ok: 1,
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
rest = {
|
|
455
|
+
n: 1,
|
|
456
|
+
nInserted: 0,
|
|
457
|
+
ok: 1,
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
return rest
|
|
463
|
+
})
|
|
407
464
|
|
|
408
465
|
//write
|
|
409
466
|
if (b) {
|
|
410
467
|
await lowdb.write()
|
|
411
468
|
}
|
|
412
469
|
|
|
413
|
-
//emit
|
|
414
|
-
ee.emit('change', 'save', data, res)
|
|
415
|
-
|
|
416
470
|
}
|
|
417
471
|
catch (err) {
|
|
418
472
|
isErr = true
|
|
419
473
|
res = err
|
|
420
474
|
}
|
|
421
475
|
|
|
476
|
+
//update, 不能保證變更多少, 一律重設快取
|
|
477
|
+
_cache = null
|
|
478
|
+
|
|
479
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
480
|
+
if (!isErr) {
|
|
481
|
+
try {
|
|
482
|
+
|
|
483
|
+
//emit
|
|
484
|
+
ee.emit('change', 'save', data, res)
|
|
485
|
+
|
|
486
|
+
}
|
|
487
|
+
catch (err) {
|
|
488
|
+
console.log(err)
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
422
492
|
if (isErr) {
|
|
423
493
|
return Promise.reject(res)
|
|
424
494
|
}
|
|
@@ -449,7 +519,7 @@ function WOrmLowdb(opt = {}) {
|
|
|
449
519
|
|
|
450
520
|
//check
|
|
451
521
|
if (!iseobj(data) && !isearr(data)) {
|
|
452
|
-
return
|
|
522
|
+
return []
|
|
453
523
|
}
|
|
454
524
|
|
|
455
525
|
//cloneDeep, 與外部數據脫勾
|
|
@@ -550,15 +620,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
550
620
|
await lowdb.write()
|
|
551
621
|
}
|
|
552
622
|
|
|
553
|
-
//emit
|
|
554
|
-
ee.emit('change', 'del', data, res)
|
|
555
|
-
|
|
556
623
|
}
|
|
557
624
|
catch (err) {
|
|
558
625
|
isErr = true
|
|
559
626
|
res = err
|
|
560
627
|
}
|
|
561
628
|
|
|
629
|
+
//update, 不能保證刪除多少, 一律重設快取
|
|
630
|
+
_cache = null
|
|
631
|
+
|
|
632
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
633
|
+
if (!isErr) {
|
|
634
|
+
try {
|
|
635
|
+
|
|
636
|
+
//emit
|
|
637
|
+
ee.emit('change', 'del', data, res)
|
|
638
|
+
|
|
639
|
+
}
|
|
640
|
+
catch (err) {
|
|
641
|
+
console.log(err)
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
|
|
562
645
|
if (isErr) {
|
|
563
646
|
return Promise.reject(res)
|
|
564
647
|
}
|
|
@@ -675,15 +758,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
675
758
|
ok: 1,
|
|
676
759
|
}
|
|
677
760
|
|
|
678
|
-
//emit
|
|
679
|
-
ee.emit('change', 'delAll', null, res)
|
|
680
|
-
|
|
681
761
|
}
|
|
682
762
|
catch (err) {
|
|
683
763
|
isErr = true
|
|
684
764
|
res = err
|
|
685
765
|
}
|
|
686
766
|
|
|
767
|
+
//update, 不能保證刪除多少, 一律重設快取
|
|
768
|
+
_cache = null
|
|
769
|
+
|
|
770
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
771
|
+
if (!isErr) {
|
|
772
|
+
try {
|
|
773
|
+
|
|
774
|
+
//emit
|
|
775
|
+
ee.emit('change', 'delAll', null, res)
|
|
776
|
+
|
|
777
|
+
}
|
|
778
|
+
catch (err) {
|
|
779
|
+
console.log(err)
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
|
|
687
783
|
if (isErr) {
|
|
688
784
|
return Promise.reject(res)
|
|
689
785
|
}
|
|
@@ -728,7 +824,7 @@ export default WOrmLowdb
|
|
|
728
824
|
<br class="clear">
|
|
729
825
|
|
|
730
826
|
<footer>
|
|
731
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.
|
|
827
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Thu May 14 2026 18:57:20 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
732
828
|
</footer>
|
|
733
829
|
|
|
734
830
|
<script>prettyPrint();</script>
|
package/docs/index.html
CHANGED
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<br class="clear">
|
|
72
72
|
|
|
73
73
|
<footer>
|
|
74
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.
|
|
74
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Thu May 14 2026 18:57:20 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
75
75
|
</footer>
|
|
76
76
|
|
|
77
77
|
<script>prettyPrint();</script>
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "w-orm-lowdb",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"main": "dist/w-orm-lowdb.umd.js",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"lodash-es": "^4.
|
|
6
|
+
"lodash-es": "^4.18.1",
|
|
7
7
|
"lowdb": "^7.0.1",
|
|
8
|
-
"mingo": "^
|
|
9
|
-
"wsemi": "^1.
|
|
8
|
+
"mingo": "^7.2.1",
|
|
9
|
+
"wsemi": "^1.8.52"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"w-package-tools": "^1.
|
|
12
|
+
"w-package-tools": "^1.1.5"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
15
|
"test": "mocha --parallel --timeout 60000",
|
package/script.txt
CHANGED
package/src/WOrmLowdb.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import path from 'path'
|
|
|
2
2
|
import events from 'events'
|
|
3
3
|
import { Low } from 'lowdb'
|
|
4
4
|
import { JSONFile } from 'lowdb/node'
|
|
5
|
-
import { Query } from 'mingo'
|
|
5
|
+
import { Query } from 'mingo'
|
|
6
6
|
import get from 'lodash-es/get.js'
|
|
7
7
|
import each from 'lodash-es/each.js'
|
|
8
8
|
import map from 'lodash-es/map.js'
|
|
@@ -37,6 +37,9 @@ let kpGlock = {}
|
|
|
37
37
|
*/
|
|
38
38
|
function WOrmLowdb(opt = {}) {
|
|
39
39
|
|
|
40
|
+
//_cache
|
|
41
|
+
let _cache = null
|
|
42
|
+
|
|
40
43
|
//url
|
|
41
44
|
let url = get(opt, 'url')
|
|
42
45
|
if (!isestr(url)) {
|
|
@@ -81,6 +84,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
81
84
|
kpGlock[gkey] = false
|
|
82
85
|
}
|
|
83
86
|
|
|
87
|
+
//getData
|
|
88
|
+
let getData = async() => {
|
|
89
|
+
|
|
90
|
+
//check
|
|
91
|
+
if (isarr(_cache)) {
|
|
92
|
+
return cloneDeep(_cache) //與外部使用數據脫勾
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
//read
|
|
96
|
+
await lowdb.read()
|
|
97
|
+
|
|
98
|
+
//default, 使用lowdb.read()初始化後須馬上檢測, 若無key則須先創建空陣列
|
|
99
|
+
if (!haskey(lowdb.data, key)) {
|
|
100
|
+
lowdb.data[key] = []
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//update
|
|
104
|
+
_cache = lowdb.data[key]
|
|
105
|
+
|
|
106
|
+
return cloneDeep(_cache) //與外部使用數據脫勾
|
|
107
|
+
}
|
|
108
|
+
|
|
84
109
|
/**
|
|
85
110
|
* 查詢數據
|
|
86
111
|
*
|
|
@@ -95,13 +120,8 @@ function WOrmLowdb(opt = {}) {
|
|
|
95
120
|
let res = null
|
|
96
121
|
try {
|
|
97
122
|
|
|
98
|
-
//
|
|
99
|
-
await
|
|
100
|
-
|
|
101
|
-
//default, 使用lowdb.read()初始化後須馬上檢測, 若無key則須先創建空陣列
|
|
102
|
-
if (!haskey(lowdb.data, key)) {
|
|
103
|
-
lowdb.data[key] = []
|
|
104
|
-
}
|
|
123
|
+
//ltdt
|
|
124
|
+
let ltdt = await getData()
|
|
105
125
|
|
|
106
126
|
//filter
|
|
107
127
|
if (iseobj(find)) {
|
|
@@ -111,12 +131,12 @@ function WOrmLowdb(opt = {}) {
|
|
|
111
131
|
// console.log('q', q)
|
|
112
132
|
|
|
113
133
|
//find
|
|
114
|
-
res = q.find(
|
|
134
|
+
res = q.find(ltdt).all()
|
|
115
135
|
// console.log('res', res)
|
|
116
136
|
|
|
117
137
|
}
|
|
118
138
|
else {
|
|
119
|
-
res =
|
|
139
|
+
res = ltdt
|
|
120
140
|
}
|
|
121
141
|
|
|
122
142
|
}
|
|
@@ -155,7 +175,11 @@ function WOrmLowdb(opt = {}) {
|
|
|
155
175
|
|
|
156
176
|
//check
|
|
157
177
|
if (!iseobj(data) && !isearr(data)) {
|
|
158
|
-
return
|
|
178
|
+
return {
|
|
179
|
+
n: 0,
|
|
180
|
+
nInserted: 0,
|
|
181
|
+
ok: 1,
|
|
182
|
+
}
|
|
159
183
|
}
|
|
160
184
|
|
|
161
185
|
//cloneDeep, 與外部數據脫勾
|
|
@@ -226,15 +250,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
226
250
|
ok: 1,
|
|
227
251
|
}
|
|
228
252
|
|
|
229
|
-
//emit
|
|
230
|
-
ee.emit('change', 'insert', data, res)
|
|
231
|
-
|
|
232
253
|
}
|
|
233
254
|
catch (err) {
|
|
234
255
|
isErr = true
|
|
235
256
|
res = err
|
|
236
257
|
}
|
|
237
258
|
|
|
259
|
+
//update, 不能保證插入多少, 一律重設快取
|
|
260
|
+
_cache = null
|
|
261
|
+
|
|
262
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
263
|
+
if (!isErr) {
|
|
264
|
+
try {
|
|
265
|
+
|
|
266
|
+
//emit
|
|
267
|
+
ee.emit('change', 'insert', data, res)
|
|
268
|
+
|
|
269
|
+
}
|
|
270
|
+
catch (err) {
|
|
271
|
+
console.log(err)
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
238
275
|
if (isErr) {
|
|
239
276
|
return Promise.reject(res)
|
|
240
277
|
}
|
|
@@ -267,7 +304,7 @@ function WOrmLowdb(opt = {}) {
|
|
|
267
304
|
|
|
268
305
|
//check
|
|
269
306
|
if (!iseobj(data) && !isearr(data)) {
|
|
270
|
-
return
|
|
307
|
+
return []
|
|
271
308
|
}
|
|
272
309
|
|
|
273
310
|
//cloneDeep, 與外部數據脫勾
|
|
@@ -350,28 +387,61 @@ function WOrmLowdb(opt = {}) {
|
|
|
350
387
|
}
|
|
351
388
|
}
|
|
352
389
|
|
|
353
|
-
//autoInsert
|
|
354
|
-
if (autoInsert && rest.n === 0) {
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
390
|
+
//autoInsert
|
|
391
|
+
if (autoInsert && rest.n === 0) {
|
|
392
|
+
if (!haskey(kp, v.id)) {
|
|
393
|
+
let k = size(lowdb.data[key])
|
|
394
|
+
lowdb.data[key].push(v)
|
|
395
|
+
kp[v.id] = {
|
|
396
|
+
k,
|
|
397
|
+
v: lowdb.data[key][k],
|
|
398
|
+
}
|
|
399
|
+
b = true
|
|
400
|
+
rest = {
|
|
401
|
+
n: 1,
|
|
402
|
+
nInserted: 1,
|
|
403
|
+
ok: 1,
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
rest = {
|
|
408
|
+
n: 1,
|
|
409
|
+
nInserted: 0,
|
|
410
|
+
ok: 1,
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
return rest
|
|
416
|
+
})
|
|
360
417
|
|
|
361
418
|
//write
|
|
362
419
|
if (b) {
|
|
363
420
|
await lowdb.write()
|
|
364
421
|
}
|
|
365
422
|
|
|
366
|
-
//emit
|
|
367
|
-
ee.emit('change', 'save', data, res)
|
|
368
|
-
|
|
369
423
|
}
|
|
370
424
|
catch (err) {
|
|
371
425
|
isErr = true
|
|
372
426
|
res = err
|
|
373
427
|
}
|
|
374
428
|
|
|
429
|
+
//update, 不能保證變更多少, 一律重設快取
|
|
430
|
+
_cache = null
|
|
431
|
+
|
|
432
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
433
|
+
if (!isErr) {
|
|
434
|
+
try {
|
|
435
|
+
|
|
436
|
+
//emit
|
|
437
|
+
ee.emit('change', 'save', data, res)
|
|
438
|
+
|
|
439
|
+
}
|
|
440
|
+
catch (err) {
|
|
441
|
+
console.log(err)
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
|
|
375
445
|
if (isErr) {
|
|
376
446
|
return Promise.reject(res)
|
|
377
447
|
}
|
|
@@ -402,7 +472,7 @@ function WOrmLowdb(opt = {}) {
|
|
|
402
472
|
|
|
403
473
|
//check
|
|
404
474
|
if (!iseobj(data) && !isearr(data)) {
|
|
405
|
-
return
|
|
475
|
+
return []
|
|
406
476
|
}
|
|
407
477
|
|
|
408
478
|
//cloneDeep, 與外部數據脫勾
|
|
@@ -503,15 +573,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
503
573
|
await lowdb.write()
|
|
504
574
|
}
|
|
505
575
|
|
|
506
|
-
//emit
|
|
507
|
-
ee.emit('change', 'del', data, res)
|
|
508
|
-
|
|
509
576
|
}
|
|
510
577
|
catch (err) {
|
|
511
578
|
isErr = true
|
|
512
579
|
res = err
|
|
513
580
|
}
|
|
514
581
|
|
|
582
|
+
//update, 不能保證刪除多少, 一律重設快取
|
|
583
|
+
_cache = null
|
|
584
|
+
|
|
585
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
586
|
+
if (!isErr) {
|
|
587
|
+
try {
|
|
588
|
+
|
|
589
|
+
//emit
|
|
590
|
+
ee.emit('change', 'del', data, res)
|
|
591
|
+
|
|
592
|
+
}
|
|
593
|
+
catch (err) {
|
|
594
|
+
console.log(err)
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
|
|
515
598
|
if (isErr) {
|
|
516
599
|
return Promise.reject(res)
|
|
517
600
|
}
|
|
@@ -628,15 +711,28 @@ function WOrmLowdb(opt = {}) {
|
|
|
628
711
|
ok: 1,
|
|
629
712
|
}
|
|
630
713
|
|
|
631
|
-
//emit
|
|
632
|
-
ee.emit('change', 'delAll', null, res)
|
|
633
|
-
|
|
634
714
|
}
|
|
635
715
|
catch (err) {
|
|
636
716
|
isErr = true
|
|
637
717
|
res = err
|
|
638
718
|
}
|
|
639
719
|
|
|
720
|
+
//update, 不能保證刪除多少, 一律重設快取
|
|
721
|
+
_cache = null
|
|
722
|
+
|
|
723
|
+
//emit, 於change可能須使用select, 故須放在重設快取之後
|
|
724
|
+
if (!isErr) {
|
|
725
|
+
try {
|
|
726
|
+
|
|
727
|
+
//emit
|
|
728
|
+
ee.emit('change', 'delAll', null, res)
|
|
729
|
+
|
|
730
|
+
}
|
|
731
|
+
catch (err) {
|
|
732
|
+
console.log(err)
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
|
|
640
736
|
if (isErr) {
|
|
641
737
|
return Promise.reject(res)
|
|
642
738
|
}
|