Skip to content

Commit ead4f98

Browse files
authored
fix: improve async calls on disconnect (#11523)
1 parent b1e93f7 commit ead4f98

File tree

15 files changed

+91
-77
lines changed

15 files changed

+91
-77
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
"test": "npm run compile && npm run test:fast --",
8989
"test:ci": "mocha --bail",
9090
"test:fast": "mocha",
91+
"typecheck": "tsc --noEmit",
9192
"watch": "tsc --watch"
9293
},
9394
"dependencies": {

sample/playground/package-lock.json

Lines changed: 31 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sample/playground/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
"reflect-metadata": "^0.2.2",
1313
"sql.js": "^1.13.0",
1414
"ts-node": "^10.9.2",
15-
"typeorm": "0.3.22"
15+
"typeorm": "*"
1616
},
1717
"devDependencies": {
18-
"@types/node": "^20.11.24",
18+
"@types/node": "^20.19.0",
1919
"@types/sql.js": "^1.4.9",
20-
"typescript": "^5.3.3"
20+
"typescript": "^5.8.3"
2121
}
2222
}

src/driver/cockroachdb/CockroachDriver.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,9 @@ export class CockroachDriver implements Driver {
346346
* Closes connection with database.
347347
*/
348348
async disconnect(): Promise<void> {
349-
if (!this.master)
350-
return Promise.reject(new ConnectionIsNotSetError("cockroachdb"))
349+
if (!this.master) {
350+
throw new ConnectionIsNotSetError("cockroachdb")
351+
}
351352

352353
await this.closePool(this.master)
353354
await Promise.all(this.slaves.map((slave) => this.closePool(slave)))

src/driver/mongodb/MongoDriver.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,13 @@ export class MongoDriver implements Driver {
260260
* Closes connection with the database.
261261
*/
262262
async disconnect(): Promise<void> {
263-
if (!this.queryRunner) throw new ConnectionIsNotSetError("mongodb")
264-
// const handler = (err: any) => (err ? fail(err) : ok())
265-
this.queryRunner.databaseConnection.close()
263+
const queryRunner = this.queryRunner
264+
if (!queryRunner) {
265+
throw new ConnectionIsNotSetError("mongodb")
266+
}
267+
266268
this.queryRunner = undefined
267-
// return ok()
269+
await queryRunner.databaseConnection.close()
268270
}
269271

270272
/**

src/driver/mysql/MysqlDriver.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -445,8 +445,9 @@ export class MysqlDriver implements Driver {
445445
* Closes connection with the database.
446446
*/
447447
async disconnect(): Promise<void> {
448-
if (!this.poolCluster && !this.pool)
449-
return Promise.reject(new ConnectionIsNotSetError("mysql"))
448+
if (!this.poolCluster && !this.pool) {
449+
throw new ConnectionIsNotSetError("mysql")
450+
}
450451

451452
if (this.poolCluster) {
452453
return new Promise<void>((ok, fail) => {

src/driver/oracle/OracleDriver.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,8 +343,9 @@ export class OracleDriver implements Driver {
343343
* Closes connection with the database.
344344
*/
345345
async disconnect(): Promise<void> {
346-
if (!this.master)
347-
return Promise.reject(new ConnectionIsNotSetError("oracle"))
346+
if (!this.master) {
347+
throw new ConnectionIsNotSetError("oracle")
348+
}
348349

349350
await this.closePool(this.master)
350351
await Promise.all(this.slaves.map((slave) => this.closePool(slave)))

src/driver/postgres/PostgresDriver.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -585,8 +585,9 @@ export class PostgresDriver implements Driver {
585585
* Closes connection with database.
586586
*/
587587
async disconnect(): Promise<void> {
588-
if (!this.master)
589-
return Promise.reject(new ConnectionIsNotSetError("postgres"))
588+
if (!this.master) {
589+
throw new ConnectionIsNotSetError("postgres")
590+
}
590591

591592
await this.closePool(this.master)
592593
await Promise.all(this.slaves.map((slave) => this.closePool(slave)))

src/driver/sap/SapDriver.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {
22
ColumnType,
3+
ConnectionIsNotSetError,
34
DataSource,
45
EntityMetadata,
56
ObjectLiteral,
@@ -324,9 +325,13 @@ export class SapDriver implements Driver {
324325
* Closes connection with the database.
325326
*/
326327
async disconnect(): Promise<void> {
327-
const promise = this.master.clear()
328+
const pool = this.master
329+
if (!pool) {
330+
throw new ConnectionIsNotSetError("sap")
331+
}
332+
328333
this.master = undefined
329-
return promise
334+
await pool.clear()
330335
}
331336

332337
/**

src/driver/sqlserver/SqlServerDriver.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,9 @@ export class SqlServerDriver implements Driver {
330330
* Closes connection with the database.
331331
*/
332332
async disconnect(): Promise<void> {
333-
if (!this.master)
334-
return Promise.reject(new ConnectionIsNotSetError("mssql"))
335-
333+
if (!this.master) {
334+
throw new ConnectionIsNotSetError("mssql")
335+
}
336336
await this.closePool(this.master)
337337
await Promise.all(this.slaves.map((slave) => this.closePool(slave)))
338338
this.master = undefined

0 commit comments

Comments
 (0)