data-api-client 2.1.0 → 2.1.2
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 +206 -12
- 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/compat/pg.d.ts.map +1 -1
- package/dist/compat/pg.js +14 -3
- package/dist/params.d.ts +1 -1
- package/dist/params.d.ts.map +1 -1
- package/dist/params.js +15 -3
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +16 -18
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-

|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/data-api-client)
|
|
4
4
|
[](https://www.npmjs.com/package/data-api-client)
|
|
@@ -106,11 +106,11 @@ let remove = await data.query(
|
|
|
106
106
|
{ name: 'Jan' } // Sorry Jan :(
|
|
107
107
|
)
|
|
108
108
|
|
|
109
|
-
// PostgreSQL with
|
|
109
|
+
// PostgreSQL with automatic JSONB casting for plain objects
|
|
110
110
|
let pgExample = await data.query(`INSERT INTO users (id, email, metadata) VALUES(:id, :email, :metadata)`, [
|
|
111
111
|
{ name: 'id', value: '550e8400-e29b-41d4-a716-446655440000', cast: 'uuid' },
|
|
112
112
|
{ name: 'email', value: 'user@example.com' },
|
|
113
|
-
{ name: 'metadata', value:
|
|
113
|
+
{ name: 'metadata', value: { role: 'admin', permissions: ['read', 'write'] } } // Automatically cast as JSONB!
|
|
114
114
|
])
|
|
115
115
|
|
|
116
116
|
// PostgreSQL array result (automatically converted to native JavaScript array)
|
|
@@ -178,6 +178,27 @@ Not only are there no column names, but you have to pull the value from the data
|
|
|
178
178
|
|
|
179
179
|
Lots of extra work that the **Data API Client** handles automatically for you, converting arrays to native JavaScript arrays and providing clean, usable data. 😀
|
|
180
180
|
|
|
181
|
+
### Why not use the Data API's built-in JSON support?
|
|
182
|
+
|
|
183
|
+
The AWS Data API offers a [built-in JSON format option](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api-json.html) via the `formatRecordsAs: 'JSON'` parameter. While this simplifies basic result parsing, the **Data API Client** provides significantly more value:
|
|
184
|
+
|
|
185
|
+
**Type Fidelity:** AWS's JSON format converts everything to basic JSON types, losing database-specific type information. The Data API Client preserves PostgreSQL-specific types (UUID, MACADDR, range types, etc.) using `columnMetadata.typeName` for intelligent type handling.
|
|
186
|
+
|
|
187
|
+
**Advanced Type Conversion:**
|
|
188
|
+
- **PostgreSQL arrays**: Automatically flattens complex `arrayValue` structures to native JavaScript arrays
|
|
189
|
+
- **Binary data**: Converts `Uint8Array` to Node.js `Buffer` objects
|
|
190
|
+
- **JSON columns**: Auto-parses JSON strings to objects
|
|
191
|
+
- **Date handling**: Configurable deserialization with `deserializeDate` and `treatAsLocalDate` options
|
|
192
|
+
- **MySQL YEAR type**: Converts strings to integers automatically
|
|
193
|
+
|
|
194
|
+
**Flexible Output Formats:** AWS JSON only returns objects. The Data API Client lets you choose between object format (`hydrateColumnNames: true`) for easy access by name, or array format (`hydrateColumnNames: false`) for better performance when column names aren't needed.
|
|
195
|
+
|
|
196
|
+
**Richer Result Information:** Beyond just formatted records, you get `numberOfRecordsUpdated`, `insertId`, `columnMetadata` (optional), and batch `updateResults` for comprehensive operation feedback.
|
|
197
|
+
|
|
198
|
+
**No Additional Limitations:** AWS's JSON support requires unique column names and has a 10MB response limit. The Data API Client works with any column configuration and imposes no additional size restrictions.
|
|
199
|
+
|
|
200
|
+
In summary, AWS's JSON support is a basic convenience feature, while the **Data API Client** provides true type intelligence, format flexibility, and seamless handling of complex PostgreSQL features that the native Data API doesn't support well.
|
|
201
|
+
|
|
181
202
|
## Installation and Setup
|
|
182
203
|
|
|
183
204
|
```
|
|
@@ -204,15 +225,17 @@ Below is a table containing all of the possible configuration options for the `d
|
|
|
204
225
|
| database | `string` | _Optional_ default database to use with queries. Can be overridden when querying. | |
|
|
205
226
|
| engine | `mysql` or `pg` | The type of database engine you're connecting to (MySQL or Postgres). | `pg` |
|
|
206
227
|
| 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` |
|
|
228
|
+
| 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
229
|
| 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
230
|
| 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
|
-
| retryOptions | `object` | Configuration for automatic retry logic. Valid keys are `enabled` (boolean), `maxRetries` (number), and `retryableErrors` (string array).
|
|
231
|
+
| retryOptions | `object` | Configuration for automatic retry logic. Valid keys are `enabled` (boolean), `maxRetries` (number), and `retryableErrors` (string array). | `enabled: true, maxRetries: 9` |
|
|
210
232
|
|
|
211
233
|
### Automatic Retry Logic
|
|
212
234
|
|
|
213
235
|
Version 2.1 includes built-in retry logic to handle Aurora Serverless scale-to-zero cluster wake-ups automatically. When your cluster is paused and needs to resume, the client will automatically retry your queries with optimized delays.
|
|
214
236
|
|
|
215
237
|
**Features:**
|
|
238
|
+
|
|
216
239
|
- **Smart Error Detection**: Automatically detects `DatabaseResumingException` and connection errors
|
|
217
240
|
- **Strategy-Based Retries**: Different retry strategies based on error type:
|
|
218
241
|
- DatabaseResumingException: Up to 10 attempts with progressive delays (0s, 2s, 5s, 10s, 15s, 20s, 25s, 30s, 35s, 40s)
|
|
@@ -350,17 +373,63 @@ You'll notice that we leave the _named parameters_ alone. Anything that Data API
|
|
|
350
373
|
|
|
351
374
|
The Aurora Data API can sometimes give you trouble with certain data types, such as uuid or jsonb in PostgreSQL, unless you explicitly cast them. While you can certainly do this manually in your SQL string using PostgreSQL's `::` cast syntax, the Data API Client offers an easy way to handle this for you using the parameter `cast` property.
|
|
352
375
|
|
|
353
|
-
|
|
376
|
+
#### Automatic JSONB Type Casting (PostgreSQL)
|
|
377
|
+
|
|
378
|
+
**New in v2.x:** The Data API Client now **automatically detects and casts plain JavaScript objects as JSONB** in PostgreSQL queries. This eliminates the need for manual `JSON.stringify()` or explicit `::jsonb` casts in most cases:
|
|
379
|
+
|
|
380
|
+
```javascript
|
|
381
|
+
// Plain JavaScript objects are automatically cast as JSONB
|
|
382
|
+
const metadata = { role: 'admin', permissions: ['read', 'write'], score: 95.5 }
|
|
383
|
+
|
|
384
|
+
await data.query('INSERT INTO users (email, metadata) VALUES (:email, :metadata)', {
|
|
385
|
+
email: 'user@example.com',
|
|
386
|
+
metadata: metadata // Automatically serialized and cast as ::jsonb
|
|
387
|
+
})
|
|
388
|
+
|
|
389
|
+
// Works with nested objects too
|
|
390
|
+
const complexData = {
|
|
391
|
+
user: { name: 'Alice', age: 30 },
|
|
392
|
+
tags: ['admin', 'editor'],
|
|
393
|
+
settings: { theme: 'dark', notifications: true }
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
await data.query('INSERT INTO products (name, data) VALUES (:name, :data)', {
|
|
397
|
+
name: 'Product A',
|
|
398
|
+
data: complexData // Automatically handled
|
|
399
|
+
})
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
**How it works:**
|
|
403
|
+
|
|
404
|
+
- Plain JavaScript objects (not Buffers, Dates, Arrays, or Data API objects) are automatically detected
|
|
405
|
+
- The object is serialized to a JSON string
|
|
406
|
+
- A `::jsonb` cast is automatically appended to the parameter in PostgreSQL queries
|
|
407
|
+
- A `JSON` typeHint is provided to the Data API for proper handling
|
|
408
|
+
|
|
409
|
+
**When automatic casting applies:**
|
|
410
|
+
|
|
411
|
+
- ✅ Plain objects: `{ key: 'value' }`
|
|
412
|
+
- ✅ Nested objects: `{ user: { name: 'Alice' } }`
|
|
413
|
+
- ❌ Buffers: `Buffer.from('data')`
|
|
414
|
+
- ❌ Dates: `new Date()`
|
|
415
|
+
- ❌ Arrays: `[1, 2, 3]`
|
|
416
|
+
- ❌ Already-formatted Data API objects: `{ stringValue: 'text' }`
|
|
417
|
+
|
|
418
|
+
**Explicit casting still supported:**
|
|
419
|
+
|
|
420
|
+
You can still use explicit casts when needed (e.g., for UUID, custom types, or to override automatic behavior):
|
|
421
|
+
|
|
422
|
+
**PostgreSQL inline casting:**
|
|
354
423
|
|
|
355
424
|
```javascript
|
|
356
425
|
const result = await data.query('INSERT INTO users(id, email, metadata) VALUES(:id, :email, :metadata::jsonb)', {
|
|
357
|
-
id: newUserId,
|
|
426
|
+
id: newUserId,
|
|
358
427
|
email: email,
|
|
359
|
-
metadata: JSON.stringify(userMetadata) //
|
|
428
|
+
metadata: JSON.stringify(userMetadata) // explicit ::jsonb in SQL
|
|
360
429
|
})
|
|
361
430
|
```
|
|
362
431
|
|
|
363
|
-
**Parameter-based casting
|
|
432
|
+
**Parameter-based casting:**
|
|
364
433
|
|
|
365
434
|
```javascript
|
|
366
435
|
const result = await data.query(
|
|
@@ -388,7 +457,7 @@ const result = await data.query(
|
|
|
388
457
|
)
|
|
389
458
|
```
|
|
390
459
|
|
|
391
|
-
|
|
460
|
+
**Note:** Explicit casts (inline `::type` or parameter `cast` property) always take precedence over automatic casting.
|
|
392
461
|
|
|
393
462
|
### Batch Queries
|
|
394
463
|
|
|
@@ -531,7 +600,7 @@ const connection = createMySQLConnection({
|
|
|
531
600
|
database: 'myDatabase'
|
|
532
601
|
})
|
|
533
602
|
|
|
534
|
-
// Use like mysql2/promise
|
|
603
|
+
// Use like mysql2/promise with positional placeholders
|
|
535
604
|
const [rows, fields] = await connection.query('SELECT * FROM users WHERE id = ?', [123])
|
|
536
605
|
await connection.execute('INSERT INTO users (name, email) VALUES (?, ?)', ['Alice', 'alice@example.com'])
|
|
537
606
|
|
|
@@ -559,6 +628,108 @@ const [rows] = await connection.query('SELECT * FROM users')
|
|
|
559
628
|
connection.release() // Optional - no-op for Data API
|
|
560
629
|
```
|
|
561
630
|
|
|
631
|
+
#### Named Placeholders Support
|
|
632
|
+
|
|
633
|
+
The mysql2 compatibility layer supports **named placeholders** (`:name` syntax), matching the behavior of the native mysql2 library's `namedPlaceholders` option:
|
|
634
|
+
|
|
635
|
+
```javascript
|
|
636
|
+
import { createMySQLConnection, createMySQLPool } from 'data-api-client/compat/mysql2'
|
|
637
|
+
|
|
638
|
+
// Create a connection with namedPlaceholders enabled
|
|
639
|
+
const connection = createMySQLConnection({
|
|
640
|
+
resourceArn: 'arn:aws:rds:us-east-1:XXXXXXXXXXXX:cluster:my-cluster',
|
|
641
|
+
secretArn: 'arn:aws:secretsmanager:us-east-1:XXXXXXXXXXXX:secret:mySecret',
|
|
642
|
+
database: 'myDatabase',
|
|
643
|
+
namedPlaceholders: true // Enable named placeholders
|
|
644
|
+
})
|
|
645
|
+
|
|
646
|
+
// Use named placeholders with object parameters
|
|
647
|
+
const [users] = await connection.query('SELECT * FROM users WHERE name = :name AND age > :age', {
|
|
648
|
+
name: 'Alice',
|
|
649
|
+
age: 25
|
|
650
|
+
})
|
|
651
|
+
|
|
652
|
+
// INSERT with named placeholders
|
|
653
|
+
await connection.query('INSERT INTO users (name, email, active) VALUES (:name, :email, :active)', {
|
|
654
|
+
name: 'Bob',
|
|
655
|
+
email: 'bob@example.com',
|
|
656
|
+
active: true
|
|
657
|
+
})
|
|
658
|
+
|
|
659
|
+
// UPDATE with named placeholders
|
|
660
|
+
await connection.query('UPDATE users SET age = :newAge WHERE id = :id', { id: 123, newAge: 30 })
|
|
661
|
+
|
|
662
|
+
// Named placeholders work with transactions
|
|
663
|
+
await connection.beginTransaction()
|
|
664
|
+
try {
|
|
665
|
+
await connection.query('INSERT INTO orders (user_id, total) VALUES (:userId, :total)', { userId: 123, total: 99.99 })
|
|
666
|
+
await connection.query('UPDATE users SET last_order = NOW() WHERE id = :userId', { userId: 123 })
|
|
667
|
+
await connection.commit()
|
|
668
|
+
} catch (err) {
|
|
669
|
+
await connection.rollback()
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
// Named placeholders also work with pools
|
|
673
|
+
const pool = createMySQLPool({
|
|
674
|
+
resourceArn: 'arn:...',
|
|
675
|
+
secretArn: 'arn:...',
|
|
676
|
+
database: 'myDatabase',
|
|
677
|
+
namedPlaceholders: true
|
|
678
|
+
})
|
|
679
|
+
|
|
680
|
+
const [results] = await pool.query('SELECT * FROM products WHERE category = :category AND price < :maxPrice', {
|
|
681
|
+
category: 'electronics',
|
|
682
|
+
maxPrice: 500
|
|
683
|
+
})
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
**Named Placeholders Features:**
|
|
687
|
+
|
|
688
|
+
- Use `:paramName` syntax in SQL (colon followed by identifier)
|
|
689
|
+
- Pass parameters as objects: `{ paramName: value }`
|
|
690
|
+
- Same parameter can be referenced multiple times in the query
|
|
691
|
+
- Works with all query types (SELECT, INSERT, UPDATE, DELETE)
|
|
692
|
+
- Fully compatible with transactions, pools, and callbacks
|
|
693
|
+
- Backward compatible: positional `?` placeholders still work when `namedPlaceholders` is disabled (default)
|
|
694
|
+
|
|
695
|
+
**Query-Level namedPlaceholders:**
|
|
696
|
+
|
|
697
|
+
You can also enable or disable named placeholders on a per-query basis, which overrides the connection-level setting:
|
|
698
|
+
|
|
699
|
+
```javascript
|
|
700
|
+
// Connection WITHOUT namedPlaceholders at config level
|
|
701
|
+
const connection = createMySQLConnection({
|
|
702
|
+
resourceArn: 'arn:...',
|
|
703
|
+
secretArn: 'arn:...',
|
|
704
|
+
database: 'myDatabase'
|
|
705
|
+
// namedPlaceholders NOT set (defaults to false)
|
|
706
|
+
})
|
|
707
|
+
|
|
708
|
+
// Enable namedPlaceholders for specific queries
|
|
709
|
+
const [rows] = await connection.query(
|
|
710
|
+
{
|
|
711
|
+
sql: 'SELECT * FROM users WHERE username = :username AND age > :minAge',
|
|
712
|
+
namedPlaceholders: true // Enable for this query only
|
|
713
|
+
},
|
|
714
|
+
{ username: 'john_doe', minAge: 25 }
|
|
715
|
+
)
|
|
716
|
+
|
|
717
|
+
// Or explicitly disable for a specific query (when connection has it enabled)
|
|
718
|
+
const [rows2] = await connection.query(
|
|
719
|
+
{
|
|
720
|
+
sql: 'SELECT * FROM users WHERE id = ?',
|
|
721
|
+
namedPlaceholders: false // Use positional placeholders for this query
|
|
722
|
+
},
|
|
723
|
+
[123]
|
|
724
|
+
)
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
This allows you to:
|
|
728
|
+
|
|
729
|
+
- Use named placeholders in specific queries without enabling it globally
|
|
730
|
+
- Mix named and positional placeholders in different queries
|
|
731
|
+
- Override connection-level settings when needed
|
|
732
|
+
|
|
562
733
|
### pg Compatibility
|
|
563
734
|
|
|
564
735
|
Use the Data API Client as a replacement for `pg` (node-postgres):
|
|
@@ -685,6 +856,7 @@ const users = await db.selectFrom('users').selectAll().where('id', '=', 123).exe
|
|
|
685
856
|
```
|
|
686
857
|
|
|
687
858
|
**Benefits of Compatibility Layers:**
|
|
859
|
+
|
|
688
860
|
- **Zero code changes** when migrating from mysql2 or pg
|
|
689
861
|
- **Full ORM support** (Drizzle, Kysely)
|
|
690
862
|
- **Automatic retry logic** for cluster wake-ups
|
|
@@ -806,10 +978,21 @@ await data.query('INSERT INTO files (content) VALUES (:content)', { content: bin
|
|
|
806
978
|
|
|
807
979
|
### JSON and JSONB
|
|
808
980
|
|
|
981
|
+
**Automatic JSONB Casting (New in v2.x):**
|
|
982
|
+
|
|
983
|
+
The Data API Client now automatically detects and casts plain JavaScript objects as JSONB in PostgreSQL:
|
|
984
|
+
|
|
809
985
|
```javascript
|
|
986
|
+
// Automatic JSONB casting - no manual JSON.stringify() needed!
|
|
810
987
|
const metadata = { role: 'admin', permissions: ['read', 'write'] }
|
|
811
|
-
await data.query('INSERT INTO users (metadata) VALUES (:metadata
|
|
812
|
-
metadata:
|
|
988
|
+
await data.query('INSERT INTO users (metadata) VALUES (:metadata)', {
|
|
989
|
+
metadata: metadata // Automatically serialized and cast as ::jsonb
|
|
990
|
+
})
|
|
991
|
+
|
|
992
|
+
// Works with nested objects
|
|
993
|
+
const complexData = { user: { name: 'Alice' }, settings: { theme: 'dark' } }
|
|
994
|
+
await data.query('INSERT INTO users (data) VALUES (:data)', {
|
|
995
|
+
data: complexData // Automatically handled
|
|
813
996
|
})
|
|
814
997
|
|
|
815
998
|
// Query result
|
|
@@ -817,6 +1000,17 @@ let result = await data.query('SELECT metadata FROM users WHERE id = :id', { id:
|
|
|
817
1000
|
const parsed = JSON.parse(result.records[0].metadata)
|
|
818
1001
|
```
|
|
819
1002
|
|
|
1003
|
+
**Manual casting (still supported):**
|
|
1004
|
+
|
|
1005
|
+
You can still use explicit casting when needed:
|
|
1006
|
+
|
|
1007
|
+
```javascript
|
|
1008
|
+
const metadata = { role: 'admin', permissions: ['read', 'write'] }
|
|
1009
|
+
await data.query('INSERT INTO users (metadata) VALUES (:metadata::jsonb)', {
|
|
1010
|
+
metadata: JSON.stringify(metadata) // Manual approach
|
|
1011
|
+
})
|
|
1012
|
+
```
|
|
1013
|
+
|
|
820
1014
|
### UUID
|
|
821
1015
|
|
|
822
1016
|
```javascript
|
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/compat/pg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/compat/pg.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGrC,OAAO,KAAK,EAAE,mBAAmB,EAAoD,MAAM,UAAU,CAAA;AACrG,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAGjE,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC5B,KAAK,CAAC,EAAE,GAAG,CAAA;CACZ;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAC7C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAG1C,KAAK,CAAC,CAAC,SAAS;QAAE,MAAM,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAA;IACzE,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAC3B,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAC/D,MAAM,CAAC,EAAE,GAAG,EAAE,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IAC7F,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACxF,KAAK,CAAC,CAAC,GAAG,GAAG,EACX,iBAAiB,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,EAC5D,MAAM,CAAC,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAC3B,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAC/D,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/compat/pg.ts"],"names":[],"mappings":"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"}
|
package/dist/compat/pg.js
CHANGED
|
@@ -25,7 +25,18 @@ function convertPgPlaceholders(sql, params = []) {
|
|
|
25
25
|
function inferCommand(sql) {
|
|
26
26
|
var _a;
|
|
27
27
|
const match = (_a = sql.trim().split(/\s+/)[0]) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
28
|
-
const knownCommands = [
|
|
28
|
+
const knownCommands = [
|
|
29
|
+
'SELECT',
|
|
30
|
+
'INSERT',
|
|
31
|
+
'UPDATE',
|
|
32
|
+
'DELETE',
|
|
33
|
+
'CREATE',
|
|
34
|
+
'DROP',
|
|
35
|
+
'ALTER',
|
|
36
|
+
'TRUNCATE',
|
|
37
|
+
'GRANT',
|
|
38
|
+
'REVOKE'
|
|
39
|
+
];
|
|
29
40
|
return knownCommands.includes(match) ? match : 'QUERY';
|
|
30
41
|
}
|
|
31
42
|
function convertToPgResult(result, sql, rowMode) {
|
|
@@ -92,7 +103,7 @@ function createPgClient(config) {
|
|
|
92
103
|
}
|
|
93
104
|
else {
|
|
94
105
|
sql = sqlOrConfig.text;
|
|
95
|
-
values = params !== undefined ? params :
|
|
106
|
+
values = params !== undefined ? params : sqlOrConfig.values || [];
|
|
96
107
|
rowMode = sqlOrConfig.rowMode;
|
|
97
108
|
}
|
|
98
109
|
const upperSql = sql.trim().toUpperCase();
|
|
@@ -240,7 +251,7 @@ function createPgPool(config) {
|
|
|
240
251
|
}
|
|
241
252
|
else {
|
|
242
253
|
sql = sqlOrConfig.text;
|
|
243
|
-
values = params !== undefined ? params :
|
|
254
|
+
values = params !== undefined ? params : sqlOrConfig.values || [];
|
|
244
255
|
rowMode = sqlOrConfig.rowMode;
|
|
245
256
|
}
|
|
246
257
|
const { sql: convertedSql, params: namedParams } = convertPgPlaceholders(sql, values);
|
package/dist/params.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare const processParams: (engine: string, sql: string, sqlParams: Rec
|
|
|
13
13
|
processedParams: (FormattedParameter | FormattedParameter[])[];
|
|
14
14
|
escapedSql: string;
|
|
15
15
|
};
|
|
16
|
-
export declare const formatParam: (n: string, v: ParameterValue, formatOptions: Required<FormatOptions
|
|
16
|
+
export declare const formatParam: (n: string, v: ParameterValue, formatOptions: Required<FormatOptions>) => FormattedParameter;
|
|
17
17
|
export declare const splitParams: (p: Record<string, ParameterValue>) => NamedParameter[];
|
|
18
18
|
export declare const formatType: (name: string, value: ParameterValue, type: SupportedType | null | undefined, typeHint: string | undefined, formatOptions: Required<FormatOptions>) => FormattedParameter;
|
|
19
19
|
//# sourceMappingURL=params.d.ts.map
|
package/dist/params.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../src/params.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../src/params.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG,EAAE,KAAG,UAAU,EAa5C,CAAA;AAGR,eAAO,MAAM,aAAa,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,MAAM,GAAG,SAS9D,CAAA;AAGf,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,OAKpC,CAAA;AAG/B,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,QAAQ,CAAC,aAAa,CAkBrE,CAAA;AAG1B,eAAO,MAAM,aAAa,GACxB,4BAA4B,cAAc,EAC1C,MAAM,GAAG,EAAE,KACV;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAK9D,CAAA;AAOD,eAAO,MAAM,eAAe,GAAI,QAAQ,UAAU,EAAE,KAAG,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,EAavF,CAAA;AAGH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,WAAW,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,QAAQ,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,EAAE,EAC7C,eAAe,QAAQ,CAAC,aAAa,CAAC,EACtC,MAAK,MAAU,KACd;IAAE,eAAe,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAsCtF,CAAA;AAGD,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,eAAe,QAAQ,CAAC,aAAa,CAAC,KAAG,kBACtC,CAAA;AAG7D,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAG,cAAc,EACiB,CAAA;AAG/F,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,OAAO,cAAc,EACrB,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,EACtC,UAAU,MAAM,GAAG,SAAS,EAC5B,eAAe,QAAQ,CAAC,aAAa,CAAC,KACrC,kBAkBF,CAAA"}
|
package/dist/params.js
CHANGED
|
@@ -7,6 +7,12 @@ exports.formatType = exports.splitParams = exports.formatParam = exports.process
|
|
|
7
7
|
const sqlstring_1 = __importDefault(require("sqlstring"));
|
|
8
8
|
const pg_escape_1 = __importDefault(require("pg-escape"));
|
|
9
9
|
const utils_1 = require("./utils");
|
|
10
|
+
const isPlainObject = (val) => typeof val === 'object' &&
|
|
11
|
+
val !== null &&
|
|
12
|
+
!Buffer.isBuffer(val) &&
|
|
13
|
+
!(val instanceof Date) &&
|
|
14
|
+
!Array.isArray(val) &&
|
|
15
|
+
!(Object.keys(val).length === 1 && utils_1.supportedTypes.includes(Object.keys(val)[0]));
|
|
10
16
|
const parseParams = (args) => Array.isArray(args[0].parameters)
|
|
11
17
|
? args[0].parameters
|
|
12
18
|
: typeof args[0].parameters === 'object'
|
|
@@ -86,7 +92,11 @@ const processParams = (engine, sql, sqlParams, params, formatOptions, row = 0) =
|
|
|
86
92
|
const regex = new RegExp(':' + p.name + '\\b', 'g');
|
|
87
93
|
sql = sql.replace(regex, engine === 'pg' ? `:${p.name}::${p.cast}` : `CAST(:${p.name} AS ${p.cast})`);
|
|
88
94
|
}
|
|
89
|
-
|
|
95
|
+
else if (engine === 'pg' && isPlainObject(p.value)) {
|
|
96
|
+
const regex = new RegExp(':' + p.name + '\\b', 'g');
|
|
97
|
+
sql = sql.replace(regex, `:${p.name}::jsonb`);
|
|
98
|
+
}
|
|
99
|
+
acc.push((0, exports.formatParam)(p.name, p.value, formatOptions));
|
|
90
100
|
}
|
|
91
101
|
else if (row === 0) {
|
|
92
102
|
const regex = new RegExp('::' + p.name + '\\b', 'g');
|
|
@@ -105,7 +115,7 @@ const processParams = (engine, sql, sqlParams, params, formatOptions, row = 0) =
|
|
|
105
115
|
};
|
|
106
116
|
};
|
|
107
117
|
exports.processParams = processParams;
|
|
108
|
-
const formatParam = (n, v, formatOptions
|
|
118
|
+
const formatParam = (n, v, formatOptions) => (0, exports.formatType)(n, v, (0, utils_1.getType)(v), (0, utils_1.getTypeHint)(v), formatOptions);
|
|
109
119
|
exports.formatParam = formatParam;
|
|
110
120
|
const splitParams = (p) => Object.keys(p).reduce((arr, x) => arr.concat({ name: x, value: p[x] }), []);
|
|
111
121
|
exports.splitParams = splitParams;
|
|
@@ -118,7 +128,9 @@ const formatType = (name, value, type, typeHint, formatOptions) => {
|
|
|
118
128
|
? true
|
|
119
129
|
: (0, utils_1.isDate)(value)
|
|
120
130
|
? (0, utils_1.formatToTimeStamp)(value, formatOptions && formatOptions.treatAsLocalDate)
|
|
121
|
-
: value
|
|
131
|
+
: isPlainObject(value)
|
|
132
|
+
? JSON.stringify(value)
|
|
133
|
+
: value
|
|
122
134
|
}
|
|
123
135
|
});
|
|
124
136
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface DataAPIClientConfig {
|
|
|
15
15
|
retryOptions?: RetryConfig;
|
|
16
16
|
options?: RDSDataClientConfig;
|
|
17
17
|
client?: RDSDataClient;
|
|
18
|
+
namedPlaceholders?: boolean;
|
|
18
19
|
region?: string;
|
|
19
20
|
sslEnabled?: boolean;
|
|
20
21
|
keepAlive?: boolean;
|
|
@@ -36,6 +37,8 @@ export interface InternalConfig {
|
|
|
36
37
|
}
|
|
37
38
|
export type ParameterValue = string | number | boolean | null | Date | Buffer | {
|
|
38
39
|
[key in SupportedType]?: any;
|
|
40
|
+
} | {
|
|
41
|
+
[key: string]: any;
|
|
39
42
|
};
|
|
40
43
|
export interface NamedParameter {
|
|
41
44
|
name: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,6BAA6B,EAC7B,kCAAkC,EAClC,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,iCAAiC,EACjC,cAAc,EACd,gBAAgB,EACjB,MAAM,0BAA0B,CAAA;AAGjC,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,aAAa,GACb,QAAQ,GACR,WAAW,GACX,aAAa,GACb,aAAa,CAAA;AAGjB,MAAM,WAAW,WAAW;IAE1B,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAGD,MAAM,WAAW,mBAAmB;IAElC,WAAW,EAAE,MAAM,CAAA;IAEnB,SAAS,EAAE,MAAM,CAAA;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAEvB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B,YAAY,CAAC,EAAE,WAAW,CAAA;IAE1B,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAE7B,MAAM,CAAC,EAAE,aAAa,CAAA;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAGD,MAAM,WAAW,aAAa;IAE5B,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAGD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IACtC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACnC,GAAG,EAAE,aAAa,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAGD,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,MAAM,GACN;KAAG,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE,GAAG;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare const isTimeString: (val: string) => boolean;
|
|
|
13
13
|
export declare const isDecimalString: (val: string) => boolean;
|
|
14
14
|
export declare const isUUIDString: (val: string) => boolean;
|
|
15
15
|
export declare const isJSONString: (val: string) => boolean;
|
|
16
|
-
export declare const getTypeHint: (val: ParameterValue
|
|
16
|
+
export declare const getTypeHint: (val: ParameterValue) => string | undefined;
|
|
17
17
|
export declare const formatToTimeStamp: (date: Date, treatAsLocalDate: boolean) => string;
|
|
18
18
|
export declare const formatFromTimeStamp: (value: string, treatAsLocalDate: boolean) => Date;
|
|
19
19
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG1E,eAAO,MAAM,cAAc,EAAE,aAAa,EASzC,CAAA;AAGD,eAAO,MAAM,KAAK,GAAI,GAAG,KAAK,GAAG,EAAE,KAAG,KAErC,CAAA;AAGD,eAAO,MAAM,QAAQ,GAAI,MAAM,GAAG,EAAE,KAAG,MAKI,CAAA;AAG3C,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,MAAM,EAAE,KAAG,OAAO,CAAC,CAAC,CACiC,CAAA;AAGzH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAInG,CAAA;AAGH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,KAAG,CAAC,EAA+C,CAAA;AAGxF,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CA8CrE,CAAA;AAID,eAAO,MAAM,OAAO,GAAI,KAAK,cAAc,KAAG,aAAa,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG1E,eAAO,MAAM,cAAc,EAAE,aAAa,EASzC,CAAA;AAGD,eAAO,MAAM,KAAK,GAAI,GAAG,KAAK,GAAG,EAAE,KAAG,KAErC,CAAA;AAGD,eAAO,MAAM,QAAQ,GAAI,MAAM,GAAG,EAAE,KAAG,MAKI,CAAA;AAG3C,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,MAAM,EAAE,KAAG,OAAO,CAAC,CAAC,CACiC,CAAA;AAGzH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAInG,CAAA;AAGH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,KAAG,CAAC,EAA+C,CAAA;AAGxF,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CA8CrE,CAAA;AAID,eAAO,MAAM,OAAO,GAAI,KAAK,cAAc,KAAG,aAAa,GAAG,IAAI,GAAG,SA6BtD,CAAA;AAKf,eAAO,MAAM,MAAM,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,IAA2B,CAAA;AAGpE,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,OACV,CAAA;AAGjC,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,OACE,CAAA;AAG7C,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,OACpB,CAAA;AAG1B,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,OACkC,CAAA;AAG7E,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,OAU1C,CAAA;AAKD,eAAO,MAAM,WAAW,GAAI,KAAK,cAAc,KAAG,MAAM,GAAG,SAsB1D,CAAA;AAID,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,EAAE,kBAAkB,OAAO,KAAG,MAezE,CAAA;AAKD,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,EAAE,kBAAkB,OAAO,KAAG,IAG1D,CAAA"}
|
package/dist/utils.js
CHANGED
|
@@ -80,7 +80,14 @@ const getType = (val) => typeof val === 'string'
|
|
|
80
80
|
Object.keys(val).length === 1 &&
|
|
81
81
|
exports.supportedTypes.includes(Object.keys(val)[0])
|
|
82
82
|
? null
|
|
83
|
-
:
|
|
83
|
+
:
|
|
84
|
+
typeof val === 'object' &&
|
|
85
|
+
val !== null &&
|
|
86
|
+
!Buffer.isBuffer(val) &&
|
|
87
|
+
!(0, exports.isDate)(val) &&
|
|
88
|
+
!Array.isArray(val)
|
|
89
|
+
? 'stringValue'
|
|
90
|
+
: undefined;
|
|
84
91
|
exports.getType = getType;
|
|
85
92
|
const isDate = (val) => val instanceof Date;
|
|
86
93
|
exports.isDate = isDate;
|
|
@@ -107,26 +114,17 @@ const isJSONString = (val) => {
|
|
|
107
114
|
}
|
|
108
115
|
};
|
|
109
116
|
exports.isJSONString = isJSONString;
|
|
110
|
-
const getTypeHint = (val
|
|
117
|
+
const getTypeHint = (val) => {
|
|
111
118
|
if ((0, exports.isDate)(val)) {
|
|
112
119
|
return 'TIMESTAMP';
|
|
113
120
|
}
|
|
114
|
-
if (typeof val === '
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if ((0, exports.isTimeString)(val)) {
|
|
122
|
-
return 'TIME';
|
|
123
|
-
}
|
|
124
|
-
if ((0, exports.isJSONString)(val) && engine !== 'mysql') {
|
|
125
|
-
return 'JSON';
|
|
126
|
-
}
|
|
127
|
-
if ((0, exports.isDecimalString)(val)) {
|
|
128
|
-
return 'DECIMAL';
|
|
129
|
-
}
|
|
121
|
+
if (typeof val === 'object' &&
|
|
122
|
+
val !== null &&
|
|
123
|
+
!Buffer.isBuffer(val) &&
|
|
124
|
+
!(0, exports.isDate)(val) &&
|
|
125
|
+
!Array.isArray(val) &&
|
|
126
|
+
!(Object.keys(val).length === 1 && exports.supportedTypes.includes(Object.keys(val)[0]))) {
|
|
127
|
+
return 'JSON';
|
|
130
128
|
}
|
|
131
129
|
return undefined;
|
|
132
130
|
};
|
package/package.json
CHANGED