mysql2 3.4.0 → 3.4.1

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.
@@ -0,0 +1,326 @@
1
+ interface Charsets {
2
+ BIG5_CHINESE_CI: number;
3
+ LATIN2_CZECH_CS: number;
4
+ DEC8_SWEDISH_CI: number;
5
+ CP850_GENERAL_CI: number;
6
+ LATIN1_GERMAN1_CI: number;
7
+ HP8_ENGLISH_CI: number;
8
+ KOI8R_GENERAL_CI: number;
9
+ LATIN1_SWEDISH_CI: number;
10
+ LATIN2_GENERAL_CI: number;
11
+ SWE7_SWEDISH_CI: number;
12
+ ASCII_GENERAL_CI: number;
13
+ UJIS_JAPANESE_CI: number;
14
+ SJIS_JAPANESE_CI: number;
15
+ CP1251_BULGARIAN_CI: number;
16
+ LATIN1_DANISH_CI: number;
17
+ HEBREW_GENERAL_CI: number;
18
+ TIS620_THAI_CI: number;
19
+ EUCKR_KOREAN_CI: number;
20
+ LATIN7_ESTONIAN_CS: number;
21
+ LATIN2_HUNGARIAN_CI: number;
22
+ KOI8U_GENERAL_CI: number;
23
+ CP1251_UKRAINIAN_CI: number;
24
+ GB2312_CHINESE_CI: number;
25
+ GREEK_GENERAL_CI: number;
26
+ CP1250_GENERAL_CI: number;
27
+ LATIN2_CROATIAN_CI: number;
28
+ GBK_CHINESE_CI: number;
29
+ CP1257_LITHUANIAN_CI: number;
30
+ LATIN5_TURKISH_CI: number;
31
+ LATIN1_GERMAN2_CI: number;
32
+ ARMSCII8_GENERAL_CI: number;
33
+ UTF8_GENERAL_CI: number;
34
+ CP1250_CZECH_CS: number;
35
+ UCS2_GENERAL_CI: number;
36
+ CP866_GENERAL_CI: number;
37
+ KEYBCS2_GENERAL_CI: number;
38
+ MACCE_GENERAL_CI: number;
39
+ MACROMAN_GENERAL_CI: number;
40
+ CP852_GENERAL_CI: number;
41
+ LATIN7_GENERAL_CI: number;
42
+ LATIN7_GENERAL_CS: number;
43
+ MACCE_BIN: number;
44
+ CP1250_CROATIAN_CI: number;
45
+ UTF8MB4_GENERAL_CI: number;
46
+ UTF8MB4_BIN: number;
47
+ LATIN1_BIN: number;
48
+ LATIN1_GENERAL_CI: number;
49
+ LATIN1_GENERAL_CS: number;
50
+ CP1251_BIN: number;
51
+ CP1251_GENERAL_CI: number;
52
+ CP1251_GENERAL_CS: number;
53
+ MACROMAN_BIN: number;
54
+ UTF16_GENERAL_CI: number;
55
+ UTF16_BIN: number;
56
+ UTF16LE_GENERAL_CI: number;
57
+ CP1256_GENERAL_CI: number;
58
+ CP1257_BIN: number;
59
+ CP1257_GENERAL_CI: number;
60
+ UTF32_GENERAL_CI: number;
61
+ UTF32_BIN: number;
62
+ UTF16LE_BIN: number;
63
+ BINARY: number;
64
+ ARMSCII8_BIN: number;
65
+ ASCII_BIN: number;
66
+ CP1250_BIN: number;
67
+ CP1256_BIN: number;
68
+ CP866_BIN: number;
69
+ DEC8_BIN: number;
70
+ GREEK_BIN: number;
71
+ HEBREW_BIN: number;
72
+ HP8_BIN: number;
73
+ KEYBCS2_BIN: number;
74
+ KOI8R_BIN: number;
75
+ KOI8U_BIN: number;
76
+ UTF8_TOLOWER_CI: number;
77
+ LATIN2_BIN: number;
78
+ LATIN5_BIN: number;
79
+ LATIN7_BIN: number;
80
+ CP850_BIN: number;
81
+ CP852_BIN: number;
82
+ SWE7_BIN: number;
83
+ UTF8_BIN: number;
84
+ BIG5_BIN: number;
85
+ EUCKR_BIN: number;
86
+ GB2312_BIN: number;
87
+ GBK_BIN: number;
88
+ SJIS_BIN: number;
89
+ TIS620_BIN: number;
90
+ UCS2_BIN: number;
91
+ UJIS_BIN: number;
92
+ GEOSTD8_GENERAL_CI: number;
93
+ GEOSTD8_BIN: number;
94
+ LATIN1_SPANISH_CI: number;
95
+ CP932_JAPANESE_CI: number;
96
+ CP932_BIN: number;
97
+ EUCJPMS_JAPANESE_CI: number;
98
+ EUCJPMS_BIN: number;
99
+ CP1250_POLISH_CI: number;
100
+ UTF16_UNICODE_CI: number;
101
+ UTF16_ICELANDIC_CI: number;
102
+ UTF16_LATVIAN_CI: number;
103
+ UTF16_ROMANIAN_CI: number;
104
+ UTF16_SLOVENIAN_CI: number;
105
+ UTF16_POLISH_CI: number;
106
+ UTF16_ESTONIAN_CI: number;
107
+ UTF16_SPANISH_CI: number;
108
+ UTF16_SWEDISH_CI: number;
109
+ UTF16_TURKISH_CI: number;
110
+ UTF16_CZECH_CI: number;
111
+ UTF16_DANISH_CI: number;
112
+ UTF16_LITHUANIAN_CI: number;
113
+ UTF16_SLOVAK_CI: number;
114
+ UTF16_SPANISH2_CI: number;
115
+ UTF16_ROMAN_CI: number;
116
+ UTF16_PERSIAN_CI: number;
117
+ UTF16_ESPERANTO_CI: number;
118
+ UTF16_HUNGARIAN_CI: number;
119
+ UTF16_SINHALA_CI: number;
120
+ UTF16_GERMAN2_CI: number;
121
+ UTF16_CROATIAN_CI: number;
122
+ UTF16_UNICODE_520_CI: number;
123
+ UTF16_VIETNAMESE_CI: number;
124
+ UCS2_UNICODE_CI: number;
125
+ UCS2_ICELANDIC_CI: number;
126
+ UCS2_LATVIAN_CI: number;
127
+ UCS2_ROMANIAN_CI: number;
128
+ UCS2_SLOVENIAN_CI: number;
129
+ UCS2_POLISH_CI: number;
130
+ UCS2_ESTONIAN_CI: number;
131
+ UCS2_SPANISH_CI: number;
132
+ UCS2_SWEDISH_CI: number;
133
+ UCS2_TURKISH_CI: number;
134
+ UCS2_CZECH_CI: number;
135
+ UCS2_DANISH_CI: number;
136
+ UCS2_LITHUANIAN_CI: number;
137
+ UCS2_SLOVAK_CI: number;
138
+ UCS2_SPANISH2_CI: number;
139
+ UCS2_ROMAN_CI: number;
140
+ UCS2_PERSIAN_CI: number;
141
+ UCS2_ESPERANTO_CI: number;
142
+ UCS2_HUNGARIAN_CI: number;
143
+ UCS2_SINHALA_CI: number;
144
+ UCS2_GERMAN2_CI: number;
145
+ UCS2_CROATIAN_CI: number;
146
+ UCS2_UNICODE_520_CI: number;
147
+ UCS2_VIETNAMESE_CI: number;
148
+ UCS2_GENERAL_MYSQL500_CI: number;
149
+ UTF32_UNICODE_CI: number;
150
+ UTF32_ICELANDIC_CI: number;
151
+ UTF32_LATVIAN_CI: number;
152
+ UTF32_ROMANIAN_CI: number;
153
+ UTF32_SLOVENIAN_CI: number;
154
+ UTF32_POLISH_CI: number;
155
+ UTF32_ESTONIAN_CI: number;
156
+ UTF32_SPANISH_CI: number;
157
+ UTF32_SWEDISH_CI: number;
158
+ UTF32_TURKISH_CI: number;
159
+ UTF32_CZECH_CI: number;
160
+ UTF32_DANISH_CI: number;
161
+ UTF32_LITHUANIAN_CI: number;
162
+ UTF32_SLOVAK_CI: number;
163
+ UTF32_SPANISH2_CI: number;
164
+ UTF32_ROMAN_CI: number;
165
+ UTF32_PERSIAN_CI: number;
166
+ UTF32_ESPERANTO_CI: number;
167
+ UTF32_HUNGARIAN_CI: number;
168
+ UTF32_SINHALA_CI: number;
169
+ UTF32_GERMAN2_CI: number;
170
+ UTF32_CROATIAN_CI: number;
171
+ UTF32_UNICODE_520_CI: number;
172
+ UTF32_VIETNAMESE_CI: number;
173
+ UTF8_UNICODE_CI: number;
174
+ UTF8_ICELANDIC_CI: number;
175
+ UTF8_LATVIAN_CI: number;
176
+ UTF8_ROMANIAN_CI: number;
177
+ UTF8_SLOVENIAN_CI: number;
178
+ UTF8_POLISH_CI: number;
179
+ UTF8_ESTONIAN_CI: number;
180
+ UTF8_SPANISH_CI: number;
181
+ UTF8_SWEDISH_CI: number;
182
+ UTF8_TURKISH_CI: number;
183
+ UTF8_CZECH_CI: number;
184
+ UTF8_DANISH_CI: number;
185
+ UTF8_LITHUANIAN_CI: number;
186
+ UTF8_SLOVAK_CI: number;
187
+ UTF8_SPANISH2_CI: number;
188
+ UTF8_ROMAN_CI: number;
189
+ UTF8_PERSIAN_CI: number;
190
+ UTF8_ESPERANTO_CI: number;
191
+ UTF8_HUNGARIAN_CI: number;
192
+ UTF8_SINHALA_CI: number;
193
+ UTF8_GERMAN2_CI: number;
194
+ UTF8_CROATIAN_CI: number;
195
+ UTF8_UNICODE_520_CI: number;
196
+ UTF8_VIETNAMESE_CI: number;
197
+ UTF8_GENERAL_MYSQL500_CI: number;
198
+ UTF8MB4_UNICODE_CI: number;
199
+ UTF8MB4_ICELANDIC_CI: number;
200
+ UTF8MB4_LATVIAN_CI: number;
201
+ UTF8MB4_ROMANIAN_CI: number;
202
+ UTF8MB4_SLOVENIAN_CI: number;
203
+ UTF8MB4_POLISH_CI: number;
204
+ UTF8MB4_ESTONIAN_CI: number;
205
+ UTF8MB4_SPANISH_CI: number;
206
+ UTF8MB4_SWEDISH_CI: number;
207
+ UTF8MB4_TURKISH_CI: number;
208
+ UTF8MB4_CZECH_CI: number;
209
+ UTF8MB4_DANISH_CI: number;
210
+ UTF8MB4_LITHUANIAN_CI: number;
211
+ UTF8MB4_SLOVAK_CI: number;
212
+ UTF8MB4_SPANISH2_CI: number;
213
+ UTF8MB4_ROMAN_CI: number;
214
+ UTF8MB4_PERSIAN_CI: number;
215
+ UTF8MB4_ESPERANTO_CI: number;
216
+ UTF8MB4_HUNGARIAN_CI: number;
217
+ UTF8MB4_SINHALA_CI: number;
218
+ UTF8MB4_GERMAN2_CI: number;
219
+ UTF8MB4_CROATIAN_CI: number;
220
+ UTF8MB4_UNICODE_520_CI: number;
221
+ UTF8MB4_VIETNAMESE_CI: number;
222
+ GB18030_CHINESE_CI: number;
223
+ GB18030_BIN: number;
224
+ GB18030_UNICODE_520_CI: number;
225
+ /** @deprecated */
226
+ UTF8_GENERAL50_CI: number;
227
+ UTF8MB4_0900_AI_CI: number;
228
+ UTF8MB4_DE_PB_0900_AI_CI: number;
229
+ UTF8MB4_IS_0900_AI_CI: number;
230
+ UTF8MB4_LV_0900_AI_CI: number;
231
+ UTF8MB4_RO_0900_AI_CI: number;
232
+ UTF8MB4_SL_0900_AI_CI: number;
233
+ UTF8MB4_PL_0900_AI_CI: number;
234
+ UTF8MB4_ET_0900_AI_CI: number;
235
+ UTF8MB4_ES_0900_AI_CI: number;
236
+ UTF8MB4_SV_0900_AI_CI: number;
237
+ UTF8MB4_TR_0900_AI_CI: number;
238
+ UTF8MB4_CS_0900_AI_CI: number;
239
+ UTF8MB4_DA_0900_AI_CI: number;
240
+ UTF8MB4_LT_0900_AI_CI: number;
241
+ UTF8MB4_SK_0900_AI_CI: number;
242
+ UTF8MB4_ES_TRAD_0900_AI_CI: number;
243
+ UTF8MB4_LA_0900_AI_CI: number;
244
+ UTF8MB4_EO_0900_AI_CI: number;
245
+ UTF8MB4_HU_0900_AI_CI: number;
246
+ UTF8MB4_HR_0900_AI_CI: number;
247
+ UTF8MB4_VI_0900_AI_CI: number;
248
+ UTF8MB4_0900_AS_CS: number;
249
+ UTF8MB4_DE_PB_0900_AS_CS: number;
250
+ UTF8MB4_IS_0900_AS_CS: number;
251
+ UTF8MB4_LV_0900_AS_CS: number;
252
+ UTF8MB4_RO_0900_AS_CS: number;
253
+ UTF8MB4_SL_0900_AS_CS: number;
254
+ UTF8MB4_PL_0900_AS_CS: number;
255
+ UTF8MB4_ET_0900_AS_CS: number;
256
+ UTF8MB4_ES_0900_AS_CS: number;
257
+ UTF8MB4_SV_0900_AS_CS: number;
258
+ UTF8MB4_TR_0900_AS_CS: number;
259
+ UTF8MB4_CS_0900_AS_CS: number;
260
+ UTF8MB4_DA_0900_AS_CS: number;
261
+ UTF8MB4_LT_0900_AS_CS: number;
262
+ UTF8MB4_SK_0900_AS_CS: number;
263
+ UTF8MB4_ES_TRAD_0900_AS_CS: number;
264
+ UTF8MB4_LA_0900_AS_CS: number;
265
+ UTF8MB4_EO_0900_AS_CS: number;
266
+ UTF8MB4_HU_0900_AS_CS: number;
267
+ UTF8MB4_HR_0900_AS_CS: number;
268
+ UTF8MB4_VI_0900_AS_CS: number;
269
+ UTF8MB4_JA_0900_AS_CS: number;
270
+ UTF8MB4_JA_0900_AS_CS_KS: number;
271
+ UTF8MB4_0900_AS_CI: number;
272
+ UTF8MB4_RU_0900_AI_CI: number;
273
+ UTF8MB4_RU_0900_AS_CS: number;
274
+ UTF8MB4_ZH_0900_AS_CS: number;
275
+ UTF8MB4_0900_BIN: number;
276
+
277
+ BIG5: number;
278
+ DEC8: number;
279
+ CP850: number;
280
+ HP8: number;
281
+ KOI8R: number;
282
+ LATIN1: number;
283
+ LATIN2: number;
284
+ SWE7: number;
285
+ ASCII: number;
286
+ UJIS: number;
287
+ SJIS: number;
288
+ HEBREW: number;
289
+ TIS620: number;
290
+ EUCKR: number;
291
+ KOI8U: number;
292
+ GB2312: number;
293
+ GREEK: number;
294
+ CP1250: number;
295
+ GBK: number;
296
+ LATIN5: number;
297
+ ARMSCII8: number;
298
+ UTF8: number;
299
+ UCS2: number;
300
+ CP866: number;
301
+ KEYBCS2: number;
302
+ MACCE: number;
303
+ MACROMAN: number;
304
+ CP852: number;
305
+ LATIN7: number;
306
+ UTF8MB4: number;
307
+ CP1251: number;
308
+ UTF16: number;
309
+ UTF16LE: number;
310
+ CP1256: number;
311
+ CP1257: number;
312
+ UTF32: number;
313
+ CP932: number;
314
+ EUCJPMS: number;
315
+ GB18030: number;
316
+ GEOSTD8: number;
317
+ }
318
+
319
+ /**
320
+ * Constant `Charsets`.
321
+ *
322
+ * Please note that `Charsets` can only be accessed from the `mysql` object and not imported directly.
323
+ */
324
+ declare const Charsets: Charsets;
325
+
326
+ export { Charsets };
@@ -0,0 +1,68 @@
1
+ interface Types {
2
+ 0x00: string;
3
+ 0x01: string;
4
+ 0x02: string;
5
+ 0x03: string;
6
+ 0x04: string;
7
+ 0x05: string;
8
+ 0x06: string;
9
+ 0x07: string;
10
+ 0x08: string;
11
+ 0x09: string;
12
+ 0x0a: string;
13
+ 0x0b: string;
14
+ 0x0c: string;
15
+ 0x0d: string;
16
+ 0x0e: string;
17
+ 0x0f: string;
18
+ 0x10: string;
19
+ 0xf5: string;
20
+ 0xf6: string;
21
+ 0xf7: string;
22
+ 0xf8: string;
23
+ 0xf9: string;
24
+ 0xfa: string;
25
+ 0xfb: string;
26
+ 0xfc: string;
27
+ 0xfd: string;
28
+ 0xfe: string;
29
+ 0xff: string;
30
+
31
+ DECIMAL: number;
32
+ TINY: number;
33
+ SHORT: number;
34
+ LONG: number;
35
+ FLOAT: number;
36
+ DOUBLE: number;
37
+ NULL: number;
38
+ TIMESTAMP: number;
39
+ LONGLONG: number;
40
+ INT24: number;
41
+ DATE: number;
42
+ TIME: number;
43
+ DATETIME: number;
44
+ YEAR: number;
45
+ NEWDATE: number;
46
+ VARCHAR: number;
47
+ BIT: number;
48
+ JSON: number;
49
+ NEWDECIMAL: number;
50
+ ENUM: number;
51
+ SET: number;
52
+ TINY_BLOB: number;
53
+ MEDIUM_BLOB: number;
54
+ LONG_BLOB: number;
55
+ BLOB: number;
56
+ VAR_STRING: number;
57
+ STRING: number;
58
+ GEOMETRY: number;
59
+ }
60
+
61
+ /**
62
+ * Constant `Types`.
63
+ *
64
+ * Please note that `Types` can only be accessed from the `mysql` object and not imported directly.
65
+ */
66
+ declare const Types: Types;
67
+
68
+ export { Types };
@@ -0,0 +1,5 @@
1
+ import { Types } from './Types.js';
2
+ import { Charsets } from './Charsets.js';
3
+ import { CharsetToEncoding } from './CharsetToEncoding.js';
4
+
5
+ export { Types, Charsets, CharsetToEncoding };
@@ -0,0 +1,4 @@
1
+ declare function setMaxParserCache(max: number): void;
2
+ declare function clearParserCache(): void;
3
+
4
+ export { setMaxParserCache, clearParserCache };
@@ -0,0 +1,3 @@
1
+ import { setMaxParserCache, clearParserCache } from './ParserCache.js';
2
+
3
+ export { setMaxParserCache, clearParserCache };
@@ -0,0 +1,104 @@
1
+ import {
2
+ OkPacket,
3
+ FieldPacket,
4
+ RowDataPacket,
5
+ ResultSetHeader,
6
+ } from '../packets/index.js';
7
+ import {
8
+ Query,
9
+ QueryError,
10
+ QueryOptions,
11
+ QueryableConstructor,
12
+ } from './Query.js';
13
+
14
+ export function ExecutableBase<T extends QueryableConstructor>(
15
+ Base: T = {} as T
16
+ ) {
17
+ return class extends Base {
18
+ execute<
19
+ T extends
20
+ | RowDataPacket[][]
21
+ | RowDataPacket[]
22
+ | OkPacket
23
+ | OkPacket[]
24
+ | ResultSetHeader
25
+ >(
26
+ sql: string,
27
+ callback?: (
28
+ err: QueryError | null,
29
+ result: T,
30
+ fields: FieldPacket[]
31
+ ) => any
32
+ ): Query;
33
+ execute<
34
+ T extends
35
+ | RowDataPacket[][]
36
+ | RowDataPacket[]
37
+ | OkPacket
38
+ | OkPacket[]
39
+ | ResultSetHeader
40
+ >(
41
+ sql: string,
42
+ values: any | any[] | { [param: string]: any },
43
+ callback?: (
44
+ err: QueryError | null,
45
+ result: T,
46
+ fields: FieldPacket[]
47
+ ) => any
48
+ ): Query;
49
+ execute<
50
+ T extends
51
+ | RowDataPacket[][]
52
+ | RowDataPacket[]
53
+ | OkPacket
54
+ | OkPacket[]
55
+ | ResultSetHeader
56
+ >(
57
+ options: QueryOptions,
58
+ callback?: (
59
+ err: QueryError | null,
60
+ result: T,
61
+ fields?: FieldPacket[]
62
+ ) => any
63
+ ): Query;
64
+ execute<
65
+ T extends
66
+ | RowDataPacket[][]
67
+ | RowDataPacket[]
68
+ | OkPacket
69
+ | OkPacket[]
70
+ | ResultSetHeader
71
+ >(
72
+ options: QueryOptions,
73
+ values: any | any[] | { [param: string]: any },
74
+ callback?: (
75
+ err: QueryError | null,
76
+ result: T,
77
+ fields: FieldPacket[]
78
+ ) => any
79
+ ): Query;
80
+
81
+ // Implementing all overload variations
82
+ /* eslint-disable @typescript-eslint/no-unused-vars */
83
+ execute(
84
+ options: QueryOptions | string,
85
+ values?:
86
+ | any
87
+ | any[]
88
+ | { [param: string]: any }
89
+ | ((
90
+ err: QueryError | null,
91
+ result: any,
92
+ fields?: FieldPacket[]
93
+ ) => any),
94
+ callback?: (
95
+ err: QueryError | null,
96
+ result: any,
97
+ fields: FieldPacket[]
98
+ ) => any
99
+ ): Query {
100
+ return new Query();
101
+ }
102
+ /* eslint-enable @typescript-eslint/no-unused-vars */
103
+ };
104
+ }
@@ -146,4 +146,6 @@ declare class Query extends Sequence {
146
146
  on(event: 'end', listener: () => any): this;
147
147
  }
