baja-lite 1.8.7 → 1.8.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.
Files changed (47) hide show
  1. package/boot-remote.d.ts +1 -1
  2. package/boot-remote.js +6 -1
  3. package/boot.d.ts +1 -1
  4. package/boot.js +6 -1
  5. package/cache.d.ts +91 -0
  6. package/cache.js +515 -0
  7. package/const/index.d.ts +2 -0
  8. package/const/index.js +2 -0
  9. package/const/symbols.d.ts +73 -0
  10. package/const/symbols.js +78 -0
  11. package/const/types.d.ts +504 -0
  12. package/const/types.js +127 -0
  13. package/db/dao/format-dialects.d.ts +6 -0
  14. package/db/dao/format-dialects.js +8 -0
  15. package/db/dao/mysql.d.ts +44 -0
  16. package/db/dao/mysql.js +303 -0
  17. package/db/dao/postgresql.d.ts +44 -0
  18. package/db/dao/postgresql.js +322 -0
  19. package/db/dao/sqlite-remote.d.ts +46 -0
  20. package/db/dao/sqlite-remote.js +226 -0
  21. package/db/dao/sqlite.d.ts +41 -0
  22. package/db/dao/sqlite.js +237 -0
  23. package/db/index.d.ts +8 -0
  24. package/db/index.js +8 -0
  25. package/db/service.d.ts +778 -0
  26. package/db/service.js +1651 -0
  27. package/db/sql-template.d.ts +46 -0
  28. package/db/sql-template.js +660 -0
  29. package/db/stream-query.d.ts +607 -0
  30. package/db/stream-query.js +1626 -0
  31. package/index.d.ts +4 -1
  32. package/index.js +4 -1
  33. package/logger.d.ts +46 -0
  34. package/logger.js +35 -0
  35. package/package.json +3 -6
  36. package/sqlite.d.ts +1 -1
  37. package/sqlite.js +2 -1
  38. package/{test-mysql.js → test/test-mysql.js} +3 -2
  39. package/{test-postgresql.js → test/test-postgresql.js} +3 -2
  40. package/{test-sqlite.js → test/test-sqlite.js} +3 -2
  41. package/sql.d.ts +0 -2207
  42. package/sql.js +0 -5471
  43. /package/{test-mysql.d.ts → test/test-mysql.d.ts} +0 -0
  44. /package/{test-postgresql.d.ts → test/test-postgresql.d.ts} +0 -0
  45. /package/{test-sqlite.d.ts → test/test-sqlite.d.ts} +0 -0
  46. /package/{test-xml.d.ts → test/test-xml.d.ts} +0 -0
  47. /package/{test-xml.js → test/test-xml.js} +0 -0
