@maiyunnet/kebab 8.0.3 → 8.0.4
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/doc/kebab-rag.md +26 -26
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/lib/sql.d.ts +1 -1
- package/lib/sql.js +19 -1
- package/package.json +1 -1
package/doc/kebab-rag.md
CHANGED
|
@@ -1385,7 +1385,7 @@ index/variables/VER.md
|
|
|
1385
1385
|
|
|
1386
1386
|
# Variable: VER
|
|
1387
1387
|
|
|
1388
|
-
> `const` **VER**: `"8.0.
|
|
1388
|
+
> `const` **VER**: `"8.0.4"` = `'8.0.4'`
|
|
1389
1389
|
|
|
1390
1390
|
Defined in: [index.ts:10](https://github.com/maiyunnet/kebab/blob/master/index.ts#L10)
|
|
1391
1391
|
|
|
@@ -12836,7 +12836,7 @@ Defined in: [lib/sql.ts:66](https://github.com/maiyunnet/kebab/blob/master/lib/s
|
|
|
12836
12836
|
|
|
12837
12837
|
> **append**(`sql`): `this`
|
|
12838
12838
|
|
|
12839
|
-
Defined in: [lib/sql.ts:
|
|
12839
|
+
Defined in: [lib/sql.ts:874](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L874)
|
|
12840
12840
|
|
|
12841
12841
|
在 sql 最后追加字符串
|
|
12842
12842
|
|
|
@@ -12856,7 +12856,7 @@ Defined in: [lib/sql.ts:860](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
12856
12856
|
|
|
12857
12857
|
> **by**(`c`, `d?`): `this`
|
|
12858
12858
|
|
|
12859
|
-
Defined in: [lib/sql.ts:
|
|
12859
|
+
Defined in: [lib/sql.ts:668](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L668)
|
|
12860
12860
|
|
|
12861
12861
|
ORDER BY
|
|
12862
12862
|
|
|
@@ -12884,7 +12884,7 @@ ORDER BY
|
|
|
12884
12884
|
|
|
12885
12885
|
> **copy**(`f?`, `opt?`): `Sql`
|
|
12886
12886
|
|
|
12887
|
-
Defined in: [lib/sql.ts:
|
|
12887
|
+
Defined in: [lib/sql.ts:736](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L736)
|
|
12888
12888
|
|
|
12889
12889
|
创建一个本对象的一个新的 sql 对象拷贝
|
|
12890
12890
|
|
|
@@ -12912,7 +12912,7 @@ Defined in: [lib/sql.ts:729](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
12912
12912
|
|
|
12913
12913
|
> **crossJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
12914
12914
|
|
|
12915
|
-
Defined in: [lib/sql.ts:
|
|
12915
|
+
Defined in: [lib/sql.ts:423](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L423)
|
|
12916
12916
|
|
|
12917
12917
|
cross join 方法
|
|
12918
12918
|
|
|
@@ -12974,7 +12974,7 @@ Defined in: [lib/sql.ts:311](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
12974
12974
|
|
|
12975
12975
|
> **field**(`str`, `pre?`, `suf?`): `string`
|
|
12976
12976
|
|
|
12977
|
-
Defined in: [lib/sql.ts:
|
|
12977
|
+
Defined in: [lib/sql.ts:885](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L885)
|
|
12978
12978
|
|
|
12979
12979
|
对字段进行包裹
|
|
12980
12980
|
|
|
@@ -12982,7 +12982,7 @@ Defined in: [lib/sql.ts:871](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
12982
12982
|
|
|
12983
12983
|
##### str
|
|
12984
12984
|
|
|
12985
|
-
`string` | `number` |
|
|
12985
|
+
`string` | `number` | \[`string`, `string`[]\]
|
|
12986
12986
|
|
|
12987
12987
|
##### pre?
|
|
12988
12988
|
|
|
@@ -13006,7 +13006,7 @@ Defined in: [lib/sql.ts:871](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13006
13006
|
|
|
13007
13007
|
> **format**(`sql?`, `data?`): `string`
|
|
13008
13008
|
|
|
13009
|
-
Defined in: [lib/sql.ts:
|
|
13009
|
+
Defined in: [lib/sql.ts:864](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L864)
|
|
13010
13010
|
|
|
13011
13011
|
获取带 data 的 sql 语句
|
|
13012
13012
|
|
|
@@ -13030,7 +13030,7 @@ Defined in: [lib/sql.ts:850](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13030
13030
|
|
|
13031
13031
|
> **fullJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
13032
13032
|
|
|
13033
|
-
Defined in: [lib/sql.ts:
|
|
13033
|
+
Defined in: [lib/sql.ts:412](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L412)
|
|
13034
13034
|
|
|
13035
13035
|
full join 方法
|
|
13036
13036
|
|
|
@@ -13070,7 +13070,7 @@ ON 信息
|
|
|
13070
13070
|
|
|
13071
13071
|
> **getData**(): [`DbValue`](../../../index/type-aliases/DbValue.md)[]
|
|
13072
13072
|
|
|
13073
|
-
Defined in: [lib/sql.ts:
|
|
13073
|
+
Defined in: [lib/sql.ts:848](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L848)
|
|
13074
13074
|
|
|
13075
13075
|
获取全部 data
|
|
13076
13076
|
|
|
@@ -13084,7 +13084,7 @@ Defined in: [lib/sql.ts:834](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13084
13084
|
|
|
13085
13085
|
> **getPre**(): `string`
|
|
13086
13086
|
|
|
13087
|
-
Defined in: [lib/sql.ts:
|
|
13087
|
+
Defined in: [lib/sql.ts:855](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L855)
|
|
13088
13088
|
|
|
13089
13089
|
获取定义的 pre
|
|
13090
13090
|
|
|
@@ -13098,7 +13098,7 @@ Defined in: [lib/sql.ts:841](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13098
13098
|
|
|
13099
13099
|
> **getSql**(): `string`
|
|
13100
13100
|
|
|
13101
|
-
Defined in: [lib/sql.ts:
|
|
13101
|
+
Defined in: [lib/sql.ts:832](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L832)
|
|
13102
13102
|
|
|
13103
13103
|
获取 sql 语句
|
|
13104
13104
|
|
|
@@ -13112,7 +13112,7 @@ Defined in: [lib/sql.ts:818](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13112
13112
|
|
|
13113
13113
|
> **group**(`c`): `this`
|
|
13114
13114
|
|
|
13115
|
-
Defined in: [lib/sql.ts:
|
|
13115
|
+
Defined in: [lib/sql.ts:692](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L692)
|
|
13116
13116
|
|
|
13117
13117
|
GROUP BY
|
|
13118
13118
|
|
|
@@ -13134,7 +13134,7 @@ GROUP BY
|
|
|
13134
13134
|
|
|
13135
13135
|
> **having**(`s?`): `this`
|
|
13136
13136
|
|
|
13137
|
-
Defined in: [lib/sql.ts:
|
|
13137
|
+
Defined in: [lib/sql.ts:430](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L430)
|
|
13138
13138
|
|
|
13139
13139
|
having 后置筛选器,用法类似 where
|
|
13140
13140
|
|
|
@@ -13154,7 +13154,7 @@ having 后置筛选器,用法类似 where
|
|
|
13154
13154
|
|
|
13155
13155
|
> **innerJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
13156
13156
|
|
|
13157
|
-
Defined in: [lib/sql.ts:
|
|
13157
|
+
Defined in: [lib/sql.ts:401](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L401)
|
|
13158
13158
|
|
|
13159
13159
|
inner join 方法
|
|
13160
13160
|
|
|
@@ -13222,7 +13222,7 @@ Defined in: [lib/sql.ts:91](https://github.com/maiyunnet/kebab/blob/master/lib/s
|
|
|
13222
13222
|
|
|
13223
13223
|
> **join**(`f`, `s?`, `type?`, `suf?`, `pre?`): `this`
|
|
13224
13224
|
|
|
13225
|
-
Defined in: [lib/sql.ts:
|
|
13225
|
+
Defined in: [lib/sql.ts:353](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L353)
|
|
13226
13226
|
|
|
13227
13227
|
join 方法
|
|
13228
13228
|
|
|
@@ -13268,7 +13268,7 @@ ON 信息
|
|
|
13268
13268
|
|
|
13269
13269
|
> **leftJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
13270
13270
|
|
|
13271
|
-
Defined in: [lib/sql.ts:
|
|
13271
|
+
Defined in: [lib/sql.ts:379](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L379)
|
|
13272
13272
|
|
|
13273
13273
|
left join 方法
|
|
13274
13274
|
|
|
@@ -13308,7 +13308,7 @@ ON 信息
|
|
|
13308
13308
|
|
|
13309
13309
|
> **limit**(`a`, `b?`): `this`
|
|
13310
13310
|
|
|
13311
|
-
Defined in: [lib/sql.ts:
|
|
13311
|
+
Defined in: [lib/sql.ts:712](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L712)
|
|
13312
13312
|
|
|
13313
13313
|
LIMIT(limit、offset, limit)
|
|
13314
13314
|
|
|
@@ -13336,7 +13336,7 @@ LIMIT(limit、offset, limit)
|
|
|
13336
13336
|
|
|
13337
13337
|
> **lock**(): `this`
|
|
13338
13338
|
|
|
13339
|
-
Defined in: [lib/sql.ts:
|
|
13339
|
+
Defined in: [lib/sql.ts:727](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L727)
|
|
13340
13340
|
|
|
13341
13341
|
追加消极锁,通常不建议使用
|
|
13342
13342
|
|
|
@@ -13350,7 +13350,7 @@ Defined in: [lib/sql.ts:720](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13350
13350
|
|
|
13351
13351
|
> **rightJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
13352
13352
|
|
|
13353
|
-
Defined in: [lib/sql.ts:
|
|
13353
|
+
Defined in: [lib/sql.ts:390](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L390)
|
|
13354
13354
|
|
|
13355
13355
|
right join 方法
|
|
13356
13356
|
|
|
@@ -13446,7 +13446,7 @@ sql 对象
|
|
|
13446
13446
|
|
|
13447
13447
|
> **unionAll**(`lsql`): `this`
|
|
13448
13448
|
|
|
13449
|
-
Defined in: [lib/sql.ts:
|
|
13449
|
+
Defined in: [lib/sql.ts:341](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L341)
|
|
13450
13450
|
|
|
13451
13451
|
所有联查另一个 sql 对象
|
|
13452
13452
|
|
|
@@ -13552,7 +13552,7 @@ Defined in: [lib/sql.ts:110](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13552
13552
|
|
|
13553
13553
|
> **where**(`s`): `this`
|
|
13554
13554
|
|
|
13555
|
-
Defined in: [lib/sql.ts:
|
|
13555
|
+
Defined in: [lib/sql.ts:464](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L464)
|
|
13556
13556
|
|
|
13557
13557
|
筛选器
|
|
13558
13558
|
1. 'city': 'bj', 'type': '2'
|
|
@@ -13695,7 +13695,7 @@ lib/sql/functions/aoMix.md
|
|
|
13695
13695
|
|
|
13696
13696
|
> **aoMix**(`arr`): `Record`\<`string`, `string` \| `number` \| [`Json`](../../../index/type-aliases/Json.md)\>
|
|
13697
13697
|
|
|
13698
|
-
Defined in: [lib/sql.ts:
|
|
13698
|
+
Defined in: [lib/sql.ts:1210](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1210)
|
|
13699
13699
|
|
|
13700
13700
|
将数组兑换为组合的对象(Array/Object mix)
|
|
13701
13701
|
|
|
@@ -13724,7 +13724,7 @@ lib/sql/functions/column.md
|
|
|
13724
13724
|
|
|
13725
13725
|
> **column**(`field`): `object`
|
|
13726
13726
|
|
|
13727
|
-
Defined in: [lib/sql.ts:
|
|
13727
|
+
Defined in: [lib/sql.ts:1231](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1231)
|
|
13728
13728
|
|
|
13729
13729
|
创建字段对象
|
|
13730
13730
|
|
|
@@ -13763,7 +13763,7 @@ lib/sql/functions/format.md
|
|
|
13763
13763
|
|
|
13764
13764
|
> **format**(`sql`, `data`, `service?`): `string`
|
|
13765
13765
|
|
|
13766
|
-
Defined in: [lib/sql.ts:
|
|
13766
|
+
Defined in: [lib/sql.ts:1172](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1172)
|
|
13767
13767
|
|
|
13768
13768
|
返回代入后的完整 SQL 字符串,这并不安全不能直接执行,只是用来调试打印 sql 语句
|
|
13769
13769
|
|
|
@@ -13804,7 +13804,7 @@ lib/sql/functions/get.md
|
|
|
13804
13804
|
|
|
13805
13805
|
> **get**(`opt`): [`Sql`](../classes/Sql.md)
|
|
13806
13806
|
|
|
13807
|
-
Defined in: [lib/sql.ts:
|
|
13807
|
+
Defined in: [lib/sql.ts:1145](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1145)
|
|
13808
13808
|
|
|
13809
13809
|
创建 sql 对象
|
|
13810
13810
|
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* --- 本文件用来定义每个目录实体地址的常量 ---
|
|
7
7
|
*/
|
|
8
8
|
/** --- 当前系统版本号 --- */
|
|
9
|
-
export const VER = '8.0.
|
|
9
|
+
export const VER = '8.0.4';
|
|
10
10
|
// --- 服务端用的路径 ---
|
|
11
11
|
const imu = decodeURIComponent(import.meta.url).replace('file://', '').replace(/^\/(\w:)/, '$1');
|
|
12
12
|
/** --- /xxx/xxx --- */
|
package/lib/sql.d.ts
CHANGED
|
@@ -222,7 +222,7 @@ export declare class Sql {
|
|
|
222
222
|
* @param pre 表前缀,仅请在 field 表名时倒入前缀
|
|
223
223
|
* @param suf 表后缀,仅请在 field 表名时倒入后缀,前面加 # 代表要强制 AS,可能是分表查询时用
|
|
224
224
|
*/
|
|
225
|
-
field(str: string | number |
|
|
225
|
+
field(str: string | number | [string, string[]], pre?: string, suf?: string): string;
|
|
226
226
|
/**
|
|
227
227
|
* --- 判断传入值是否是 field,还是别的对象 ---
|
|
228
228
|
* @param str
|
package/lib/sql.js
CHANGED
|
@@ -284,9 +284,16 @@ export class Sql {
|
|
|
284
284
|
* @param type 类型
|
|
285
285
|
*/
|
|
286
286
|
union(lsql, type = '') {
|
|
287
|
+
const offset = this._data.length;
|
|
287
288
|
this._data = this._data.concat(lsql.getData());
|
|
288
289
|
this._sql.push(' UNION ' + (type ? type + ' ' : ''));
|
|
289
|
-
|
|
290
|
+
let unionSql = lsql.getSql();
|
|
291
|
+
// --- PGSQL: 偏移 $N 占位符编号 ---
|
|
292
|
+
if (this._service === ESERVICE.PGSQL && offset > 0) {
|
|
293
|
+
unionSql = unionSql.replace(/\$(\d+)/g, (_, n) => `$${parseInt(n) + offset}`);
|
|
294
|
+
}
|
|
295
|
+
this._sql.push(unionSql);
|
|
296
|
+
this._placeholderCounter = this._data.length + 1;
|
|
290
297
|
return this;
|
|
291
298
|
}
|
|
292
299
|
/**
|
|
@@ -736,6 +743,13 @@ export class Sql {
|
|
|
736
743
|
}
|
|
737
744
|
sql[0] = sql[0].replace(/FROM [`\w, ]+/, 'FROM ' + table);
|
|
738
745
|
}
|
|
746
|
+
// --- PGSQL: 修改 where 后重新编号 $N 占位符 ---
|
|
747
|
+
if (this._service === ESERVICE.PGSQL && opt.where !== undefined) {
|
|
748
|
+
let counter = 1;
|
|
749
|
+
for (let i = 0; i < sql.length; ++i) {
|
|
750
|
+
sql[i] = sql[i].replace(/\$\d+/g, () => `$${counter++}`);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
739
753
|
return get({
|
|
740
754
|
'service': this._service,
|
|
741
755
|
'ctr': this._ctr,
|
|
@@ -799,6 +813,10 @@ export class Sql {
|
|
|
799
813
|
const q = this._service === ESERVICE.MYSQL ? '`' : '"';
|
|
800
814
|
if (Array.isArray(str)) {
|
|
801
815
|
this._data.push(...str[1]);
|
|
816
|
+
// --- PGSQL: 将 ? 占位符转换为 $N ---
|
|
817
|
+
if (this._service === ESERVICE.PGSQL) {
|
|
818
|
+
return this.field(str[0].replace(/\?/g, () => this._placeholder()));
|
|
819
|
+
}
|
|
802
820
|
return this.field(str[0]);
|
|
803
821
|
}
|
|
804
822
|
if (typeof str === 'number') {
|