w-orm-reladb 1.1.5 → 1.1.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 +25 -3
- package/dist/w-orm-reladb.umd.js +2 -2
- package/dist/w-orm-reladb.umd.js.map +1 -1
- package/docs/WOrmReladb.html +39 -21
- package/docs/WOrmReladb.mjs.html +171 -110
- package/docs/cvFind.mjs.html +861 -0
- package/docs/global.html +1716 -0
- package/docs/importModels.mjs.html +255 -0
- package/docs/index.html +2 -2
- package/g-mssql.mjs +1 -1
- package/g-sqlite-encryption.mjs +1 -1
- package/g-sqlite.mjs +1 -1
- package/models/tcond.js +74 -0
- package/models/tpkdec.js +20 -0
- package/models/tpkint.js +20 -0
- package/package.json +4 -4
- package/src/WOrmReladb.mjs +169 -108
- package/src/cvFind.mjs +789 -0
- package/src/importModels.mjs +180 -114
- package/test/api-models.test.mjs +216 -0
- package/test/api-suite.mjs +492 -3
- package/test/tools/modelsWorker.mjs +35 -0
- package/test/unit-cvfind.test.mjs +393 -0
- package/src/modifyModel.mjs +0 -113
package/docs/WOrmReladb.html
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="WOrmReladb.html">WOrmReladb</a><ul class='methods'><li data-type='method'><a href="WOrmReladb.html#.closeSequelize">closeSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.createStorage">createStorage</a></li><li data-type='method'><a href="WOrmReladb.html#.del">del</a></li><li data-type='method'><a href="WOrmReladb.html#.delAll">delAll</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByDB">genModelsByDB</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByTabs">genModelsByTabs</a></li><li data-type='method'><a href="WOrmReladb.html#.genTransaction">genTransaction</a></li><li data-type='method'><a href="WOrmReladb.html#.initSequelize">initSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.insert">insert</a></li><li data-type='method'><a href="WOrmReladb.html#.insertBulk">insertBulk</a></li><li data-type='method'><a href="WOrmReladb.html#.save">save</a></li><li data-type='method'><a href="WOrmReladb.html#.select">select</a></li><li data-type='method'><a href="WOrmReladb.html#.selectByPk">selectByPk</a></li></ul></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="WOrmReladb.html">WOrmReladb</a><ul class='methods'><li data-type='method'><a href="WOrmReladb.html#.closeSequelize">closeSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.createStorage">createStorage</a></li><li data-type='method'><a href="WOrmReladb.html#.del">del</a></li><li data-type='method'><a href="WOrmReladb.html#.delAll">delAll</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByDB">genModelsByDB</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByTabs">genModelsByTabs</a></li><li data-type='method'><a href="WOrmReladb.html#.genTransaction">genTransaction</a></li><li data-type='method'><a href="WOrmReladb.html#.initSequelize">initSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.insert">insert</a></li><li data-type='method'><a href="WOrmReladb.html#.insertBulk">insertBulk</a></li><li data-type='method'><a href="WOrmReladb.html#.save">save</a></li><li data-type='method'><a href="WOrmReladb.html#.select">select</a></li><li data-type='method'><a href="WOrmReladb.html#.selectByPk">selectByPk</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#cvFind">cvFind</a></li><li><a href="global.html#getColKind">getColKind</a></li><li><a href="global.html#getColScale">getColScale</a></li><li><a href="global.html#importModels">importModels</a></li><li><a href="global.html#isKindOk">isKindOk</a></li><li><a href="global.html#normPk">normPk</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
|
|
82
82
|
<dt class="tag-source">Source:</dt>
|
|
83
83
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
84
|
-
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#
|
|
84
|
+
<a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line55">line 55</a>
|
|
85
85
|
</li></ul></dd>
|
|
86
86
|
|
|
87
87
|
|
|
@@ -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#line502">line 502</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#line1679">line 1679</a>
|
|
862
862
|
</li></ul></dd>
|
|
863
863
|
|
|
864
864
|
|
|
@@ -964,14 +964,15 @@
|
|
|
964
964
|
<p>註: 回傳陣列恆與輸入等長,各筆之n與nDeleted皆為主鍵命中筆數,值為0或1,未命中為0且屬正常結果
|
|
965
965
|
註: 判斷某筆是否真的被刪除一律以nDeleted為準
|
|
966
966
|
註: 未帶有效主鍵者為該筆之輸入問題,回ok為0與err且不送查詢條件(以免無效值被轉為null而誤中其他數據),
|
|
967
|
-
不中斷其餘筆數,以此與[主鍵未命中]之ok為1
|
|
967
|
+
不中斷其餘筆數,以此與[主鍵未命中]之ok為1區辨;主鍵值與主鍵欄型別不符者(整數類主鍵欄給'012'等)亦同
|
|
968
|
+
註: 主鍵值依主鍵欄型別正規化後刪除(字串類主鍵欄之123即'123'),正規化值寫回該筆數據
|
|
968
969
|
註: 本函數不受opt.autoGenPk影響,於任一設定下皆不補值</p></li></ul></dd>
|
|
969
970
|
|
|
970
971
|
|
|
971
972
|
|
|
972
973
|
<dt class="tag-source">Source:</dt>
|
|
973
974
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
974
|
-
<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#line1396">line 1396</a>
|
|
975
976
|
</li></ul></dd>
|
|
976
977
|
|
|
977
978
|
|
|
@@ -1294,13 +1295,16 @@
|
|
|
1294
1295
|
<dt class="tag-description">Description:</dt>
|
|
1295
1296
|
<dd class="tag-description"><ul class="dummy"><li><p>依條件刪除多筆數據,需與del分開,避免未傳數據導致直接刪除全表</p>
|
|
1296
1297
|
<p>註: n與nDeleted皆為實際刪除筆數,兩者恆相等,n不得取全表筆數
|
|
1297
|
-
註: find未給或為空物件時刪除全部數據;條件無命中時回{n:0,nDeleted:0,ok:1}
|
|
1298
|
+
註: find未給或為空物件時刪除全部數據;條件無命中時回{n:0,nDeleted:0,ok:1},不視為錯誤
|
|
1299
|
+
註: find由cvFind轉譯且與select共用,刪除之數據即select(find)命中之數據;支援之條件與限制同select
|
|
1300
|
+
註: 不支援之運算子、非純量之值、與欄位型別不符之純量一律reject並發出error事件,不刪除任何數據;主鍵欄之條件值依主鍵欄型別正規化,同select
|
|
1301
|
+
註: find非物件(null、陣列、字串、數字)時刪除全部數據,此為現況保留,系列規格另案處理</p></li></ul></dd>
|
|
1298
1302
|
|
|
1299
1303
|
|
|
1300
1304
|
|
|
1301
1305
|
<dt class="tag-source">Source:</dt>
|
|
1302
1306
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
1303
|
-
<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#line1583">line 1583</a>
|
|
1304
1308
|
</li></ul></dd>
|
|
1305
1309
|
|
|
1306
1310
|
|
|
@@ -1630,7 +1634,7 @@
|
|
|
1630
1634
|
|
|
1631
1635
|
<dt class="tag-source">Source:</dt>
|
|
1632
1636
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
1633
|
-
<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#line1721">line 1721</a>
|
|
1634
1638
|
</li></ul></dd>
|
|
1635
1639
|
|
|
1636
1640
|
|
|
@@ -2158,7 +2162,7 @@
|
|
|
2158
2162
|
|
|
2159
2163
|
<dt class="tag-source">Source:</dt>
|
|
2160
2164
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2161
|
-
<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#line1769">line 1769</a>
|
|
2162
2166
|
</li></ul></dd>
|
|
2163
2167
|
|
|
2164
2168
|
|
|
@@ -2463,7 +2467,7 @@
|
|
|
2463
2467
|
|
|
2464
2468
|
<dt class="tag-source">Source:</dt>
|
|
2465
2469
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2466
|
-
<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#line518">line 518</a>
|
|
2467
2471
|
</li></ul></dd>
|
|
2468
2472
|
|
|
2469
2473
|
|
|
@@ -2571,7 +2575,7 @@
|
|
|
2571
2575
|
|
|
2572
2576
|
<dt class="tag-source">Source:</dt>
|
|
2573
2577
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2574
|
-
<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#line435">line 435</a>
|
|
2575
2579
|
</li></ul></dd>
|
|
2576
2580
|
|
|
2577
2581
|
|
|
@@ -2748,6 +2752,7 @@
|
|
|
2748
2752
|
<p>註: n為輸入筆數即本次嘗試插入之基準,nInserted為實際插入筆數,全數已存在而nInserted為0屬正常結果
|
|
2749
2753
|
註: 同批含重複主鍵時僅首筆計入nInserted,其餘視為已存在
|
|
2750
2754
|
註: opt.autoGenPk為true(預設)時未帶有效主鍵者自動產生,為false時未帶有效主鍵即reject且同批皆不寫入
|
|
2755
|
+
註: 主鍵值依主鍵欄型別正規化後寫入(字串類主鍵欄之123存為'123');型別不符(整數類主鍵欄給'012'等)即reject且同批皆不寫入,不以自動產生之主鍵取代
|
|
2751
2756
|
註: option.returnList開啟時改回與輸入等長且保序之逐筆結果陣列[{n,nInserted,ok}],
|
|
2752
2757
|
聚合計數只答得出[有幾筆是新的]而答不出[是哪幾筆],而後者正是去重之產出物;
|
|
2753
2758
|
逐筆元素之n與ok恆為1,資訊由nInserted承載,不變式為
|
|
@@ -2757,7 +2762,7 @@
|
|
|
2757
2762
|
|
|
2758
2763
|
<dt class="tag-source">Source:</dt>
|
|
2759
2764
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
2760
|
-
<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#line777">line 777</a>
|
|
2761
2766
|
</li></ul></dd>
|
|
2762
2767
|
|
|
2763
2768
|
|
|
@@ -3126,6 +3131,7 @@
|
|
|
3126
3131
|
令呼叫端得與insert共用同一段結果處理程式碼
|
|
3127
3132
|
註: 不提供逐筆結果,故不出現ok為0與err;需要逐筆處置者改用insert
|
|
3128
3133
|
註: opt.autoGenPk為true(預設)時未帶有效主鍵者自動產生,為false時未帶有效主鍵即reject且同批皆不寫入
|
|
3134
|
+
註: 主鍵值依主鍵欄型別正規化後寫入(字串類主鍵欄之123存為'123');型別不符(整數類主鍵欄給'012'等)即reject且同批皆不寫入
|
|
3129
3135
|
註: [全有全無]為獨立於T7之額外要求——T7僅保證每筆之[檢查主鍵不存在]與[寫入]為原子,不保證整批。
|
|
3130
3136
|
mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實測1000筆之批次於末筆撞主鍵時已有946筆落盤,
|
|
3131
3137
|
故一律以交易包覆並於失敗時回滾;呼叫端已給transaction時改以巢狀交易(SAVEPOINT)包覆,
|
|
@@ -3135,7 +3141,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
3135
3141
|
|
|
3136
3142
|
<dt class="tag-source">Source:</dt>
|
|
3137
3143
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
3138
|
-
<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#line951">line 951</a>
|
|
3139
3145
|
</li></ul></dd>
|
|
3140
3146
|
|
|
3141
3147
|
|
|
@@ -3462,13 +3468,14 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
3462
3468
|
註: [內容相同]之判定基準為將待寫入物件合併進現值後與現值相同,非待寫入物件與現值全等,
|
|
3463
3469
|
故只給部份欄位且該些欄位值皆與現值相同時,合併結果等於現值,nModified為0
|
|
3464
3470
|
註: 本筆失敗不中斷整批,該筆以ok為0並附err回報
|
|
3465
|
-
註: opt.autoGenPk為true(預設)時未帶有效主鍵者自動產生,為false時未帶有效主鍵即reject
|
|
3471
|
+
註: opt.autoGenPk為true(預設)時未帶有效主鍵者自動產生,為false時未帶有效主鍵即reject且同批皆不寫入
|
|
3472
|
+
註: 主鍵值依主鍵欄型別正規化(字串類主鍵欄之123即'123');型別不符(整數類主鍵欄給'012'等)屬呼叫端未履行契約,整批reject且同批皆不寫入</p></li></ul></dd>
|
|
3466
3473
|
|
|
3467
3474
|
|
|
3468
3475
|
|
|
3469
3476
|
<dt class="tag-source">Source:</dt>
|
|
3470
3477
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
3471
|
-
<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#line1282">line 1282</a>
|
|
3472
3479
|
</li></ul></dd>
|
|
3473
3480
|
|
|
3474
3481
|
|
|
@@ -3829,13 +3836,22 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
3829
3836
|
<dl class="details">
|
|
3830
3837
|
|
|
3831
3838
|
<dt class="tag-description">Description:</dt>
|
|
3832
|
-
<dd class="tag-description"><ul class="dummy"><li><p>查詢數據</p
|
|
3839
|
+
<dd class="tag-description"><ul class="dummy"><li><p>查詢數據</p>
|
|
3840
|
+
<p>註: find由cvFind轉譯且與delAll共用, 同一find於兩函數由同一SQL謂詞決定命中
|
|
3841
|
+
註: 支援欄位等值({欄位:值}, 值為null時比對IS NULL)與$eq、$ne、$gt、$gte、$lt、$lte、$in、$nin、$not、$regex($options僅i)、$exists, 以及$and、$or、$nor
|
|
3842
|
+
註: 不支援之運算子、非純量之值、與欄位型別不符之純量(如數值欄給'abc')一律reject並發出error事件, 不靜默忽略或改變語意
|
|
3843
|
+
註: 主鍵欄之條件值依主鍵欄型別正規化而與selectByPk等一致(如字串類主鍵欄之{id:123}即{id:'123'}, 整數類主鍵欄之'12'即12), 型別不符或無效者reject
|
|
3844
|
+
註: NULL依SQL三值邏輯, 故$ne、$nin、$not、$nor不含該欄為NULL之數據; $exists:false即IS NULL
|
|
3845
|
+
註: $regex僅支援字面子字串(含未跳脫正規式元字元者reject, 可用反斜線跳脫), 給i時不分大小寫, 未給i時大小寫依資料庫定序(sqlite之LIKE與mssql預設定序皆不分)
|
|
3846
|
+
註: 欄位值為陣列時視同$in, 與MongoDB之陣列比對不同
|
|
3847
|
+
註: find未給或為空物件時回傳全部數據; find非物件時亦回傳全部數據(現況保留)
|
|
3848
|
+
註: 恆回傳陣列, 無符合數據回傳空陣列</p></li></ul></dd>
|
|
3833
3849
|
|
|
3834
3850
|
|
|
3835
3851
|
|
|
3836
3852
|
<dt class="tag-source">Source:</dt>
|
|
3837
3853
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
3838
|
-
<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#line553">line 553</a>
|
|
3839
3855
|
</li></ul></dd>
|
|
3840
3856
|
|
|
3841
3857
|
|
|
@@ -4120,7 +4136,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
4120
4136
|
|
|
4121
4137
|
|
|
4122
4138
|
<div class="param-desc">
|
|
4123
|
-
<p>回傳Promise,resolve
|
|
4139
|
+
<p>回傳Promise,resolve回傳數據陣列,reject回傳錯誤訊息</p>
|
|
4124
4140
|
</div>
|
|
4125
4141
|
|
|
4126
4142
|
|
|
@@ -4160,13 +4176,15 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
4160
4176
|
<dd class="tag-description"><ul class="dummy"><li><p>由主鍵查詢單筆數據,因由資料庫依主鍵索引取值且僅回傳單筆,不需如select提取全部符合數據再處理,故數據量大時效能較佳</p>
|
|
4161
4177
|
<p>註: 主鍵欄位取自opt.pk,預設為id,支援由呼叫端指定
|
|
4162
4178
|
註: 主鍵未命中或主鍵值無效皆回傳null而不reject,[命中]之判定基準與insert、save、del內對既有數據之認定一致
|
|
4179
|
+
註: 主鍵值依主鍵欄型別正規化後查詢: 字串類主鍵欄之有限數字以String(v)處置(selectByPk(123)即查'123'), 整數類主鍵欄之標準整數寫法字串轉為數值;
|
|
4180
|
+
型別不符(整數類主鍵欄給'012'、12.4、'abc'等)亦屬主鍵值無效而回傳null
|
|
4163
4181
|
註: 本函數不得有副作用,故不創建資料表</p></li></ul></dd>
|
|
4164
4182
|
|
|
4165
4183
|
|
|
4166
4184
|
|
|
4167
4185
|
<dt class="tag-source">Source:</dt>
|
|
4168
4186
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
4169
|
-
<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#line649">line 649</a>
|
|
4170
4188
|
</li></ul></dd>
|
|
4171
4189
|
|
|
4172
4190
|
|
|
@@ -4492,7 +4510,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
|
|
|
4492
4510
|
<br class="clear">
|
|
4493
4511
|
|
|
4494
4512
|
<footer>
|
|
4495
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
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.
|
|
4496
4514
|
</footer>
|
|
4497
4515
|
|
|
4498
4516
|
<script>prettyPrint();</script>
|