data-api-client 2.1.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.
- package/README.md +110 -1
- package/dist/compat/mysql2.d.ts +56 -8
- package/dist/compat/mysql2.d.ts.map +1 -1
- package/dist/compat/mysql2.js +52 -10
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -204,6 +204,7 @@ Below is a table containing all of the possible configuration options for the `d
|
|
|
204
204
|
| database | `string` | _Optional_ default database to use with queries. Can be overridden when querying. | |
|
|
205
205
|
| engine | `mysql` or `pg` | The type of database engine you're connecting to (MySQL or Postgres). | `pg` |
|
|
206
206
|
| hydrateColumnNames | `boolean` | When `true`, results will be returned as objects with column names as keys. If `false`, results will be returned as an array of values. | `true` |
|
|
207
|
+
| namedPlaceholders | `boolean` | Enable named placeholders (`:name` syntax) for mysql2 compatibility layer. When `true`, parameters use object format. Only applies to mysql2 compat layer. | `false` |
|
|
207
208
|
| options | `object` | An _optional_ configuration object that is passed directly into the RDSDataClient constructor. See [AWS SDK docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds-data/classes/rdsdataclient.html) for available options. | `{}` |
|
|
208
209
|
| formatOptions | `object` | Formatting options to auto parse dates and coerce native JavaScript date objects to supported date formats. Valid keys are `deserializeDate` and `treatAsLocalDate`. Both accept boolean values. | `deserializeDate: true, treatAsLocalDate: false` |
|
|
209
210
|
| retryOptions | `object` | Configuration for automatic retry logic. Valid keys are `enabled` (boolean), `maxRetries` (number), and `retryableErrors` (string array). | `enabled: true, maxRetries: 9` |
|
|
@@ -531,7 +532,7 @@ const connection = createMySQLConnection({
|
|
|
531
532
|
database: 'myDatabase'
|
|
532
533
|
})
|
|
533
534
|
|
|
534
|
-
// Use like mysql2/promise
|
|
535
|
+
// Use like mysql2/promise with positional placeholders
|
|
535
536
|
const [rows, fields] = await connection.query('SELECT * FROM users WHERE id = ?', [123])
|
|
536
537
|
await connection.execute('INSERT INTO users (name, email) VALUES (?, ?)', ['Alice', 'alice@example.com'])
|
|
537
538
|
|
|
@@ -559,6 +560,114 @@ const [rows] = await connection.query('SELECT * FROM users')
|
|
|
559
560
|
connection.release() // Optional - no-op for Data API
|
|
560
561
|
```
|
|
561
562
|
|
|
563
|
+
#### Named Placeholders Support
|
|
564
|
+
|
|
565
|
+
The mysql2 compatibility layer supports **named placeholders** (`:name` syntax), matching the behavior of the native mysql2 library's `namedPlaceholders` option:
|
|
566
|
+
|
|
567
|
+
```javascript
|
|
568
|
+
import { createMySQLConnection, createMySQLPool } from 'data-api-client/compat/mysql2'
|
|
569
|
+
|
|
570
|
+
// Create a connection with namedPlaceholders enabled
|
|
571
|
+
const connection = createMySQLConnection({
|
|
572
|
+
resourceArn: 'arn:aws:rds:us-east-1:XXXXXXXXXXXX:cluster:my-cluster',
|
|
573
|
+
secretArn: 'arn:aws:secretsmanager:us-east-1:XXXXXXXXXXXX:secret:mySecret',
|
|
574
|
+
database: 'myDatabase',
|
|
575
|
+
namedPlaceholders: true // Enable named placeholders
|
|
576
|
+
})
|
|
577
|
+
|
|
578
|
+
// Use named placeholders with object parameters
|
|
579
|
+
const [users] = await connection.query(
|
|
580
|
+
'SELECT * FROM users WHERE name = :name AND age > :age',
|
|
581
|
+
{ name: 'Alice', age: 25 }
|
|
582
|
+
)
|
|
583
|
+
|
|
584
|
+
// INSERT with named placeholders
|
|
585
|
+
await connection.query(
|
|
586
|
+
'INSERT INTO users (name, email, active) VALUES (:name, :email, :active)',
|
|
587
|
+
{ name: 'Bob', email: 'bob@example.com', active: true }
|
|
588
|
+
)
|
|
589
|
+
|
|
590
|
+
// UPDATE with named placeholders
|
|
591
|
+
await connection.query(
|
|
592
|
+
'UPDATE users SET age = :newAge WHERE id = :id',
|
|
593
|
+
{ id: 123, newAge: 30 }
|
|
594
|
+
)
|
|
595
|
+
|
|
596
|
+
// Named placeholders work with transactions
|
|
597
|
+
await connection.beginTransaction()
|
|
598
|
+
try {
|
|
599
|
+
await connection.query(
|
|
600
|
+
'INSERT INTO orders (user_id, total) VALUES (:userId, :total)',
|
|
601
|
+
{ userId: 123, total: 99.99 }
|
|
602
|
+
)
|
|
603
|
+
await connection.query(
|
|
604
|
+
'UPDATE users SET last_order = NOW() WHERE id = :userId',
|
|
605
|
+
{ userId: 123 }
|
|
606
|
+
)
|
|
607
|
+
await connection.commit()
|
|
608
|
+
} catch (err) {
|
|
609
|
+
await connection.rollback()
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
// Named placeholders also work with pools
|
|
613
|
+
const pool = createMySQLPool({
|
|
614
|
+
resourceArn: 'arn:...',
|
|
615
|
+
secretArn: 'arn:...',
|
|
616
|
+
database: 'myDatabase',
|
|
617
|
+
namedPlaceholders: true
|
|
618
|
+
})
|
|
619
|
+
|
|
620
|
+
const [results] = await pool.query(
|
|
621
|
+
'SELECT * FROM products WHERE category = :category AND price < :maxPrice',
|
|
622
|
+
{ category: 'electronics', maxPrice: 500 }
|
|
623
|
+
)
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
**Named Placeholders Features:**
|
|
627
|
+
- Use `:paramName` syntax in SQL (colon followed by identifier)
|
|
628
|
+
- Pass parameters as objects: `{ paramName: value }`
|
|
629
|
+
- Same parameter can be referenced multiple times in the query
|
|
630
|
+
- Works with all query types (SELECT, INSERT, UPDATE, DELETE)
|
|
631
|
+
- Fully compatible with transactions, pools, and callbacks
|
|
632
|
+
- Backward compatible: positional `?` placeholders still work when `namedPlaceholders` is disabled (default)
|
|
633
|
+
|
|
634
|
+
**Query-Level namedPlaceholders:**
|
|
635
|
+
|
|
636
|
+
You can also enable or disable named placeholders on a per-query basis, which overrides the connection-level setting:
|
|
637
|
+
|
|
638
|
+
```javascript
|
|
639
|
+
// Connection WITHOUT namedPlaceholders at config level
|
|
640
|
+
const connection = createMySQLConnection({
|
|
641
|
+
resourceArn: 'arn:...',
|
|
642
|
+
secretArn: 'arn:...',
|
|
643
|
+
database: 'myDatabase'
|
|
644
|
+
// namedPlaceholders NOT set (defaults to false)
|
|
645
|
+
})
|
|
646
|
+
|
|
647
|
+
// Enable namedPlaceholders for specific queries
|
|
648
|
+
const [rows] = await connection.query(
|
|
649
|
+
{
|
|
650
|
+
sql: 'SELECT * FROM users WHERE username = :username AND age > :minAge',
|
|
651
|
+
namedPlaceholders: true // Enable for this query only
|
|
652
|
+
},
|
|
653
|
+
{ username: 'john_doe', minAge: 25 }
|
|
654
|
+
)
|
|
655
|
+
|
|
656
|
+
// Or explicitly disable for a specific query (when connection has it enabled)
|
|
657
|
+
const [rows2] = await connection.query(
|
|
658
|
+
{
|
|
659
|
+
sql: 'SELECT * FROM users WHERE id = ?',
|
|
660
|
+
namedPlaceholders: false // Use positional placeholders for this query
|
|
661
|
+
},
|
|
662
|
+
[123]
|
|
663
|
+
)
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
This allows you to:
|
|
667
|
+
- Use named placeholders in specific queries without enabling it globally
|
|
668
|
+
- Mix named and positional placeholders in different queries
|
|
669
|
+
- Override connection-level settings when needed
|
|
670
|
+
|
|
562
671
|
### pg Compatibility
|
|
563
672
|
|
|
564
673
|
Use the Data API Client as a replacement for `pg` (node-postgres):
|
package/dist/compat/mysql2.d.ts
CHANGED
|
@@ -8,28 +8,52 @@ export interface Connection extends EventEmitter {
|
|
|
8
8
|
end(callback?: (err?: Error) => void): Promise<void>;
|
|
9
9
|
query<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
10
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[]): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
12
|
-
query<R = any>(sql: string, params: any[], 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
13
|
query<R = any>(options: {
|
|
14
14
|
sql: string;
|
|
15
15
|
values?: any[];
|
|
16
|
+
namedPlaceholders?: boolean;
|
|
16
17
|
}): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
17
18
|
query<R = any>(options: {
|
|
18
19
|
sql: string;
|
|
19
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;
|
|
20
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>;
|
|
21
33
|
execute<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
22
34
|
execute<R = any>(sql: string, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
|
|
23
|
-
execute<R = any>(sql: string, params: any[]): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
24
|
-
execute<R = any>(sql: string, params: any[], 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>;
|
|
25
37
|
execute<R = any>(options: {
|
|
26
38
|
sql: string;
|
|
27
39
|
values?: any[];
|
|
40
|
+
namedPlaceholders?: boolean;
|
|
28
41
|
}): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
29
42
|
execute<R = any>(options: {
|
|
30
43
|
sql: string;
|
|
31
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;
|
|
32
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>;
|
|
33
57
|
beginTransaction(callback?: (err: Error | null) => void): Promise<void>;
|
|
34
58
|
commit(callback?: (err?: Error) => void): Promise<void>;
|
|
35
59
|
rollback(callback?: (err?: Error) => void): Promise<void>;
|
|
@@ -41,28 +65,52 @@ export interface Pool extends EventEmitter {
|
|
|
41
65
|
end(callback?: (err?: Error) => void): Promise<void>;
|
|
42
66
|
query<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
43
67
|
query<R = any>(sql: string, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
|
|
44
|
-
query<R = any>(sql: string, params: any[]): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
45
|
-
query<R = any>(sql: string, params: any[], 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>;
|
|
46
70
|
query<R = any>(options: {
|
|
47
71
|
sql: string;
|
|
48
72
|
values?: any[];
|
|
73
|
+
namedPlaceholders?: boolean;
|
|
49
74
|
}): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
50
75
|
query<R = any>(options: {
|
|
51
76
|
sql: string;
|
|
52
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;
|
|
53
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>;
|
|
54
90
|
execute<R = any>(sql: string): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
55
91
|
execute<R = any>(sql: string, callback: (err: Error | null, results: R[] | MySQL2QueryResult<R>, fields: any) => void): Promise<void>;
|
|
56
|
-
execute<R = any>(sql: string, params: any[]): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
57
|
-
execute<R = any>(sql: string, params: any[], 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>;
|
|
58
94
|
execute<R = any>(options: {
|
|
59
95
|
sql: string;
|
|
60
96
|
values?: any[];
|
|
97
|
+
namedPlaceholders?: boolean;
|
|
61
98
|
}): Promise<[R[] | MySQL2QueryResult<R>, any]>;
|
|
62
99
|
execute<R = any>(options: {
|
|
63
100
|
sql: string;
|
|
64
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;
|
|
65
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>;
|
|
66
114
|
releaseConnection(connection: PoolConnection): void;
|
|
67
115
|
promise(): Pool;
|
|
68
116
|
unprepare(sql: string): any;
|
|
@@ -1 +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,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"mysql2.d.ts","sourceRoot":"","sources":["../../src/compat/mysql2.ts"],"names":[],"mappings":"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"}
|
package/dist/compat/mysql2.js
CHANGED
|
@@ -12,6 +12,18 @@ const errors_1 = require("./errors");
|
|
|
12
12
|
function formatMySQLQuery(sql, params = []) {
|
|
13
13
|
return sqlstring_1.default.format(sql, params);
|
|
14
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
|
+
}
|
|
15
27
|
function convertToMySQL2Result(result, _sql) {
|
|
16
28
|
if (result.records && Array.isArray(result.records)) {
|
|
17
29
|
const rows = result.records;
|
|
@@ -63,6 +75,7 @@ function createMySQLConnection(config) {
|
|
|
63
75
|
let sql;
|
|
64
76
|
let values = [];
|
|
65
77
|
let rowsAsArray = false;
|
|
78
|
+
let useNamedPlaceholders = mysqlConfig.namedPlaceholders || false;
|
|
66
79
|
if (typeof sqlOrOptions === 'string') {
|
|
67
80
|
sql = sqlOrOptions;
|
|
68
81
|
values = params || [];
|
|
@@ -71,8 +84,18 @@ function createMySQLConnection(config) {
|
|
|
71
84
|
sql = sqlOrOptions.sql;
|
|
72
85
|
values = sqlOrOptions.values || params || [];
|
|
73
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 : []);
|
|
74
98
|
}
|
|
75
|
-
const formattedSql = formatMySQLQuery(sql, values);
|
|
76
99
|
const queryOptions = {
|
|
77
100
|
sql: formattedSql,
|
|
78
101
|
hydrateColumnNames: !rowsAsArray,
|
|
@@ -114,18 +137,22 @@ function createMySQLConnection(config) {
|
|
|
114
137
|
if (typeof paramsOrCallback === 'function') {
|
|
115
138
|
cb = paramsOrCallback;
|
|
116
139
|
}
|
|
117
|
-
else if (
|
|
140
|
+
else if (paramsOrCallback !== undefined) {
|
|
118
141
|
params = paramsOrCallback;
|
|
119
|
-
|
|
142
|
+
if (callback !== undefined) {
|
|
143
|
+
cb = callback;
|
|
144
|
+
}
|
|
120
145
|
}
|
|
121
146
|
}
|
|
122
147
|
else {
|
|
123
148
|
if (typeof paramsOrCallback === 'function') {
|
|
124
149
|
cb = paramsOrCallback;
|
|
125
150
|
}
|
|
126
|
-
else if (
|
|
151
|
+
else if (paramsOrCallback !== undefined) {
|
|
127
152
|
params = paramsOrCallback;
|
|
128
|
-
|
|
153
|
+
if (callback !== undefined) {
|
|
154
|
+
cb = callback;
|
|
155
|
+
}
|
|
129
156
|
}
|
|
130
157
|
}
|
|
131
158
|
if (cb) {
|
|
@@ -249,6 +276,7 @@ function createMySQLPool(config) {
|
|
|
249
276
|
let sql;
|
|
250
277
|
let values = [];
|
|
251
278
|
let rowsAsArray = false;
|
|
279
|
+
let useNamedPlaceholders = mysqlConfig.namedPlaceholders || false;
|
|
252
280
|
if (typeof sqlOrOptions === 'string') {
|
|
253
281
|
sql = sqlOrOptions;
|
|
254
282
|
values = params || [];
|
|
@@ -257,8 +285,18 @@ function createMySQLPool(config) {
|
|
|
257
285
|
sql = sqlOrOptions.sql;
|
|
258
286
|
values = sqlOrOptions.values || params || [];
|
|
259
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 : []);
|
|
260
299
|
}
|
|
261
|
-
const formattedSql = formatMySQLQuery(sql, values);
|
|
262
300
|
const result = await core.query({
|
|
263
301
|
sql: formattedSql,
|
|
264
302
|
hydrateColumnNames: !rowsAsArray,
|
|
@@ -302,18 +340,22 @@ function createMySQLPool(config) {
|
|
|
302
340
|
if (typeof paramsOrCallback === 'function') {
|
|
303
341
|
cb = paramsOrCallback;
|
|
304
342
|
}
|
|
305
|
-
else if (
|
|
343
|
+
else if (paramsOrCallback !== undefined) {
|
|
306
344
|
params = paramsOrCallback;
|
|
307
|
-
|
|
345
|
+
if (callback !== undefined) {
|
|
346
|
+
cb = callback;
|
|
347
|
+
}
|
|
308
348
|
}
|
|
309
349
|
}
|
|
310
350
|
else {
|
|
311
351
|
if (typeof paramsOrCallback === 'function') {
|
|
312
352
|
cb = paramsOrCallback;
|
|
313
353
|
}
|
|
314
|
-
else if (
|
|
354
|
+
else if (paramsOrCallback !== undefined) {
|
|
315
355
|
params = paramsOrCallback;
|
|
316
|
-
|
|
356
|
+
if (callback !== undefined) {
|
|
357
|
+
cb = callback;
|
|
358
|
+
}
|
|
317
359
|
}
|
|
318
360
|
}
|
|
319
361
|
if (cb) {
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED