w-orm-reladb 1.1.7 → 1.1.9
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 +3 -1
- package/dist/w-orm-reladb.umd.js +2 -2
- package/dist/w-orm-reladb.umd.js.map +1 -1
- package/docs/WOrmReladb.html +14 -14
- package/docs/WOrmReladb.mjs.html +61 -24
- package/docs/cvFind.mjs.html +277 -32
- package/docs/global.html +41 -7
- package/docs/importModels.mjs.html +1 -1
- package/docs/index.html +1 -1
- package/package.json +1 -1
- package/src/WOrmReladb.mjs +60 -23
- package/src/cvFind.mjs +276 -31
- package/src/requireModel.js +13 -5
- package/test/api-dist.test.mjs +112 -0
- package/test/api-init.test.mjs +50 -0
- package/test/api-models.test.mjs +23 -0
- package/test/api-suite.mjs +525 -0
- package/test/unit-cvfind.test.mjs +806 -5
- package/toolg/gDistRollup.mjs +2 -0
package/docs/WOrmReladb.html
CHANGED
|
@@ -750,7 +750,7 @@
|
|
|
750
750
|
|
|
751
751
|
<dt class="tag-source">Source:</dt>
|
|
752
752
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
753
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
753
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line525">line 525</a>
|
|
754
754
|
</li></ul></dd>
|
|
755
755
|
|
|
756
756
|
|
|
@@ -858,7 +858,7 @@
|
|
|
858
858
|
|
|
859
859
|
<dt class="tag-source">Source:</dt>
|
|
860
860
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
861
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
861
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1716">line 1716</a>
|
|
862
862
|
</li></ul></dd>
|
|
863
863
|
|
|
864
864
|
|
|
@@ -972,7 +972,7 @@
|
|
|
972
972
|
|
|
973
973
|
<dt class="tag-source">Source:</dt>
|
|
974
974
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
975
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
975
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1429">line 1429</a>
|
|
976
976
|
</li></ul></dd>
|
|
977
977
|
|
|
978
978
|
|
|
@@ -1304,7 +1304,7 @@
|
|
|
1304
1304
|
|
|
1305
1305
|
<dt class="tag-source">Source:</dt>
|
|
1306
1306
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
1307
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
1307
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1618">line 1618</a>
|
|
1308
1308
|
</li></ul></dd>
|
|
1309
1309
|
|
|
1310
1310
|
|
|
@@ -1634,7 +1634,7 @@
|
|
|
1634
1634
|
|
|
1635
1635
|
<dt class="tag-source">Source:</dt>
|
|
1636
1636
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
1637
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
1637
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1758">line 1758</a>
|
|
1638
1638
|
</li></ul></dd>
|
|
1639
1639
|
|
|
1640
1640
|
|
|
@@ -2162,7 +2162,7 @@
|
|
|
2162
2162
|
|
|
2163
2163
|
<dt class="tag-source">Source:</dt>
|
|
2164
2164
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2165
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
2165
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1806">line 1806</a>
|
|
2166
2166
|
</li></ul></dd>
|
|
2167
2167
|
|
|
2168
2168
|
|
|
@@ -2467,7 +2467,7 @@
|
|
|
2467
2467
|
|
|
2468
2468
|
<dt class="tag-source">Source:</dt>
|
|
2469
2469
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2470
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
2470
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line541">line 541</a>
|
|
2471
2471
|
</li></ul></dd>
|
|
2472
2472
|
|
|
2473
2473
|
|
|
@@ -2575,7 +2575,7 @@
|
|
|
2575
2575
|
|
|
2576
2576
|
<dt class="tag-source">Source:</dt>
|
|
2577
2577
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2578
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
2578
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line458">line 458</a>
|
|
2579
2579
|
</li></ul></dd>
|
|
2580
2580
|
|
|
2581
2581
|
|
|
@@ -2762,7 +2762,7 @@
|
|
|
2762
2762
|
|
|
2763
2763
|
<dt class="tag-source">Source:</dt>
|
|
2764
2764
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2765
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
2765
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line804">line 804</a>
|
|
2766
2766
|
</li></ul></dd>
|
|
2767
2767
|
|
|
2768
2768
|
|
|
@@ -3141,7 +3141,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
3141
3141
|
|
|
3142
3142
|
<dt class="tag-source">Source:</dt>
|
|
3143
3143
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
3144
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
3144
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line980">line 980</a>
|
|
3145
3145
|
</li></ul></dd>
|
|
3146
3146
|
|
|
3147
3147
|
|
|
@@ -3475,7 +3475,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
3475
3475
|
|
|
3476
3476
|
<dt class="tag-source">Source:</dt>
|
|
3477
3477
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
3478
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
3478
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1313">line 1313</a>
|
|
3479
3479
|
</li></ul></dd>
|
|
3480
3480
|
|
|
3481
3481
|
|
|
@@ -3851,7 +3851,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
3851
3851
|
|
|
3852
3852
|
<dt class="tag-source">Source:</dt>
|
|
3853
3853
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
3854
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
3854
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line576">line 576</a>
|
|
3855
3855
|
</li></ul></dd>
|
|
3856
3856
|
|
|
3857
3857
|
|
|
@@ -4184,7 +4184,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
4184
4184
|
|
|
4185
4185
|
<dt class="tag-source">Source:</dt>
|
|
4186
4186
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
4187
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
4187
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line674">line 674</a>
|
|
4188
4188
|
</li></ul></dd>
|
|
4189
4189
|
|
|
4190
4190
|
|
|
@@ -4510,7 +4510,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
4510
4510
|
<br class="clear">
|
|
4511
4511
|
|
|
4512
4512
|
<footer>
|
|
4513
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Oct 16 2026
|
|
4513
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Oct 16 2026 19:47:28 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
4514
4514
|
</footer>
|
|
4515
4515
|
|
|
4516
4516
|
<script>prettyPrint();</script>
|
package/docs/WOrmReladb.mjs.html
CHANGED
|
@@ -375,6 +375,10 @@ function WOrmReladb(opt = {}) {
|
|
|
375
375
|
* 檢查model之預設scope是否會使select與delAll之對象分歧
|
|
376
376
|
* 註: defaultScope帶limit或offset時, select依其order取前幾筆, 而sequelize之限量刪除不採order(sqlite為rowid IN子查詢),
|
|
377
377
|
* 兩者命中之數據不同而會刪錯列, 故delAll遇此類model即拒絕
|
|
378
|
+
* 註: defaultScope帶group或having時, findAll套用而destroy不套用(having過濾後只回部分列, 卻刪除全部符合where者);
|
|
379
|
+
* 帶非空之include時, findAll以INNER JOIN篩列(required)而destroy不JOIN; 兩者亦拒絕
|
|
380
|
+
* 註: defaultScope.where含Op.and時, sequelize以Object.assign合併scope與cvFind輸出之where, 後者頂層恆為Op.and而覆寫scope之條件(select與delAll皆然),
|
|
381
|
+
* delAll會刪到scope範圍外之列, 故拒絕; 其他鍵(含Op.or)與cvFind輸出之Op.and並存而以AND結合, 不受影響
|
|
378
382
|
*
|
|
379
383
|
* @ignore
|
|
380
384
|
* @param {Object} md 輸入資料表model物件
|
|
@@ -382,8 +386,27 @@ function WOrmReladb(opt = {}) {
|
|
|
382
386
|
*/
|
|
383
387
|
function chkScopeForDelAll(md) {
|
|
384
388
|
let sc = get(md, '_scope', {})
|
|
385
|
-
|
|
386
|
-
|
|
389
|
+
let bads = []
|
|
390
|
+
for (let k of ['limit', 'offset']) {
|
|
391
|
+
if (get(sc, k) !== undefined) {
|
|
392
|
+
bads.push(k)
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
for (let k of ['group', 'having']) {
|
|
396
|
+
let v = get(sc, k)
|
|
397
|
+
if (v !== undefined && v !== null && !(Array.isArray(v) && v.length === 0)) {
|
|
398
|
+
bads.push(k)
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
if (isearr(get(sc, 'include'))) {
|
|
402
|
+
bads.push('include')
|
|
403
|
+
}
|
|
404
|
+
let w = get(sc, 'where')
|
|
405
|
+
if (w !== null && typeof w === 'object' && Object.prototype.hasOwnProperty.call(w, Sequelize.Op.and)) {
|
|
406
|
+
bads.push('where[Op.and]')
|
|
407
|
+
}
|
|
408
|
+
if (bads.length > 0) {
|
|
409
|
+
throw new Error(`model [${opt.cl}] has defaultScope with ${bads.join(', ')}, delAll can not delete the same rows as select`)
|
|
387
410
|
}
|
|
388
411
|
}
|
|
389
412
|
|
|
@@ -618,15 +641,17 @@ function WOrmReladb(opt = {}) {
|
|
|
618
641
|
|
|
619
642
|
//si
|
|
620
643
|
let si = instance
|
|
621
|
-
if (instance === null) {
|
|
622
|
-
si = await initSequelize()
|
|
623
|
-
}
|
|
624
644
|
|
|
625
645
|
try {
|
|
626
646
|
|
|
627
647
|
//check, 實例已關閉屬整批性錯誤, 於入口快速失敗
|
|
628
648
|
procClosed(instance)
|
|
629
649
|
|
|
650
|
+
//initSequelize, 內部自動初始化須在try內: 其例外(如驅動缺失)與si.err同屬整批性錯誤, 方能於reject前發出error事件, 已建構之sequelize亦由finally關閉
|
|
651
|
+
if (instance === null) {
|
|
652
|
+
si = await initSequelize()
|
|
653
|
+
}
|
|
654
|
+
|
|
630
655
|
//check, 連線或匯入models失敗影響本次操作之全部數據, 屬整批性錯誤
|
|
631
656
|
if (si.err) {
|
|
632
657
|
throw si.err
|
|
@@ -728,15 +753,17 @@ function WOrmReladb(opt = {}) {
|
|
|
728
753
|
|
|
729
754
|
//si
|
|
730
755
|
let si = instance
|
|
731
|
-
if (instance === null) {
|
|
732
|
-
si = await initSequelize()
|
|
733
|
-
}
|
|
734
756
|
|
|
735
757
|
try {
|
|
736
758
|
|
|
737
759
|
//check, 實例已關閉屬整批性錯誤, 於入口快速失敗
|
|
738
760
|
procClosed(instance)
|
|
739
761
|
|
|
762
|
+
//initSequelize, 內部自動初始化須在try內: 其例外(如驅動缺失)與si.err同屬整批性錯誤, 方能於reject前發出error事件, 已建構之sequelize亦由finally關閉
|
|
763
|
+
if (instance === null) {
|
|
764
|
+
si = await initSequelize()
|
|
765
|
+
}
|
|
766
|
+
|
|
740
767
|
//check
|
|
741
768
|
if (si.err) {
|
|
742
769
|
throw si.err
|
|
@@ -860,15 +887,17 @@ function WOrmReladb(opt = {}) {
|
|
|
860
887
|
|
|
861
888
|
//si
|
|
862
889
|
let si = instance
|
|
863
|
-
if (instance === null) {
|
|
864
|
-
si = await initSequelize()
|
|
865
|
-
}
|
|
866
890
|
|
|
867
891
|
try {
|
|
868
892
|
|
|
869
893
|
//check, 實例已關閉屬整批性錯誤, 於入口快速失敗
|
|
870
894
|
procClosed(instance)
|
|
871
895
|
|
|
896
|
+
//initSequelize, 內部自動初始化須在try內: 其例外(如驅動缺失)與si.err同屬整批性錯誤, 方能於reject前發出error事件, 已建構之sequelize亦由finally關閉
|
|
897
|
+
if (instance === null) {
|
|
898
|
+
si = await initSequelize()
|
|
899
|
+
}
|
|
900
|
+
|
|
872
901
|
//check
|
|
873
902
|
if (si.err) {
|
|
874
903
|
throw si.err
|
|
@@ -1028,15 +1057,17 @@ function WOrmReladb(opt = {}) {
|
|
|
1028
1057
|
|
|
1029
1058
|
//si
|
|
1030
1059
|
let si = instance
|
|
1031
|
-
if (instance === null) {
|
|
1032
|
-
si = await initSequelize()
|
|
1033
|
-
}
|
|
1034
1060
|
|
|
1035
1061
|
try {
|
|
1036
1062
|
|
|
1037
1063
|
//check, 實例已關閉屬整批性錯誤, 於入口快速失敗
|
|
1038
1064
|
procClosed(instance)
|
|
1039
1065
|
|
|
1066
|
+
//initSequelize, 內部自動初始化須在try內: 其例外(如驅動缺失)與si.err同屬整批性錯誤, 方能於reject前發出error事件, 已建構之sequelize亦由finally關閉
|
|
1067
|
+
if (instance === null) {
|
|
1068
|
+
si = await initSequelize()
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1040
1071
|
//check
|
|
1041
1072
|
if (si.err) {
|
|
1042
1073
|
throw si.err
|
|
@@ -1358,15 +1389,17 @@ function WOrmReladb(opt = {}) {
|
|
|
1358
1389
|
|
|
1359
1390
|
//si
|
|
1360
1391
|
let si = instance
|
|
1361
|
-
if (instance === null) {
|
|
1362
|
-
si = await initSequelize()
|
|
1363
|
-
}
|
|
1364
1392
|
|
|
1365
1393
|
try {
|
|
1366
1394
|
|
|
1367
1395
|
//check, 實例已關閉屬整批性錯誤, 於入口快速失敗
|
|
1368
1396
|
procClosed(instance)
|
|
1369
1397
|
|
|
1398
|
+
//initSequelize, 內部自動初始化須在try內: 其例外(如驅動缺失)與si.err同屬整批性錯誤, 方能於reject前發出error事件, 已建構之sequelize亦由finally關閉
|
|
1399
|
+
if (instance === null) {
|
|
1400
|
+
si = await initSequelize()
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1370
1403
|
//check
|
|
1371
1404
|
if (si.err) {
|
|
1372
1405
|
throw si.err
|
|
@@ -1469,15 +1502,17 @@ function WOrmReladb(opt = {}) {
|
|
|
1469
1502
|
|
|
1470
1503
|
//si
|
|
1471
1504
|
let si = instance
|
|
1472
|
-
if (instance === null) {
|
|
1473
|
-
si = await initSequelize()
|
|
1474
|
-
}
|
|
1475
1505
|
|
|
1476
1506
|
try {
|
|
1477
1507
|
|
|
1478
1508
|
//check, 實例已關閉屬整批性錯誤, 於入口快速失敗
|
|
1479
1509
|
procClosed(instance)
|
|
1480
1510
|
|
|
1511
|
+
//initSequelize, 內部自動初始化須在try內: 其例外(如驅動缺失)與si.err同屬整批性錯誤, 方能於reject前發出error事件, 已建構之sequelize亦由finally關閉
|
|
1512
|
+
if (instance === null) {
|
|
1513
|
+
si = await initSequelize()
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1481
1516
|
//check
|
|
1482
1517
|
if (si.err) {
|
|
1483
1518
|
throw si.err
|
|
@@ -1648,15 +1683,17 @@ function WOrmReladb(opt = {}) {
|
|
|
1648
1683
|
|
|
1649
1684
|
//si
|
|
1650
1685
|
let si = instance
|
|
1651
|
-
if (instance === null) {
|
|
1652
|
-
si = await initSequelize()
|
|
1653
|
-
}
|
|
1654
1686
|
|
|
1655
1687
|
try {
|
|
1656
1688
|
|
|
1657
1689
|
//check, 實例已關閉屬整批性錯誤, 於入口快速失敗
|
|
1658
1690
|
procClosed(instance)
|
|
1659
1691
|
|
|
1692
|
+
//initSequelize, 內部自動初始化須在try內: 其例外(如驅動缺失)與si.err同屬整批性錯誤, 方能於reject前發出error事件, 已建構之sequelize亦由finally關閉
|
|
1693
|
+
if (instance === null) {
|
|
1694
|
+
si = await initSequelize()
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1660
1697
|
//check
|
|
1661
1698
|
if (si.err) {
|
|
1662
1699
|
throw si.err
|
|
@@ -1883,7 +1920,7 @@ export default WOrmReladb
|
|
|
1883
1920
|
<br class="clear">
|
|
1884
1921
|
|
|
1885
1922
|
<footer>
|
|
1886
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Oct 16 2026
|
|
1923
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Oct 16 2026 19:47:28 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
1887
1924
|
</footer>
|
|
1888
1925
|
|
|
1889
1926
|
<script>prettyPrint();</script>
|