148
148
 
149
+ export type QueryableConstructor<T = object> = new (...args: any[]) => T;
150
+
149
151
  export { Query };
@@ -0,0 +1,104 @@
1
+ import {
2
+ OkPacket,
3
+ FieldPacket,
4
+ RowDataPacket,
5
+ ResultSetHeader,
6
+ } from '../packets/index.js';
7
+ import {
8
+ Query,
9
+ QueryError,
10
+ QueryOptions,
11
+ QueryableConstructor,
12
+ } from './Query.js';
13
+
14
+ export function QueryableBase<T extends QueryableConstructor>(
15
+ Base: T = {} as T
16
+ ) {
17
+ return class extends Base {
18
+ query<
19
+ T extends
20
+ | RowDataPacket[][]
21
+ | RowDataPacket[]
22
+ | OkPacket
23
+ | OkPacket[]
24
+ | ResultSetHeader
25
+ >(
26
+ sql: string,
27
+ callback?: (
28
+ err: QueryError | null,
29
+ result: T,
30
+ fields: FieldPacket[]
31
+ ) => any
32
+ ): Query;
33
+ query<
34
+ T extends
35
+ | RowDataPacket[][]
36
+ | RowDataPacket[]
37
+ | OkPacket
38
+ | OkPacket[]
39
+ | ResultSetHeader
40
+ >(
41
+ sql: string,
42
+ values: any | any[] | { [param: string]: any },
43
+ callback?: (
44
+ err: QueryError | null,
45
+ result: T,
46
+ fields: FieldPacket[]
47
+ ) => any
48
+ ): Query;
49
+ query<
50
+ T extends
51
+ | RowDataPacket[][]
52
+ | RowDataPacket[]
53
+ | OkPacket
54
+ | OkPacket[]
55
+ | ResultSetHeader
56
+ >(
57
+ options: QueryOptions,
58
+ callback?: (
59
+ err: QueryError | null,
60
+ result: T,
61
+ fields?: FieldPacket[]
62
+ ) => any
63
+ ): Query;
64
+ query<
65
+ T extends
66
+ | RowDataPacket[][]
67
+ | RowDataPacket[]
68
+ | OkPacket
69
+ | OkPacket[]
70
+ | ResultSetHeader
71
+ >(
72
+ options: QueryOptions,
73
+ values: any | any[] | { [param: string]: any },
74
+ callback?: (
75
+ err: QueryError | null,
76
+ result: T,
77
+ fields: FieldPacket[]
78
+ ) => any
79
+ ): Query;
80
+
81
+ // Implementing all overload variations
82
+ /* eslint-disable @typescript-eslint/no-unused-vars */
83
+ query(
84
+ options: QueryOptions | string,
85
+ values?:
86
+ | any
87
+ | any[]
88
+ | { [param: string]: any }
89
+ | ((
90
+ err: QueryError | null,
91
+ result: any,
92
+ fields?: FieldPacket[]
93
+ ) => any),
94
+ callback?: (
95
+ err: QueryError | null,
96
+ result: any,
97
+ fields: FieldPacket[]
98
+ ) => any
99
+ ): Query {
100
+ return new Query();
101
+ }
102
+ /* eslint-enable @typescript-eslint/no-unused-vars */
103
+ };
104
+ }
@@ -0,0 +1,69 @@
1
+ import {
2
+ OkPacket,
3
+ FieldPacket,
4
+ RowDataPacket,
5
+ ResultSetHeader,
6
+ } from '../../packets/index.js';
7
+ import { Query, QueryOptions, QueryableConstructor } from '../Query.js';
8
+
9
+ export function ExecutableBase<T extends QueryableConstructor>(
10
+ Base: T = {} as T
11
+ ) {
12
+ return class extends Base {
13
+ execute<
14
+ T extends
15
+ | RowDataPacket[][]
16
+ | RowDataPacket[]
17
+ | OkPacket
18
+ | OkPacket[]
19
+ | ResultSetHeader
20
+ >(sql: string): Promise<[T, FieldPacket[]]>;
21
+ execute<
22
+ T extends
23
+ | RowDataPacket[][]
24
+ | RowDataPacket[]
25
+ | OkPacket
26
+ | OkPacket[]
27
+ | ResultSetHeader
28
+ >(
29
+ sql: string,
30
+ values: any | any[] | { [param: string]: any }
31
+ ): Promise<[T, FieldPacket[]]>;
32
+ execute<
33
+ T extends
34
+ | RowDataPacket[][]
35
+ | RowDataPacket[]
36
+ | OkPacket
37
+ | OkPacket[]
38
+ | ResultSetHeader
39
+ >(options: QueryOptions): Promise<[T, FieldPacket[]]>;
40
+ execute<
41
+ T extends
42
+ | RowDataPacket[][]
43
+ | RowDataPacket[]
44
+ | OkPacket
45
+ | OkPacket[]
46
+ | ResultSetHeader
47
+ >(
48
+ options: QueryOptions,
49
+ values: any | any[] | { [param: string]: any }
50
+ ): Promise<[T, FieldPacket[]]>;
51
+
52
+ // Implementing all overload variations
53
+ /* eslint-disable @typescript-eslint/no-unused-vars */
54
+ execute<
55
+ T extends
56
+ | RowDataPacket[][]
57
+ | RowDataPacket[]
58
+ | OkPacket
59
+ | OkPacket[]
60
+ | ResultSetHeader
61
+ >(
62
+ sql: string | QueryOptions,
63
+ values?: any | any[] | { [param: string]: any }
64
+ ): Promise<[T, FieldPacket[]]> {
65
+ return new Promise(() => new Query());
66
+ }
67
+ /* eslint-enable @typescript-eslint/no-unused-vars */
68
+ };
69
+ }