Skip to content

Commit 5d2417c

Browse files
authored
feat!: upgrade to aws-sdk-v3 (#18)
1 parent f09b3b7 commit 5d2417c

5 files changed

Lines changed: 746 additions & 125 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@
1818
"build:cjs": "tsc -p tsconfig-cjs.json"
1919
},
2020
"devDependencies": {
21+
"@aws-sdk/client-rds-data": "^3.218.0",
2122
"@changesets/changelog-github": "^0.4.5",
2223
"@changesets/cli": "^2.23.2",
2324
"@tsconfig/node14": "^1.0.1",
2425
"@types/node": "^16.11.0",
25-
"aws-sdk": "^2.1008.0",
2626
"kysely": "^0.19.3",
2727
"perf_hooks": "^0.0.1",
2828
"vitest": "^0.18.1"
2929
},
3030
"peerDependencies": {
31-
"aws-sdk": "2.x",
31+
"@aws-sdk/client-rds-data": "3.x",
3232
"kysely": "0.x"
3333
},
3434
"files": [

src/data-api-driver.ts

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import { DatabaseConnection, QueryResult } from "kysely";
2-
import { Driver } from "kysely";
3-
import { CompiledQuery } from "kysely";
4-
import RDSDataService, { SqlParametersList } from "aws-sdk/clients/rdsdataservice.js";
1+
import { RDSData, SqlParameter } from "@aws-sdk/client-rds-data";
2+
import { CompiledQuery, DatabaseConnection, Driver, QueryResult } from "kysely";
53

64
export type DataApiDriverConfig = {
7-
client: RDSDataService;
5+
client: RDSData;
86
secretArn: string;
97
resourceArn: string;
108
database: string;
@@ -60,8 +58,7 @@ class DataApiConnection implements DatabaseConnection {
6058
secretArn: this.#config.secretArn,
6159
resourceArn: this.#config.resourceArn,
6260
database: this.#config.database,
63-
})
64-
.promise();
61+
});
6562
this.#transactionId = r.transactionId;
6663
}
6764

@@ -73,8 +70,7 @@ class DataApiConnection implements DatabaseConnection {
7370
secretArn: this.#config.secretArn,
7471
resourceArn: this.#config.resourceArn,
7572
transactionId: this.#transactionId,
76-
})
77-
.promise();
73+
});
7874
}
7975

8076
public async rollbackTransaction() {
@@ -85,8 +81,7 @@ class DataApiConnection implements DatabaseConnection {
8581
secretArn: this.#config.secretArn,
8682
resourceArn: this.#config.resourceArn,
8783
transactionId: this.#transactionId,
88-
})
89-
.promise();
84+
});
9085
}
9186

9287
async executeQuery<O>(compiledQuery: CompiledQuery): Promise<QueryResult<O>> {
@@ -96,11 +91,10 @@ class DataApiConnection implements DatabaseConnection {
9691
secretArn: this.#config.secretArn,
9792
resourceArn: this.#config.resourceArn,
9893
sql: compiledQuery.sql,
99-
parameters: compiledQuery.parameters as SqlParametersList,
94+
parameters: compiledQuery.parameters as SqlParameter[],
10095
database: this.#config.database,
10196
includeResultMetadata: true,
102-
})
103-
.promise();
97+
});
10498
if (!r.columnMetadata) {
10599
return {
106100
numUpdatedOrDeletedRows: BigInt(r.numberOfRecordsUpdated || 0),

src/data-api-query-compiler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SqlParameter } from "aws-sdk/clients/rdsdataservice";
1+
import { SqlParameter } from "@aws-sdk/client-rds-data";
22
import { MysqlQueryCompiler, PostgresQueryCompiler } from "kysely";
33

44
export class PostgresDataApiQueryCompiler extends PostgresQueryCompiler {

test/harness.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import RDSDataService from "aws-sdk/clients/rdsdataservice";
1+
import { RDSData } from "@aws-sdk/client-rds-data";
22
import { ColumnType, Generated, Kysely } from "kysely";
33
import { DataApiDialect } from "../src";
44
import { DataApiDriverConfig } from "../src/data-api-driver";
@@ -7,15 +7,14 @@ import path from "path";
77
const TEST_DATABASE = "scratch";
88

99
const opts: DataApiDriverConfig = {
10-
client: new RDSDataService(),
10+
client: new RDSData({}),
1111
database: TEST_DATABASE,
1212
secretArn: process.env.RDS_SECRET,
1313
resourceArn: process.env.RDS_ARN,
1414
};
1515
const dialect = new DataApiDialect({
1616
mode: "postgres",
1717
driver: opts,
18-
mode: "postgres",
1918
});
2019

2120
export interface Person {
@@ -54,26 +53,23 @@ export async function migrate() {
5453
database: "postgres",
5554
secretArn: opts.secretArn,
5655
resourceArn: opts.resourceArn,
57-
})
58-
.promise();
56+
});
5957

6058
await opts.client
6159
.executeStatement({
6260
sql: `DROP DATABASE IF EXISTS ${TEST_DATABASE}`,
6361
database: "postgres",
6462
secretArn: opts.secretArn,
6563
resourceArn: opts.resourceArn,
66-
})
67-
.promise();
64+
});
6865

6966
await opts.client
7067
.executeStatement({
7168
sql: `CREATE DATABASE ${TEST_DATABASE}`,
7269
database: "postgres",
7370
secretArn: opts.secretArn,
7471
resourceArn: opts.resourceArn,
75-
})
76-
.promise();
72+
});
7773

7874
await db.migration.migrateToLatest(path.resolve("./test/migrations"));
7975
}

0 commit comments

Comments
 (0)