data-api-client 2.0.0 → 2.1.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,12 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapToMySQLError = exports.mapToPostgresError = exports.createMySQLPool = exports.createMySQLConnection = exports.createPgPool = exports.createPgClient = void 0;
4
+ var pg_1 = require("./pg");
5
+ Object.defineProperty(exports, "createPgClient", { enumerable: true, get: function () { return pg_1.createPgClient; } });
6
+ Object.defineProperty(exports, "createPgPool", { enumerable: true, get: function () { return pg_1.createPgPool; } });
7
+ var mysql2_1 = require("./mysql2");
8
+ Object.defineProperty(exports, "createMySQLConnection", { enumerable: true, get: function () { return mysql2_1.createMySQLConnection; } });
9
+ Object.defineProperty(exports, "createMySQLPool", { enumerable: true, get: function () { return mysql2_1.createMySQLPool; } });
10
+ var errors_1 = require("./errors");
11
+ Object.defineProperty(exports, "mapToPostgresError", { enumerable: true, get: function () { return errors_1.mapToPostgresError; } });
12
+ Object.defineProperty(exports, "mapToMySQLError", { enumerable: true, get: function () { return errors_1.mapToMySQLError; } });
@@ -0,0 +1,134 @@
1
+ import { EventEmitter } from 'events';
2
+ import type { DataAPIClientConfig } from '../types';
3
+ export interface PoolConnection extends Connection {
4
+ release?: () => void;
5
+ }
6
+ export interface Connection extends EventEmitter {
7
+ connect(callback?: (err: Error | null) => void): Promise<void>;
8
+ end(callback?: (err?: Error) => void): Promise<void>;
9
+ query<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
10
+ query<R = any>(sql: string, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
11
+ query<R = any>(sql: string, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
12
+ query<R = any>(sql: string, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
13
+ query<R = any>(options: {
14
+ sql: string;
15
+ values?: any[];
16
+ namedPlaceholders?: boolean;
17
+ }): Promise<[R[] | MySQL2QueryResult<R>, any]>;
18
+ query<R = any>(options: {
19
+ sql: string;
20
+ values?: any[];
21
+ namedPlaceholders?: boolean;
22
+ }, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
23
+ query<R = any>(options: {
24
+ sql: string;
25
+ values?: any[];
26
+ namedPlaceholders?: boolean;
27
+ }, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
28
+ query<R = any>(options: {
29
+ sql: string;
30
+ values?: any[];
31
+ namedPlaceholders?: boolean;
32
+ }, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
33
+ execute<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
34
+ execute<R = any>(sql: string, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
35
+ execute<R = any>(sql: string, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
36
+ execute<R = any>(sql: string, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
37
+ execute<R = any>(options: {
38
+ sql: string;
39
+ values?: any[];
40
+ namedPlaceholders?: boolean;
41
+ }): Promise<[R[] | MySQL2QueryResult<R>, any]>;
42
+ execute<R = any>(options: {
43
+ sql: string;
44
+ values?: any[];
45
+ namedPlaceholders?: boolean;
46
+ }, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
47
+ execute<R = any>(options: {
48
+ sql: string;
49
+ values?: any[];
50
+ namedPlaceholders?: boolean;
51
+ }, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
52
+ execute<R = any>(options: {
53
+ sql: string;
54
+ values?: any[];
55
+ namedPlaceholders?: boolean;
56
+ }, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
57
+ beginTransaction(callback?: (err: Error | null) => void): Promise<void>;
58
+ commit(callback?: (err?: Error) => void): Promise<void>;
59
+ rollback(callback?: (err?: Error) => void): Promise<void>;
60
+ ping(callback?: (err?: Error) => void): Promise<void>;
61
+ }
62
+ export interface Pool extends EventEmitter {
63
+ getConnection(callback: (err: Error | null, connection: PoolConnection) => any): void;
64
+ getConnection(): Promise<PoolConnection>;
65
+ end(callback?: (err?: Error) => void): Promise<void>;
66
+ query<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
67
+ query<R = any>(sql: string, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
68
+ query<R = any>(sql: string, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
69
+ query<R = any>(sql: string, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
70
+ query<R = any>(options: {
71
+ sql: string;
72
+ values?: any[];
73
+ namedPlaceholders?: boolean;
74
+ }): Promise<[R[] | MySQL2QueryResult<R>, any]>;
75
+ query<R = any>(options: {
76
+ sql: string;
77
+ values?: any[];
78
+ namedPlaceholders?: boolean;
79
+ }, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
80
+ query<R = any>(options: {
81
+ sql: string;
82
+ values?: any[];
83
+ namedPlaceholders?: boolean;
84
+ }, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
85
+ query<R = any>(options: {
86
+ sql: string;
87
+ values?: any[];
88
+ namedPlaceholders?: boolean;
89
+ }, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
90
+ execute<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
91
+ execute<R = any>(sql: string, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
92
+ execute<R = any>(sql: string, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
93
+ execute<R = any>(sql: string, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
94
+ execute<R = any>(options: {
95
+ sql: string;
96
+ values?: any[];
97
+ namedPlaceholders?: boolean;
98
+ }): Promise<[R[] | MySQL2QueryResult<R>, any]>;
99
+ execute<R = any>(options: {
100
+ sql: string;
101
+ values?: any[];
102
+ namedPlaceholders?: boolean;
103
+ }, params: any[] | Record<string, any>): Promise<[R[] | MySQL2QueryResult<R>, any]>;
104
+ execute<R = any>(options: {
105
+ sql: string;
106
+ values?: any[];
107
+ namedPlaceholders?: boolean;
108
+ }, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
109
+ execute<R = any>(options: {
110
+ sql: string;
111
+ values?: any[];
112
+ namedPlaceholders?: boolean;
113
+ }, params: any[] | Record<string, any>, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
114
+ releaseConnection(connection: PoolConnection): void;
115
+ promise(): Pool;
116
+ unprepare(sql: string): any;
117
+ config: DataAPIClientConfig;
118
+ }
119
+ export interface MySQL2QueryResult<R = any> {
120
+ rows?: R[];
121
+ fields?: Array<{
122
+ name: string;
123
+ type?: number;
124
+ table?: string;
125
+ database?: string;
126
+ }>;
127
+ insertId?: number;
128
+ affectedRows?: number;
129
+ changedRows?: number;
130
+ warningCount?: number;
131
+ }
132
+ export declare function createMySQLConnection(config: DataAPIClientConfig): Connection;
133
+ export declare function createMySQLPool(config: DataAPIClientConfig): Pool;
134
+ //# sourceMappingURL=mysql2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql2.d.ts","sourceRoot":"","sources":["../../src/compat/mysql2.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGrC,OAAO,KAAK,EAAE,mBAAmB,EAAoD,MAAM,UAAU,CAAA;AAOrG,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpD,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACvE,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5G,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACjI,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7C,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACzE,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9G,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACnI,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7C,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,IAAK,SAAQ,YAAY;IACxC,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,EAAE,cAAc,KAAK,GAAG,GAAG,IAAI,CAAA;IACrF,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;IACxC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpD,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACvE,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5G,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACjI,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7C,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACzE,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9G,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACnI,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7C,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,EACrE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GACtF,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAA;IACnD,OAAO,IAAI,IAAI,CAAA;IACf,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;CAC5B;AAGD,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,GAAG;IAExC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IACV,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAC,CAAA;IAEF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA8GD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,UAAU,CAqQ7E;AASD,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAoLjE"}
@@ -0,0 +1,392 @@
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 convertNamedPlaceholders(sql, params) {
16
+ const values = [];
17
+ const regex = /:(\w+)\b/g;
18
+ const convertedSql = sql.replace(regex, (match, paramName) => {
19
+ if (paramName in params) {
20
+ values.push(params[paramName]);
21
+ return '?';
22
+ }
23
+ return match;
24
+ });
25
+ return { sql: convertedSql, values };
26
+ }
27
+ function convertToMySQL2Result(result, _sql) {
28
+ if (result.records && Array.isArray(result.records)) {
29
+ const rows = result.records;
30
+ let fields = [];
31
+ if (rows.length > 0) {
32
+ const firstRow = rows[0];
33
+ if (Array.isArray(firstRow)) {
34
+ fields = firstRow.map((_, index) => ({ name: index.toString() }));
35
+ }
36
+ else {
37
+ fields = Object.keys(firstRow).map((name) => ({ name }));
38
+ }
39
+ }
40
+ return [rows, fields];
41
+ }
42
+ else if (result.insertId !== undefined) {
43
+ const queryResult = {
44
+ insertId: result.insertId,
45
+ affectedRows: result.numberOfRecordsUpdated || 1,
46
+ warningCount: 0
47
+ };
48
+ return [queryResult, []];
49
+ }
50
+ else if (result.numberOfRecordsUpdated !== undefined) {
51
+ const queryResult = {
52
+ affectedRows: result.numberOfRecordsUpdated,
53
+ changedRows: result.numberOfRecordsUpdated,
54
+ warningCount: 0
55
+ };
56
+ return [queryResult, []];
57
+ }
58
+ else {
59
+ const queryResult = {
60
+ affectedRows: 0,
61
+ warningCount: 0
62
+ };
63
+ return [queryResult, []];
64
+ }
65
+ }
66
+ function createMySQLConnection(config) {
67
+ const mysqlConfig = {
68
+ ...config,
69
+ engine: 'mysql'
70
+ };
71
+ const core = (0, client_1.init)(mysqlConfig);
72
+ const eventEmitter = new events_1.EventEmitter();
73
+ let transactionId;
74
+ async function executeQuery(sqlOrOptions, params) {
75
+ let sql;
76
+ let values = [];
77
+ let rowsAsArray = false;
78
+ let useNamedPlaceholders = mysqlConfig.namedPlaceholders || false;
79
+ if (typeof sqlOrOptions === 'string') {
80
+ sql = sqlOrOptions;
81
+ values = params || [];
82
+ }
83
+ else {
84
+ sql = sqlOrOptions.sql;
85
+ values = sqlOrOptions.values || params || [];
86
+ rowsAsArray = sqlOrOptions.rowsAsArray || false;
87
+ if (sqlOrOptions.namedPlaceholders !== undefined) {
88
+ useNamedPlaceholders = sqlOrOptions.namedPlaceholders;
89
+ }
90
+ }
91
+ let formattedSql;
92
+ if (useNamedPlaceholders && !Array.isArray(values) && typeof values === 'object' && Object.keys(values).length > 0) {
93
+ const converted = convertNamedPlaceholders(sql, values);
94
+ formattedSql = formatMySQLQuery(converted.sql, converted.values);
95
+ }
96
+ else {
97
+ formattedSql = formatMySQLQuery(sql, Array.isArray(values) ? values : []);
98
+ }
99
+ const queryOptions = {
100
+ sql: formattedSql,
101
+ hydrateColumnNames: !rowsAsArray,
102
+ includeResultMetadata: true
103
+ };
104
+ if (transactionId) {
105
+ queryOptions.transactionId = transactionId;
106
+ }
107
+ const result = await core.query(queryOptions);
108
+ return convertToMySQL2Result(result, sql);
109
+ }
110
+ const connection = Object.assign(eventEmitter, {
111
+ connect(callback) {
112
+ if (callback) {
113
+ process.nextTick(() => {
114
+ connection.emit('connect');
115
+ callback(null);
116
+ });
117
+ return;
118
+ }
119
+ connection.emit('connect');
120
+ return Promise.resolve();
121
+ },
122
+ end(callback) {
123
+ if (callback) {
124
+ process.nextTick(() => {
125
+ connection.emit('end');
126
+ callback();
127
+ });
128
+ return;
129
+ }
130
+ connection.emit('end');
131
+ return Promise.resolve();
132
+ },
133
+ query(sqlOrOptions, paramsOrCallback, callback) {
134
+ let params = [];
135
+ let cb;
136
+ if (typeof sqlOrOptions === 'object' && 'sql' in sqlOrOptions) {
137
+ if (typeof paramsOrCallback === 'function') {
138
+ cb = paramsOrCallback;
139
+ }
140
+ else if (paramsOrCallback !== undefined) {
141
+ params = paramsOrCallback;
142
+ if (callback !== undefined) {
143
+ cb = callback;
144
+ }
145
+ }
146
+ }
147
+ else {
148
+ if (typeof paramsOrCallback === 'function') {
149
+ cb = paramsOrCallback;
150
+ }
151
+ else if (paramsOrCallback !== undefined) {
152
+ params = paramsOrCallback;
153
+ if (callback !== undefined) {
154
+ cb = callback;
155
+ }
156
+ }
157
+ }
158
+ if (cb) {
159
+ return executeQuery(sqlOrOptions, params)
160
+ .then(([results, fields]) => {
161
+ cb(null, results, fields);
162
+ })
163
+ .catch((err) => {
164
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
165
+ connection.emit('error', mysqlError);
166
+ cb(mysqlError, null, null);
167
+ });
168
+ }
169
+ return executeQuery(sqlOrOptions, params).catch((err) => {
170
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
171
+ connection.emit('error', mysqlError);
172
+ throw mysqlError;
173
+ });
174
+ },
175
+ execute(sqlOrOptions, paramsOrCallback, callback) {
176
+ return connection.query(sqlOrOptions, paramsOrCallback, callback);
177
+ },
178
+ beginTransaction(callback) {
179
+ const doBegin = async () => {
180
+ const txResult = await core.beginTransaction();
181
+ transactionId = txResult.transactionId;
182
+ };
183
+ if (callback) {
184
+ doBegin()
185
+ .then(() => callback(null))
186
+ .catch((err) => {
187
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
188
+ connection.emit('error', mysqlError);
189
+ callback(mysqlError);
190
+ });
191
+ return;
192
+ }
193
+ return doBegin().catch((err) => {
194
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
195
+ connection.emit('error', mysqlError);
196
+ throw mysqlError;
197
+ });
198
+ },
199
+ commit(callback) {
200
+ const doCommit = async () => {
201
+ if (transactionId) {
202
+ await core.commitTransaction({ transactionId });
203
+ transactionId = undefined;
204
+ }
205
+ };
206
+ if (callback) {
207
+ doCommit()
208
+ .then(() => callback())
209
+ .catch((err) => {
210
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
211
+ connection.emit('error', mysqlError);
212
+ callback(mysqlError);
213
+ });
214
+ return;
215
+ }
216
+ return doCommit().catch((err) => {
217
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
218
+ connection.emit('error', mysqlError);
219
+ throw mysqlError;
220
+ });
221
+ },
222
+ rollback(callback) {
223
+ const doRollback = async () => {
224
+ if (transactionId) {
225
+ await core.rollbackTransaction({ transactionId });
226
+ transactionId = undefined;
227
+ }
228
+ };
229
+ if (callback) {
230
+ doRollback()
231
+ .then(() => callback())
232
+ .catch((err) => {
233
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
234
+ connection.emit('error', mysqlError);
235
+ callback(mysqlError);
236
+ });
237
+ return;
238
+ }
239
+ return doRollback().catch((err) => {
240
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
241
+ connection.emit('error', mysqlError);
242
+ throw mysqlError;
243
+ });
244
+ },
245
+ ping(callback) {
246
+ const doPing = async () => {
247
+ await core.query('SELECT 1');
248
+ };
249
+ if (callback) {
250
+ doPing()
251
+ .then(() => callback())
252
+ .catch((err) => {
253
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
254
+ connection.emit('error', mysqlError);
255
+ callback(mysqlError);
256
+ });
257
+ return;
258
+ }
259
+ return doPing().catch((err) => {
260
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
261
+ connection.emit('error', mysqlError);
262
+ throw mysqlError;
263
+ });
264
+ }
265
+ });
266
+ return connection;
267
+ }
268
+ function createMySQLPool(config) {
269
+ const mysqlConfig = {
270
+ ...config,
271
+ engine: 'mysql'
272
+ };
273
+ const core = (0, client_1.init)(mysqlConfig);
274
+ const eventEmitter = new events_1.EventEmitter();
275
+ async function executePoolQuery(sqlOrOptions, params) {
276
+ let sql;
277
+ let values = [];
278
+ let rowsAsArray = false;
279
+ let useNamedPlaceholders = mysqlConfig.namedPlaceholders || false;
280
+ if (typeof sqlOrOptions === 'string') {
281
+ sql = sqlOrOptions;
282
+ values = params || [];
283
+ }
284
+ else {
285
+ sql = sqlOrOptions.sql;
286
+ values = sqlOrOptions.values || params || [];
287
+ rowsAsArray = sqlOrOptions.rowsAsArray || false;
288
+ if (sqlOrOptions.namedPlaceholders !== undefined) {
289
+ useNamedPlaceholders = sqlOrOptions.namedPlaceholders;
290
+ }
291
+ }
292
+ let formattedSql;
293
+ if (useNamedPlaceholders && !Array.isArray(values) && typeof values === 'object' && Object.keys(values).length > 0) {
294
+ const converted = convertNamedPlaceholders(sql, values);
295
+ formattedSql = formatMySQLQuery(converted.sql, converted.values);
296
+ }
297
+ else {
298
+ formattedSql = formatMySQLQuery(sql, Array.isArray(values) ? values : []);
299
+ }
300
+ const result = await core.query({
301
+ sql: formattedSql,
302
+ hydrateColumnNames: !rowsAsArray,
303
+ includeResultMetadata: true
304
+ });
305
+ return convertToMySQL2Result(result, sql);
306
+ }
307
+ const pool = Object.assign(eventEmitter, {
308
+ getConnection(callback) {
309
+ const getConn = () => {
310
+ const connection = createMySQLConnection(config);
311
+ connection.release = () => {
312
+ pool.emit('release', connection);
313
+ };
314
+ pool.emit('acquire', connection);
315
+ pool.emit('connection', connection);
316
+ return connection;
317
+ };
318
+ if (!callback) {
319
+ return Promise.resolve(getConn());
320
+ }
321
+ try {
322
+ const connection = getConn();
323
+ process.nextTick(() => callback(null, connection));
324
+ }
325
+ catch (err) {
326
+ process.nextTick(() => callback(err, null));
327
+ }
328
+ },
329
+ end(callback) {
330
+ if (callback) {
331
+ process.nextTick(() => callback());
332
+ return;
333
+ }
334
+ return Promise.resolve();
335
+ },
336
+ query(sqlOrOptions, paramsOrCallback, callback) {
337
+ let params = [];
338
+ let cb;
339
+ if (typeof sqlOrOptions === 'object' && 'sql' in sqlOrOptions) {
340
+ if (typeof paramsOrCallback === 'function') {
341
+ cb = paramsOrCallback;
342
+ }
343
+ else if (paramsOrCallback !== undefined) {
344
+ params = paramsOrCallback;
345
+ if (callback !== undefined) {
346
+ cb = callback;
347
+ }
348
+ }
349
+ }
350
+ else {
351
+ if (typeof paramsOrCallback === 'function') {
352
+ cb = paramsOrCallback;
353
+ }
354
+ else if (paramsOrCallback !== undefined) {
355
+ params = paramsOrCallback;
356
+ if (callback !== undefined) {
357
+ cb = callback;
358
+ }
359
+ }
360
+ }
361
+ if (cb) {
362
+ return executePoolQuery(sqlOrOptions, params)
363
+ .then(([results, fields]) => {
364
+ cb(null, results, fields);
365
+ })
366
+ .catch((err) => {
367
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
368
+ pool.emit('error', mysqlError);
369
+ cb(mysqlError, null, null);
370
+ });
371
+ }
372
+ return executePoolQuery(sqlOrOptions, params).catch((err) => {
373
+ const mysqlError = (0, errors_1.mapToMySQLError)(err);
374
+ pool.emit('error', mysqlError);
375
+ throw mysqlError;
376
+ });
377
+ },
378
+ execute(sqlOrOptions, paramsOrCallback, callback) {
379
+ return pool.query(sqlOrOptions, paramsOrCallback, callback);
380
+ },
381
+ releaseConnection(_connection) {
382
+ },
383
+ promise() {
384
+ return pool;
385
+ },
386
+ unprepare(_sql) {
387
+ return { sql: _sql };
388
+ },
389
+ config: mysqlConfig
390
+ });
391
+ return pool;
392
+ }