data-api-client 2.0.0 → 2.1.0

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 @@
1
+ {"version":3,"file":"mysql2.d.ts","sourceRoot":"","sources":["../../src/compat/mysql2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,350 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createMySQLConnection = createMySQLConnection;
7
+ exports.createMySQLPool = createMySQLPool;
8
+ const events_1 = require("events");
9
+ const sqlstring_1 = __importDefault(require("sqlstring"));
10
+ const client_1 = require("../client");
11
+ const errors_1 = require("./errors");
12
+ function formatMySQLQuery(sql, params = []) {
13
+ return sqlstring_1.default.format(sql, params);
14
+ }
15
+ function convertToMySQL2Result(result, _sql) {
16
+ if (result.records && Array.isArray(result.records)) {
17
+ const rows = result.records;
18
+ let fields = [];
19
+ if (rows.length > 0) {
20
+ const firstRow = rows[0];
21
+ if (Array.isArray(firstRow)) {
22
+ fields = firstRow.map((_, index) => ({ name: index.toString() }));
23
+ }
24
+ else {
25
+ fields = Object.keys(firstRow).map((name) => ({ name }));
26
+ }
27
+ }
28
+ return [rows, fields];
29
+ }
30
+ else if (result.insertId !== undefined) {
31
+ const queryResult = {
32
+ insertId: result.insertId,
33
+ affectedRows: result.numberOfRecordsUpdated || 1,
34
+ warningCount: 0
35
+ };
36
+ return [queryResult, []];
37
+ }
38
+ else if (result.numberOfRecordsUpdated !== undefined) {
39
+ const queryResult = {
40
+ affectedRows: result.numberOfRecordsUpdated,
41
+ changedRows: result.numberOfRecordsUpdated,
42
+ warningCount: 0
43
+ };
44
+ return [queryResult, []];
45
+ }
46
+ else {
47
+ const queryResult = {
48
+ affectedRows: 0,
49
+ warningCount: 0
50
+ };
51
+ return [queryResult, []];
52
+ }
53
+ }
54
+ function createMySQLConnection(config) {
55
+ const mysqlConfig = {
56
+ ...config,
57
+ engine: 'mysql'
58
+ };
59
+ const core = (0, client_1.init)(mysqlConfig);
60
+ const eventEmitter = new events_1.EventEmitter();
61
+ let transactionId;
62
+ async function executeQuery(sqlOrOptions, params) {
63
+ let sql;
64
+ let values = [];
65
+ let rowsAsArray = false;
66
+ if (typeof sqlOrOptions === 'string') {
67
+ sql = sqlOrOptions;
68
+ values = params || [];
69
+ }
70
+ else {
71
+ sql = sqlOrOptions.sql;
72
+ values = sqlOrOptions.values || params || [];
73
+ rowsAsArray = sqlOrOptions.rowsAsArray || false;
74
+ }
75
+ const formattedSql = formatMySQLQuery(sql, values);
76
+ const queryOptions = {
77
+ sql: formattedSql,
78
+ hydrateColumnNames: !rowsAsArray,
79
+ includeResultMetadata: true
80
+ };
81
+ if (transactionId) {
82
+ queryOptions.transactionId = transactionId;
83
+ }
84
+ const result = await core.query(queryOptions);
85
+ return convertToMySQL2Result(result, sql);
86
+ }
87
+ const connection = Object.assign(eventEmitter, {
88
+ connect(callback) {
89
+ if (callback) {
90
+ process.nextTick(() => {
91
+ connection.emit('connect');
92
+ callback(null);
93
+ });
94
+ return;
95
+ }
96
+ connection.emit('connect');
97
+ return Promise.resolve();
98
+ },
99
+ end(callback) {
100
+ if (callback) {
101
+ process.nextTick(() => {
102
+ connection.emit('end');
103
+ callback();
104
+ });
105
+ return;
106
+ }
107
+ connection.emit('end');
108
+ return Promise.resolve();
109
+ },
110
+ query(sqlOrOptions, paramsOrCallback, callback) {
111
+ let params = [];
112
+ let cb;
113
+ if (typeof sqlOrOptions === 'object' && 'sql' in sqlOrOptions) {
114
+ if (typeof paramsOrCallback === 'function') {
115
+ cb = paramsOrCallback;
116
+ }
117
+ else if (Array.isArray(paramsOrCallback)) {
118
+ params = paramsOrCallback;
119
+ cb = callback;
120
+ }
121
+ }
122
+ else {
123
+ if (typeof paramsOrCallback === 'function') {
124
+ cb = paramsOrCallback;
125
+ }
126
+ else if (Array.isArray(paramsOrCallback)) {
127
+ params = paramsOrCallback;
128
+ cb = callback;
129
+ }
130
+ }
131
+ if (cb) {
132
+ return executeQuery(sqlOrOptions, params)
133
+ .then(([results, fields]) => {
134
+ cb(null, results, fields);
135
+ })
136
+ .catch((err) => {
137
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
138
+ connection.emit('error', mysqlError);
139
+ cb(mysqlError, null, null);
140
+ });
141
+ }
142
+ return executeQuery(sqlOrOptions, params).catch((err) => {
143
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
144
+ connection.emit('error', mysqlError);
145
+ throw mysqlError;
146
+ });
147
+ },
148
+ execute(sqlOrOptions, paramsOrCallback, callback) {
149
+ return connection.query(sqlOrOptions, paramsOrCallback, callback);
150
+ },
151
+ beginTransaction(callback) {
152
+ const doBegin = async () => {
153
+ const txResult = await core.beginTransaction();
154
+ transactionId = txResult.transactionId;
155
+ };
156
+ if (callback) {
157
+ doBegin()
158
+ .then(() => callback(null))
159
+ .catch((err) => {
160
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
161
+ connection.emit('error', mysqlError);
162
+ callback(mysqlError);
163
+ });
164
+ return;
165
+ }
166
+ return doBegin().catch((err) => {
167
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
168
+ connection.emit('error', mysqlError);
169
+ throw mysqlError;
170
+ });
171
+ },
172
+ commit(callback) {
173
+ const doCommit = async () => {
174
+ if (transactionId) {
175
+ await core.commitTransaction({ transactionId });
176
+ transactionId = undefined;
177
+ }
178
+ };
179
+ if (callback) {
180
+ doCommit()
181
+ .then(() => callback())
182
+ .catch((err) => {
183
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
184
+ connection.emit('error', mysqlError);
185
+ callback(mysqlError);
186
+ });
187
+ return;
188
+ }
189
+ return doCommit().catch((err) => {
190
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
191
+ connection.emit('error', mysqlError);
192
+ throw mysqlError;
193
+ });
194
+ },
195
+ rollback(callback) {
196
+ const doRollback = async () => {
197
+ if (transactionId) {
198
+ await core.rollbackTransaction({ transactionId });
199
+ transactionId = undefined;
200
+ }
201
+ };
202
+ if (callback) {
203
+ doRollback()
204
+ .then(() => callback())
205
+ .catch((err) => {
206
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
207
+ connection.emit('error', mysqlError);
208
+ callback(mysqlError);
209
+ });
210
+ return;
211
+ }
212
+ return doRollback().catch((err) => {
213
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
214
+ connection.emit('error', mysqlError);
215
+ throw mysqlError;
216
+ });
217
+ },
218
+ ping(callback) {
219
+ const doPing = async () => {
220
+ await core.query('SELECT 1');
221
+ };
222
+ if (callback) {
223
+ doPing()
224
+ .then(() => callback())
225
+ .catch((err) => {
226
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
227
+ connection.emit('error', mysqlError);
228
+ callback(mysqlError);
229
+ });
230
+ return;
231
+ }
232
+ return doPing().catch((err) => {
233
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
234
+ connection.emit('error', mysqlError);
235
+ throw mysqlError;
236
+ });
237
+ }
238
+ });
239
+ return connection;
240
+ }
241
+ function createMySQLPool(config) {
242
+ const mysqlConfig = {
243
+ ...config,
244
+ engine: 'mysql'
245
+ };
246
+ const core = (0, client_1.init)(mysqlConfig);
247
+ const eventEmitter = new events_1.EventEmitter();
248
+ async function executePoolQuery(sqlOrOptions, params) {
249
+ let sql;
250
+ let values = [];
251
+ let rowsAsArray = false;
252
+ if (typeof sqlOrOptions === 'string') {
253
+ sql = sqlOrOptions;
254
+ values = params || [];
255
+ }
256
+ else {
257
+ sql = sqlOrOptions.sql;
258
+ values = sqlOrOptions.values || params || [];
259
+ rowsAsArray = sqlOrOptions.rowsAsArray || false;
260
+ }
261
+ const formattedSql = formatMySQLQuery(sql, values);
262
+ const result = await core.query({
263
+ sql: formattedSql,
264
+ hydrateColumnNames: !rowsAsArray,
265
+ includeResultMetadata: true
266
+ });
267
+ return convertToMySQL2Result(result, sql);
268
+ }
269
+ const pool = Object.assign(eventEmitter, {
270
+ getConnection(callback) {
271
+ const getConn = () => {
272
+ const connection = createMySQLConnection(config);
273
+ connection.release = () => {
274
+ pool.emit('release', connection);
275
+ };
276
+ pool.emit('acquire', connection);
277
+ pool.emit('connection', connection);
278
+ return connection;
279
+ };
280
+ if (!callback) {
281
+ return Promise.resolve(getConn());
282
+ }
283
+ try {
284
+ const connection = getConn();
285
+ process.nextTick(() => callback(null, connection));
286
+ }
287
+ catch (err) {
288
+ process.nextTick(() => callback(err, null));
289
+ }
290
+ },
291
+ end(callback) {
292
+ if (callback) {
293
+ process.nextTick(() => callback());
294
+ return;
295
+ }
296
+ return Promise.resolve();
297
+ },
298
+ query(sqlOrOptions, paramsOrCallback, callback) {
299
+ let params = [];
300
+ let cb;
301
+ if (typeof sqlOrOptions === 'object' && 'sql' in sqlOrOptions) {
302
+ if (typeof paramsOrCallback === 'function') {
303
+ cb = paramsOrCallback;
304
+ }
305
+ else if (Array.isArray(paramsOrCallback)) {
306
+ params = paramsOrCallback;
307
+ cb = callback;
308
+ }
309
+ }
310
+ else {
311
+ if (typeof paramsOrCallback === 'function') {
312
+ cb = paramsOrCallback;
313
+ }
314
+ else if (Array.isArray(paramsOrCallback)) {
315
+ params = paramsOrCallback;
316
+ cb = callback;
317
+ }
318
+ }
319
+ if (cb) {
320
+ return executePoolQuery(sqlOrOptions, params)
321
+ .then(([results, fields]) => {
322
+ cb(null, results, fields);
323
+ })
324
+ .catch((err) => {
325
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
326
+ pool.emit('error', mysqlError);
327
+ cb(mysqlError, null, null);
328
+ });
329
+ }
330
+ return executePoolQuery(sqlOrOptions, params).catch((err) => {
331
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
332
+ pool.emit('error', mysqlError);
333
+ throw mysqlError;
334
+ });
335
+ },
336
+ execute(sqlOrOptions, paramsOrCallback, callback) {
337
+ return pool.query(sqlOrOptions, paramsOrCallback, callback);
338
+ },
339
+ releaseConnection(_connection) {
340
+ },
341
+ promise() {
342
+ return pool;
343
+ },
344
+ unprepare(_sql) {
345
+ return { sql: _sql };
346
+ },
347
+ config: mysqlConfig
348
+ });
349
+ return pool;
350
+ }
@@ -0,0 +1,142 @@
1
+ import { EventEmitter } from 'events';
2
+ import type { DataAPIClientConfig } from '../types';
3
+ import { type PostgresError } from './errors';
4
+ export interface PgQueryResult<R = any> {
5
+ rows: R[];
6
+ rowCount: number;
7
+ command: string;
8
+ fields: Array<{
9
+ name: string;
10
+ dataTypeID?: number;
11
+ }>;
12
+ oid?: number;
13
+ }
14
+ export interface PgQueryConfig {
15
+ name?: string;
16
+ text: string;
17
+ values?: any[];
18
+ rowMode?: 'array' | 'object';
19
+ types?: any;
20
+ }
21
+ export interface PgCompatClient extends EventEmitter {
22
+ connect(): Promise<void>;
23
+ connect(callback: (err: Error) => void): void;
24
+ end(): Promise<void>;
25
+ end(callback: (err?: Error) => void): void;
26
+ query<T extends {
27
+ submit: (connection: any) => void;
28
+ }>(queryStream: T): T;
29
+ query<R extends any[] = any[]>(queryConfig: {
30
+ text: string;
31
+ values?: any[];
32
+ rowMode: 'array';
33
+ }, values?: any[]): Promise<{
34
+ rows: R[];
35
+ rowCount: number;
36
+ command: string;
37
+ fields: Array<{
38
+ name: string;
39
+ }>;
40
+ }>;
41
+ query<R = any>(queryConfig: {
42
+ text: string;
43
+ values?: any[];
44
+ }): Promise<PgQueryResult<R>>;
45
+ query<R = any>(queryTextOrConfig: string | {
46
+ text: string;
47
+ values?: any[];
48
+ }, values?: any[]): Promise<PgQueryResult<R>>;
49
+ query<R extends any[] = any[]>(queryConfig: {
50
+ text: string;
51
+ values?: any[];
52
+ rowMode: 'array';
53
+ }, callback: (err: Error, result: {
54
+ rows: R[];
55
+ rowCount: number;
56
+ command: string;
57
+ fields: Array<{
58
+ name: string;
59
+ }>;
60
+ }) => void): void;
61
+ query<R = any>(queryTextOrConfig: string | {
62
+ text: string;
63
+ values?: any[];
64
+ }, callback: (err: Error, result: PgQueryResult<R>) => void): void;
65
+ query<R = any>(queryText: string, values: any[], callback: (err: Error, result: PgQueryResult<R>) => void): void;
66
+ release(err?: Error | boolean): void;
67
+ copyFrom(queryText: string): any;
68
+ copyTo(queryText: string): any;
69
+ pauseDrain(): void;
70
+ resumeDrain(): void;
71
+ escapeIdentifier(str: string): string;
72
+ escapeLiteral(str: string): string;
73
+ setTypeParser(oid: number, format: string | ((text: string) => any), parseFn?: (text: string) => any): void;
74
+ getTypeParser(oid: number, format?: string): (text: string) => any;
75
+ on(event: 'drain', listener: () => void): this;
76
+ on(event: 'error', listener: (err: PostgresError) => void): this;
77
+ on(event: 'notice', listener: (notice: any) => void): this;
78
+ on(event: 'notification', listener: (message: any) => void): this;
79
+ on(event: 'end', listener: () => void): this;
80
+ on(event: string, listener: (...args: any[]) => void): this;
81
+ }
82
+ export interface PgCompatPool extends EventEmitter {
83
+ readonly totalCount: number;
84
+ readonly idleCount: number;
85
+ readonly waitingCount: number;
86
+ readonly expiredCount: number;
87
+ readonly ending: boolean;
88
+ readonly ended: boolean;
89
+ options: any;
90
+ connect(): Promise<PgCompatClient>;
91
+ connect(callback: (err: Error | null, client?: PgCompatClient) => void): void;
92
+ end(): Promise<void>;
93
+ end(callback: (err?: Error) => void): void;
94
+ query<T extends {
95
+ submit: (connection: any) => void;
96
+ }>(queryStream: T): T;
97
+ query<R extends any[] = any[]>(queryConfig: {
98
+ text: string;
99
+ values?: any[];
100
+ rowMode: 'array';
101
+ }, values?: any[]): Promise<{
102
+ rows: R[];
103
+ rowCount: number;
104
+ command: string;
105
+ fields: Array<{
106
+ name: string;
107
+ }>;
108
+ }>;
109
+ query<R = any>(queryConfig: {
110
+ text: string;
111
+ values?: any[];
112
+ }): Promise<PgQueryResult<R>>;
113
+ query<R = any>(queryTextOrConfig: string | {
114
+ text: string;
115
+ values?: any[];
116
+ }, values?: any[]): Promise<PgQueryResult<R>>;
117
+ query<R extends any[] = any[]>(queryConfig: {
118
+ text: string;
119
+ values?: any[];
120
+ rowMode: 'array';
121
+ }, callback: (err: Error, result: {
122
+ rows: R[];
123
+ rowCount: number;
124
+ command: string;
125
+ fields: Array<{
126
+ name: string;
127
+ }>;
128
+ }) => void): void;
129
+ query<R = any>(queryTextOrConfig: string | {
130
+ text: string;
131
+ values?: any[];
132
+ }, callback: (err: Error, result: PgQueryResult<R>) => void): void;
133
+ query<R = any>(queryText: string, values: any[], callback: (err: Error, result: PgQueryResult<R>) => void): void;
134
+ on(event: 'error', listener: (err: PostgresError) => void): this;
135
+ on(event: 'connect', listener: (client: PgCompatClient) => void): this;
136
+ on(event: 'acquire', listener: (client: PgCompatClient) => void): this;
137
+ on(event: 'remove', listener: (client: PgCompatClient) => void): this;
138
+ on(event: string, listener: (...args: any[]) => void): this;
139
+ }
140
+ export declare function createPgClient(config: DataAPIClientConfig): PgCompatClient;
141
+ export declare function createPgPool(config: DataAPIClientConfig): PgCompatPool;
142
+ //# sourceMappingURL=pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/compat/pg.ts"],"names":[],"mappings":"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"}