@@ -0,0 +1,607 @@
1
+ import { _fields, _columns, AField } from 'baja-lite-field';
2
+ import { MapperIfUndefined, MethodOption, PageQuery, SelectResult, SqlMapper, SyncMode } from '../const/types.js';
3
+ import type { SqlService } from './service.js';
4
+ export declare class StreamQuery<T extends object> {
5
+ private _prefix;
6
+ private _index;
7
+ private _wheres;
8
+ private _andQuerys;
9
+ private _orQuerys;
10
+ private _paramKeys;
11
+ private _param;
12
+ if_proceed: boolean;
13
+ if_exec: boolean;
14
+ private _distinct;
15
+ private _columns;
16
+ private _updates?;
17
+ private _updateColumns;
18
+ private _groups;
19
+ private _orders;
20
+ private _startRow;
21
+ private _pageSize;
22
+ private _service;
23
+ private [_fields];
24
+ private [_columns];
25
+ constructor(service: SqlService<T>, __fields: Record<string, AField>, __columns: string[]);
26
+ /** 将当前stream重置 */
27
+ reset(): this;
28
+ /** 为下次链条执行提供条件判断:非异步方法跳过,异步方法不执行并返回默认值 */
29
+ if(condition: boolean): this;
30
+ /**
31
+ * AND(key1 = :value OR key2 = :value)
32
+ * @param keys [key1, key2, ...]
33
+ */
34
+ eqs(keys: (keyof T)[], value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
35
+ paramName?: string | undefined;
36
+ skipEmptyString?: boolean | undefined;
37
+ breakExcuteIfEmpty?: boolean | undefined;
38
+ }): this;
39
+ /*** AND key = :value */
40
+ eq(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
41
+ paramName?: string | undefined;
42
+ skipEmptyString?: boolean | undefined;
43
+ breakExcuteIfEmpty?: boolean | undefined;
44
+ }): this;
45
+ /*** AND key1 = :value1 AND key2 = :value2 */
46
+ eqT(t: Partial<T>, { name: paramName, breakExcuteIfEmpty }?: {
47
+ name?: string | undefined;
48
+ breakExcuteIfEmpty?: boolean | undefined;
49
+ }): this;
50
+ /*** AND key <> :value */
51
+ notEq(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
52
+ paramName?: string | undefined;
53
+ skipEmptyString?: boolean | undefined;
54
+ breakExcuteIfEmpty?: boolean | undefined;
55
+ }): this;
56
+ /** AND key1 = key2 */
57
+ eqWith(key1: keyof T, key2: keyof T): this;
58
+ /** AND key1 <> key2 */
59
+ notEqWith(key1: keyof T, key2: keyof T): this;
60
+ /** AND key > :value */
61
+ grate(key: keyof T, value: string | number, { paramName, breakExcuteIfEmpty }?: {
62
+ paramName?: string | undefined;
63
+ breakExcuteIfEmpty?: boolean | undefined;
64
+ }): this;
65
+ /** AND key >= :value */
66
+ grateEq(key: keyof T, value: string | number, { paramName, breakExcuteIfEmpty }?: {
67
+ paramName?: string | undefined;
68
+ breakExcuteIfEmpty?: boolean | undefined;
69
+ }): this;
70
+ /** AND key1 > key2 */
71
+ grateWith(key1: keyof T, key2: keyof T): this;
72
+ /** AND key1 >= key2 */
73
+ grateEqWith(key1: keyof T, key2: keyof T): this;
74
+ /** AND key < :value */
75
+ less(key: keyof T, value: string | number, { paramName, breakExcuteIfEmpty }?: {
76
+ paramName?: string | undefined;
77
+ breakExcuteIfEmpty?: boolean | undefined;
78
+ }): this;
79
+ /** AND key <= :value */
80
+ lessEq(key: keyof T, value: string | number, { paramName, breakExcuteIfEmpty }?: {
81
+ paramName?: string | undefined;
82
+ breakExcuteIfEmpty?: boolean | undefined;
83
+ }): this;
84
+ /** AND key1 < key2 */
85
+ lessWith(key1: keyof T, key2: keyof T): this;
86
+ /** AND key1 <= key2 */
87
+ lessEqWith(key1: keyof T, key2: keyof T): this;
88
+ /** AND key REGEXP :regexp */
89
+ regexp(key: keyof T, regexp: string, { paramName, breakExcuteIfEmpty }?: {
90
+ paramName?: string | undefined;
91
+ breakExcuteIfEmpty?: boolean | undefined;
92
+ }): this;
93
+ /** AND key NOT REGEXP :regexp */
94
+ notRegexp(key: keyof T, regexp: string, { paramName, breakExcuteIfEmpty }?: {
95
+ paramName?: string | undefined;
96
+ breakExcuteIfEmpty?: boolean | undefined;
97
+ }): this;
98
+ /** AND :regexp REGEXP key */
99
+ regexp2(key: keyof T, regexp: string, { paramName, breakExcuteIfEmpty }?: {
100
+ paramName?: string | undefined;
101
+ breakExcuteIfEmpty?: boolean | undefined;
102
+ }): this;
103
+ /** AND :regexp NOT REGEXP key */
104
+ notRegexp2(key: keyof T, regexp: string, { paramName, breakExcuteIfEmpty }?: {
105
+ paramName?: string | undefined;
106
+ breakExcuteIfEmpty?: boolean | undefined;
107
+ }): this;
108
+ /** AND (key1 << 8) + key2 = value */
109
+ shiftEq(key1: keyof T, key2: keyof T, value: number, { paramName, breakExcuteIfEmpty }?: {
110
+ paramName?: string | undefined;
111
+ breakExcuteIfEmpty?: boolean | undefined;
112
+ }): this;
113
+ /** AND (key1 << 8) + key2 <> value */
114
+ shiftNotEq(key1: keyof T, key2: keyof T, value: number, { paramName, breakExcuteIfEmpty }?: {
115
+ paramName?: string | undefined;
116
+ breakExcuteIfEmpty?: boolean | undefined;
117
+ }): this;
118
+ /** AND key LIKE CONCAT('%', :value, '%') */
119
+ like(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
120
+ paramName?: string | undefined;
121
+ skipEmptyString?: boolean | undefined;
122
+ breakExcuteIfEmpty?: boolean | undefined;
123
+ }): this;
124
+ /** AND key NOT LIKE CONCAT('%', :value, '%') */
125
+ notLike(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
126
+ paramName?: string | undefined;
127
+ skipEmptyString?: boolean | undefined;
128
+ breakExcuteIfEmpty?: boolean | undefined;
129
+ }): this;
130
+ /** AND key NOT LIKE CONCAT('%', :value) */
131
+ leftLike(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
132
+ paramName?: string | undefined;
133
+ skipEmptyString?: boolean | undefined;
134
+ breakExcuteIfEmpty?: boolean | undefined;
135
+ }): this;
136
+ /** AND key LIKE CONCAT('%', :value) */
137
+ notLeftLike(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
138
+ paramName?: string | undefined;
139
+ skipEmptyString?: boolean | undefined;
140
+ breakExcuteIfEmpty?: boolean | undefined;
141
+ }): this;
142
+ /** AND key LIKE CONCAT(:value, '%') */
143
+ rightLike(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
144
+ paramName?: string | undefined;
145
+ skipEmptyString?: boolean | undefined;
146
+ breakExcuteIfEmpty?: boolean | undefined;
147
+ }): this;
148
+ /** AND key NOT LIKE CONCAT(:value, '%') */
149
+ notRightLike(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
150
+ paramName?: string | undefined;
151
+ skipEmptyString?: boolean | undefined;
152
+ breakExcuteIfEmpty?: boolean | undefined;
153
+ }): this;
154
+ /** AND key LIKE :value 注意:不会拼接% */
155
+ PreciseLike(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
156
+ paramName?: string | undefined;
157
+ skipEmptyString?: boolean | undefined;
158
+ breakExcuteIfEmpty?: boolean | undefined;
159
+ }): this;
160
+ /** AND key NOT LIKE :value 注意:不会拼接%*/
161
+ notPreciseLike(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
162
+ paramName?: string | undefined;
163
+ skipEmptyString?: boolean | undefined;
164
+ breakExcuteIfEmpty?: boolean | undefined;
165
+ }): this;
166
+ /** AND key GLOB CONCAT('%', :value, '%') 注意:GLOB是大小写敏感like */
167
+ glob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
168
+ paramName?: string | undefined;
169
+ skipEmptyString?: boolean | undefined;
170
+ breakExcuteIfEmpty?: boolean | undefined;
171
+ }): this;
172
+ /** AND key NOT GLOB CONCAT('%', :value, '%') 注意:GLOB是大小写敏感like*/
173
+ notGlob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
174
+ paramName?: string | undefined;
175
+ skipEmptyString?: boolean | undefined;
176
+ breakExcuteIfEmpty?: boolean | undefined;
177
+ }): this;
178
+ /** AND key GLOB CONCAT('%', :value) 注意:GLOB是大小写敏感like*/
179
+ leftGlob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
180
+ paramName?: string | undefined;
181
+ skipEmptyString?: boolean | undefined;
182
+ breakExcuteIfEmpty?: boolean | undefined;
183
+ }): this;
184
+ /** AND key NOT GLOB CONCAT('%', :value) 注意:GLOB是大小写敏感like*/
185
+ notLeftGlob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
186
+ paramName?: string | undefined;
187
+ skipEmptyString?: boolean | undefined;
188
+ breakExcuteIfEmpty?: boolean | undefined;
189
+ }): this;
190
+ /** AND key GLOB CONCAT(:value, '%') 注意:GLOB是大小写敏感like*/
191
+ rightGlob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
192
+ paramName?: string | undefined;
193
+ skipEmptyString?: boolean | undefined;
194
+ breakExcuteIfEmpty?: boolean | undefined;
195
+ }): this;
196
+ /** AND key NOT GLOB CONCAT(:value, '%') 注意:GLOB是大小写敏感like*/
197
+ notRightGlob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
198
+ paramName?: string | undefined;
199
+ skipEmptyString?: boolean | undefined;
200
+ breakExcuteIfEmpty?: boolean | undefined;
201
+ }): this;
202
+ /** AND key GLOB :value 注意:GLOB是大小写敏感like,这里不拼接%*/
203
+ preciseGlob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
204
+ paramName?: string | undefined;
205
+ skipEmptyString?: boolean | undefined;
206
+ breakExcuteIfEmpty?: boolean | undefined;
207
+ }): this;
208
+ /** AND key NOT GLOB :value 注意:GLOB是大小写敏感like,这里不拼接%*/
209
+ notPreciseGlob(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
210
+ paramName?: string | undefined;
211
+ skipEmptyString?: boolean | undefined;
212
+ breakExcuteIfEmpty?: boolean | undefined;
213
+ }): this;
214
+ /** AND :value LIKE CONCAT('%', key, '%') */
215
+ like2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
216
+ paramName?: string | undefined;
217
+ skipEmptyString?: boolean | undefined;
218
+ breakExcuteIfEmpty?: boolean | undefined;
219
+ }): this;
220
+ /** AND :value NOT LIKE CONCAT('%', key, '%') */
221
+ notLike2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
222
+ paramName?: string | undefined;
223
+ skipEmptyString?: boolean | undefined;
224
+ breakExcuteIfEmpty?: boolean | undefined;
225
+ }): this;
226
+ /** AND :value NOT LIKE CONCAT('%', key) */
227
+ leftLike2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
228
+ paramName?: string | undefined;
229
+ skipEmptyString?: boolean | undefined;
230
+ breakExcuteIfEmpty?: boolean | undefined;
231
+ }): this;
232
+ /** AND :value LIKE CONCAT('%', key) */
233
+ notLeftLike2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
234
+ paramName?: string | undefined;
235
+ skipEmptyString?: boolean | undefined;
236
+ breakExcuteIfEmpty?: boolean | undefined;
237
+ }): this;
238
+ /** AND :value LIKE CONCAT(key, '%') */
239
+ rightLike2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
240
+ paramName?: string | undefined;
241
+ skipEmptyString?: boolean | undefined;
242
+ breakExcuteIfEmpty?: boolean | undefined;
243
+ }): this;
244
+ /** AND :value NOT LIKE CONCAT(key, '%') */
245
+ notRightLike2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
246
+ paramName?: string | undefined;
247
+ skipEmptyString?: boolean | undefined;
248
+ breakExcuteIfEmpty?: boolean | undefined;
249
+ }): this;
250
+ /** AND :value LIKE key 注意:不会拼接% */
251
+ PreciseLike2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
252
+ paramName?: string | undefined;
253
+ skipEmptyString?: boolean | undefined;
254
+ breakExcuteIfEmpty?: boolean | undefined;
255
+ }): this;
256
+ /** AND :value NOT LIKE key 注意:不会拼接%*/
257
+ notPreciseLike2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
258
+ paramName?: string | undefined;
259
+ skipEmptyString?: boolean | undefined;
260
+ breakExcuteIfEmpty?: boolean | undefined;
261
+ }): this;
262
+ /** AND :value GLOB CONCAT('%', key, '%') 注意:GLOB是大小写敏感like */
263
+ glob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
264
+ paramName?: string | undefined;
265
+ skipEmptyString?: boolean | undefined;
266
+ breakExcuteIfEmpty?: boolean | undefined;
267
+ }): this;
268
+ /** AND :value NOT GLOB CONCAT('%', key, '%') 注意:GLOB是大小写敏感like*/
269
+ notGlob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
270
+ paramName?: string | undefined;
271
+ skipEmptyString?: boolean | undefined;
272
+ breakExcuteIfEmpty?: boolean | undefined;
273
+ }): this;
274
+ /** AND :value GLOB CONCAT('%', key) 注意:GLOB是大小写敏感like*/
275
+ leftGlob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
276
+ paramName?: string | undefined;
277
+ skipEmptyString?: boolean | undefined;
278
+ breakExcuteIfEmpty?: boolean | undefined;
279
+ }): this;
280
+ /** AND :value NOT GLOB CONCAT('%', key) 注意:GLOB是大小写敏感like*/
281
+ notLeftGlob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
282
+ paramName?: string | undefined;
283
+ skipEmptyString?: boolean | undefined;
284
+ breakExcuteIfEmpty?: boolean | undefined;
285
+ }): this;
286
+ /** AND :value GLOB CONCAT(key, '%') 注意:GLOB是大小写敏感like*/
287
+ rightGlob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
288
+ paramName?: string | undefined;
289
+ skipEmptyString?: boolean | undefined;
290
+ breakExcuteIfEmpty?: boolean | undefined;
291
+ }): this;
292
+ /** AND :value NOT GLOB CONCAT(key, '%') 注意:GLOB是大小写敏感like*/
293
+ notRightGlob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
294
+ paramName?: string | undefined;
295
+ skipEmptyString?: boolean | undefined;
296
+ breakExcuteIfEmpty?: boolean | undefined;
297
+ }): this;
298
+ /** AND :value GLOB key 注意:GLOB是大小写敏感like,这里不拼接%*/
299
+ preciseGlob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
300
+ paramName?: string | undefined;
301
+ skipEmptyString?: boolean | undefined;
302
+ breakExcuteIfEmpty?: boolean | undefined;
303
+ }): this;
304
+ /** AND :value NOT GLOB key 注意:GLOB是大小写敏感like,这里不拼接%*/
305
+ notPreciseGlob2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
306
+ paramName?: string | undefined;
307
+ skipEmptyString?: boolean | undefined;
308
+ breakExcuteIfEmpty?: boolean | undefined;
309
+ }): this;
310
+ /** AND key IN (:value) */
311
+ in(key: keyof T, value: Array<string | number>, { paramName, breakExcuteIfEmpty }?: {
312
+ paramName?: string | undefined;
313
+ breakExcuteIfEmpty?: boolean | undefined;
314
+ }): this;
315
+ /** AND key NOT IN (:value) */
316
+ notIn(key: keyof T, value: Array<string | number>, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
317
+ paramName?: string | undefined;
318
+ skipEmptyString?: boolean | undefined;
319
+ breakExcuteIfEmpty?: boolean | undefined;
320
+ }): this;
321
+ /** AND :value IN (key1, key2, ...) */
322
+ in2(key: (keyof T)[], value: string | number, { paramName, breakExcuteIfEmpty }?: {
323
+ paramName?: string | undefined;
324
+ breakExcuteIfEmpty?: boolean | undefined;
325
+ }): this;
326
+ /** AND :value NOT IN (key1, key2, ...) */
327
+ notIn2(key: (keyof T)[], value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
328
+ paramName?: string | undefined;
329
+ skipEmptyString?: boolean | undefined;
330
+ breakExcuteIfEmpty?: boolean | undefined;
331
+ }): this;
332
+ /** AND key IS NULL */
333
+ isNULL(key: keyof T): this;
334
+ /** AND key IS NOT NULL */
335
+ isNotNULL(key: keyof T): this;
336
+ /** AND (key IS NULL OR key = '') */
337
+ isEmpty(key: keyof T): this;
338
+ /** AND key IS NOT NULL AND key <> ''*/
339
+ isNotEmpty(key: keyof T): this;
340
+ /** AND key BETWEEN :value1 AND :value2 */
341
+ between(key: keyof T, value1: string | number, value2: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
342
+ paramName?: string | undefined;
343
+ skipEmptyString?: boolean | undefined;
344
+ breakExcuteIfEmpty?: boolean | undefined;
345
+ }): this;
346
+ /** AND key NOT BETWEEN :value1 AND :value2 */
347
+ notBetween(key: keyof T, value1: string | number, value2: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
348
+ paramName?: string | undefined;
349
+ skipEmptyString?: boolean | undefined;
350
+ breakExcuteIfEmpty?: boolean | undefined;
351
+ }): this;
352
+ /** AND POW(2, key) & :value */
353
+ pow(key: keyof T, value: number, { paramName, breakExcuteIfEmpty }?: {
354
+ paramName?: string | undefined;
355
+ breakExcuteIfEmpty?: boolean | undefined;
356
+ }): this;
357
+ /** AND NOT POW(2, key) & :value */
358
+ notPow(key: keyof T, value: number, { paramName, breakExcuteIfEmpty }?: {
359
+ paramName?: string | undefined;
360
+ breakExcuteIfEmpty?: boolean | undefined;
361
+ }): this;
362
+ /** AND POW(2, :value) & key */
363
+ pow2(key: keyof T, value: number, { paramName, breakExcuteIfEmpty }?: {
364
+ paramName?: string | undefined;
365
+ breakExcuteIfEmpty?: boolean | undefined;
366
+ }): this;
367
+ /** AND NOT POW(2, :value) & key */
368
+ notPow2(key: keyof T, value: number, { paramName, breakExcuteIfEmpty }?: {
369
+ paramName?: string | undefined;
370
+ breakExcuteIfEmpty?: boolean | undefined;
371
+ }): this;
372
+ /** AND POW(2, key1) & key2 */
373
+ powWith(key: keyof T, values: Array<number | string>, { paramName, breakExcuteIfEmpty }?: {
374
+ paramName?: string | undefined;
375
+ breakExcuteIfEmpty?: boolean | undefined;
376
+ }): this;
377
+ /** AND NOT POW(2, key1) & key2 */
378
+ notPowWith(key: keyof T, values: Array<number | string>, { paramName, breakExcuteIfEmpty }?: {
379
+ paramName?: string | undefined;
380
+ breakExcuteIfEmpty?: boolean | undefined;
381
+ }): this;
382
+ /** AND MATCH(key1, key2, key3...) AGAINST (:value) */
383
+ match(value: string, keys: (keyof T)[], { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
384
+ paramName?: string | undefined;
385
+ skipEmptyString?: boolean | undefined;
386
+ breakExcuteIfEmpty?: boolean | undefined;
387
+ }): this;
388
+ /** AND NOT MATCH(key1, key2, key3...) AGAINST (:value) */
389
+ notMatch(value: string, keys: (keyof T)[], { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
390
+ paramName?: string | undefined;
391
+ skipEmptyString?: boolean | undefined;
392
+ breakExcuteIfEmpty?: boolean | undefined;
393
+ }): this;
394
+ /** AND MATCH(key1, key2, key3...) AGAINST (:value) IN BOOLEAN MODE*/
395
+ matchBoolean(value: string, keys: (keyof T)[], { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
396
+ paramName?: string | undefined;
397
+ skipEmptyString?: boolean | undefined;
398
+ breakExcuteIfEmpty?: boolean | undefined;
399
+ }): this;
400
+ /** AND NOT MATCH(key1, key2, key3...) AGAINST (:value) IN BOOLEAN MODE */
401
+ notMatchBoolean(value: string, keys: (keyof T)[], { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
402
+ paramName?: string | undefined;
403
+ skipEmptyString?: boolean | undefined;
404
+ breakExcuteIfEmpty?: boolean | undefined;
405
+ }): this;
406
+ /** AND MATCH(key1, key2, key3...) AGAINST (:value) WITH QUERY EXPANSION*/
407
+ matchQuery(value: string, keys: (keyof T)[], { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
408
+ paramName?: string | undefined;
409
+ skipEmptyString?: boolean | undefined;
410
+ breakExcuteIfEmpty?: boolean | undefined;
411
+ }): this;
412
+ /** AND NOT MATCH(key1, key2, key3...) AGAINST (:value) WITH QUERY EXPANSION*/
413
+ notMatchQuery(value: string, keys: (keyof T)[], { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
414
+ paramName?: string | undefined;
415
+ skipEmptyString?: boolean | undefined;
416
+ breakExcuteIfEmpty?: boolean | undefined;
417
+ }): this;
418
+ /** AND LOCATE(key, :value) > 0 */
419
+ includes(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
420
+ paramName?: string | undefined;
421
+ skipEmptyString?: boolean | undefined;
422
+ breakExcuteIfEmpty?: boolean | undefined;
423
+ }): this;
424
+ /** AND NOT LOCATE(key, :value) = 0 */
425
+ notIncludes(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
426
+ paramName?: string | undefined;
427
+ skipEmptyString?: boolean | undefined;
428
+ breakExcuteIfEmpty?: boolean | undefined;
429
+ }): this;
430
+ /** AND LOCATE(:value, key) > 0 */
431
+ includes2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
432
+ paramName?: string | undefined;
433
+ skipEmptyString?: boolean | undefined;
434
+ breakExcuteIfEmpty?: boolean | undefined;
435
+ }): this;
436
+ /** AND NOT LOCATE(:value, key) = 0 */
437
+ notIncludes2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
438
+ paramName?: string | undefined;
439
+ skipEmptyString?: boolean | undefined;
440
+ breakExcuteIfEmpty?: boolean | undefined;
441
+ }): this;
442
+ /** AND FIND_IN_SET(:value, key) */
443
+ findInSet(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
444
+ paramName?: string | undefined;
445
+ skipEmptyString?: boolean | undefined;
446
+ breakExcuteIfEmpty?: boolean | undefined;
447
+ }): this;
448
+ /** AND FIND_IN_SET(key, :value) */
449
+ findInSet2(key: keyof T, value: string | number, { paramName, skipEmptyString, breakExcuteIfEmpty }?: {
450
+ paramName?: string | undefined;
451
+ skipEmptyString?: boolean | undefined;
452
+ breakExcuteIfEmpty?: boolean | undefined;
453
+ }): this;
454
+ and(fn: StreamQuery<T> | ((stream: StreamQuery<T>) => boolean | void)): this;
455
+ or(fn: StreamQuery<T> | ((stream: StreamQuery<T>) => boolean | void)): this;
456
+ /**
457
+ * sql WHERE 查询语句拼接:注意若有JOIN,需要写明别名。本表别名为t.例如:
458
+ * ```
459
+ * where('t.name > :name', {name: 1});
460
+ * where('(t.name > :name OR t.name <> :name)', {name: 1});
461
+ * ```
462
+ */
463
+ where(sql: string, param?: Record<string, any>): this;
464
+ /** SET key = IFNULL(key, 0) + :value */
465
+ incr(key: keyof T, value?: number): this;
466
+ /** GROUP BY key1, key2, ... */
467
+ groupBy(...keys: (keyof T)[]): this;
468
+ /** GROUP BY key1, key2, ... */
469
+ groupBy2(...keys: string[]): this;
470
+ /** ORDER BY key1 ASC, key2 ASC, ... */
471
+ asc(...keys: (keyof T)[]): this;
472
+ /** ORDER BY key1 ASC, key2 ASC, ... */
473
+ asc2(...keys: string[]): this;
474
+ /** ORDER BY key1 DESC, key2 DESC, ... */
475
+ desc(...keys: (keyof T)[]): this;
476
+ /** ORDER BY key1 DESC, key2 DESC, ... */
477
+ desc2(...keys: string[]): this;
478
+ /** LIMIT :startRow, :pageSize */
479
+ limit(startRow: number, pageSize: number): this;
480
+ /** LIMIT ((:pageNumber || 1) - 1) * :pageSize, :pageSize */
481
+ page(pageNumber: number, pageSize: number): this;
482
+ distinct(on?: boolean): this;
483
+ /** COUNT(DISTINCT key) */
484
+ countDistinct(key: keyof T, countName?: string): this;
485
+ count(countName?: string): this;
486
+ sum(key: keyof T, legName?: string, distinct?: boolean): this;
487
+ avg(key: keyof T, legName?: string, distinct?: boolean): this;
488
+ max(key: keyof T, legName?: string, distinct?: boolean): this;
489
+ min(key: keyof T, legName?: string, distinct?: boolean): this;
490
+ /** GROUP_CONCAT([DISTINCT] key [ORDER BY :asc ASC] [ORDER BY :asc DESC] [SEPARATOR :separator]) */
491
+ groupConcat(key: keyof T, param?: {
492
+ distinct?: boolean;
493
+ separator?: string;
494
+ asc?: (keyof T)[];
495
+ desc?: (keyof T)[];
496
+ groupName?: string;
497
+ }): this;
498
+ select(...key: (keyof T)[]): this;
499
+ /**
500
+ * sql查询语句拼接:注意若有JOIN,需要写明别名。本表别名为t.例如:
501
+ * ```
502
+ * select2('t.name, t.age, ISNULL(t.type, :type)', {type: 1});
503
+ * select2('MAX(t.age) MAXAge');
504
+ * ```
505
+ */
506
+ select2(sql: string, param?: Record<string, any>): this;
507
+ update(key: keyof T, value: T[keyof T]): this;
508
+ /** update语句拼接:注意若有JOIN,需要写明别名。本表别名为t */
509
+ update2(sql: string, param?: Record<string, any>): this;
510
+ updateT(t: Partial<T>): this;
511
+ /** SET key = REPLACE(key, :valueToFind, :valueToReplace) */
512
+ replace(key: keyof T, valueToFind: T[keyof T], valueToReplace: T[keyof T]): this;
513
+ excuteSelect<L = T>(option?: MethodOption & {
514
+ sync?: SyncMode.Async;
515
+ selectResult?: SelectResult.RS_CS | SelectResult.RS_C;
516
+ hump?: boolean;
517
+ mapper?: string | SqlMapper;
518
+ mapperIfUndefined?: MapperIfUndefined;
519
+ dataConvert?: Record<string, string>;
520
+ }): Promise<L[]>;
521
+ excuteSelect<L = T>(option: MethodOption & {
522
+ sync?: SyncMode.Async;
523
+ selectResult: SelectResult.R_CS_Assert | SelectResult.R_C_Assert;
524
+ errorMsg?: string;
525
+ hump?: boolean;
526
+ mapper?: string | SqlMapper;
527
+ mapperIfUndefined?: MapperIfUndefined;
528
+ dataConvert?: Record<string, string>;
529
+ }): Promise<L>;
530
+ excuteSelect<L = T>(option: MethodOption & {
531
+ sync?: SyncMode.Async;
532
+ selectResult: SelectResult.R_CS_NotSure | SelectResult.R_C_NotSure;
533
+ hump?: boolean;
534
+ mapper?: string | SqlMapper;
535
+ mapperIfUndefined?: MapperIfUndefined;
536
+ dataConvert?: Record<string, string>;
537
+ }): Promise<L | null>;
538
+ excuteSelect<L = T>(option: MethodOption & {
539
+ sync: SyncMode.Sync;
540
+ selectResult: SelectResult.RS_CS | SelectResult.RS_C;
541
+ hump?: boolean;
542
+ mapper?: string | SqlMapper;
543
+ mapperIfUndefined?: MapperIfUndefined;
544
+ dataConvert?: Record<string, string>;
545
+ }): L[];
546
+ excuteSelect<L = T>(option: MethodOption & {
547
+ sync: SyncMode.Sync;
548
+ selectResult: SelectResult.R_CS_Assert | SelectResult.R_C_Assert;
549
+ errorMsg?: string;
550
+ hump?: boolean;
551
+ mapper?: string | SqlMapper;
552
+ mapperIfUndefined?: MapperIfUndefined;
553
+ dataConvert?: Record<string, string>;
554
+ }): L;
555
+ excuteSelect<L = T>(option: MethodOption & {
556
+ sync: SyncMode.Sync;
557
+ selectResult: SelectResult.R_CS_NotSure | SelectResult.R_C_NotSure;
558
+ hump?: boolean;
559
+ mapper?: string | SqlMapper;
560
+ mapperIfUndefined?: MapperIfUndefined;
561
+ dataConvert?: Record<string, string>;
562
+ }): L | null;
563
+ excutePage<L = T>(option?: MethodOption & {
564
+ sync?: SyncMode;
565
+ hump?: boolean;
566
+ mapper?: string | SqlMapper;
567
+ mapperIfUndefined?: MapperIfUndefined;
568
+ dataConvert?: Record<string, string>;
569
+ }): PageQuery<L> | Promise<PageQuery<L>>;
570
+ excuteUpdate(option?: MethodOption & {
571
+ sync?: SyncMode.Async;
572
+ skipUndefined?: boolean;
573
+ skipNull?: boolean;
574
+ skipEmptyString?: boolean;
575
+ }): Promise<number>;
576
+ excuteUpdate(option: MethodOption & {
577
+ sync: SyncMode.Sync;
578
+ skipUndefined?: boolean;
579
+ skipNull?: boolean;
580
+ skipEmptyString?: boolean;
581
+ }): number;
582
+ excuteDelete(option?: MethodOption & {
583
+ sync?: SyncMode.Async;
584
+ forceDelete?: boolean;
585
+ }): Promise<number>;
586
+ excuteDelete(option: MethodOption & {
587
+ sync: SyncMode.Sync;
588
+ forceDelete?: boolean;
589
+ }): number;
590
+ private _where;
591
+ private _;
592
+ private _2;
593
+ private __;
594
+ private _null;
595
+ private _key;
596
+ private _between;
597
+ private _in;
598
+ private _in2;
599
+ private _shift;
600
+ private _match;
601
+ private _pow;
602
+ private _pow2;
603
+ private _like;
604
+ private _like2;
605
+ private _includes;
606
+ private _includes2;
607
+ }