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.
@@ -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#line502">line 502</a>
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#line1679">line 1679</a>
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#line1396">line 1396</a>
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#line1583">line 1583</a>
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#line1721">line 1721</a>
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#line1769">line 1769</a>
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#line518">line 518</a>
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#line435">line 435</a>
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#line777">line 777</a>
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#line951">line 951</a>
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#line1282">line 1282</a>
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#line553">line 553</a>
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#line649">line 649</a>
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 13:47:09 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
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>
@@ -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
- if (get(sc, 'limit') !== undefined || get(sc, 'offset') !== undefined) {
386
- throw new Error(`model [${opt.cl}] has defaultScope with limit or offset, delAll can not delete the same rows as select`)
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 &amp;&amp; v !== null &amp;&amp; !(Array.isArray(v) &amp;&amp; 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 &amp;&amp; typeof w === 'object' &amp;&amp; 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 13:47:09 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
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>