Skip to content

Commit 4bacd5f

Browse files
committed
fix: broken sqlite tests
1 parent 1d2f59b commit 4bacd5f

File tree

1 file changed

+45
-44
lines changed

1 file changed

+45
-44
lines changed

src/driver/sqlite/SqliteQueryRunner.ts

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -79,70 +79,71 @@ export class SqliteQueryRunner extends AbstractSqliteQueryRunner {
7979

8080
const execute = async () => {
8181
if (isInsertQuery || isDeleteQuery || isUpdateQuery) {
82-
await databaseConnection.run(query, parameters, handler)
82+
return await databaseConnection.run(query, parameters)
8383
} else {
84-
await databaseConnection.all(query, parameters, handler)
84+
return await databaseConnection.all(query, parameters)
8585
}
8686
}
8787

88-
const self = this
89-
const handler = function (this: any, err: any, rows: any) {
88+
let raw
89+
90+
try {
91+
raw = await execute()
92+
} catch (err) {
9093
if (err && err.toString().indexOf("SQLITE_BUSY:") !== -1) {
9194
if (
9295
typeof options.busyErrorRetry === "number" &&
9396
options.busyErrorRetry > 0
9497
) {
95-
setTimeout(execute, options.busyErrorRetry)
96-
return
98+
return setTimeout(execute, options.busyErrorRetry)
9799
}
98100
}
101+
throw err
102+
}
99103

100-
// log slow queries if maxQueryExecution time is set
101-
const queryEndTime = Date.now()
102-
const queryExecutionTime = queryEndTime - queryStartTime
103-
if (
104-
maxQueryExecutionTime &&
105-
queryExecutionTime > maxQueryExecutionTime
106-
)
107-
connection.logger.logQuerySlow(
108-
queryExecutionTime,
109-
query,
110-
parameters,
111-
self,
112-
)
113-
114-
const result = new QueryResult()
115-
116-
if (isInsertQuery) {
117-
result.raw = this["lastID"]
118-
} else {
119-
result.raw = rows
120-
}
121-
122-
broadcaster.broadcastAfterQueryEvent(
123-
broadcasterResult,
104+
// log slow queries if maxQueryExecution time is set
105+
const queryEndTime = Date.now()
106+
const queryExecutionTime = queryEndTime - queryStartTime
107+
if (
108+
maxQueryExecutionTime &&
109+
queryExecutionTime > maxQueryExecutionTime
110+
)
111+
connection.logger.logQuerySlow(
112+
queryExecutionTime,
124113
query,
125114
parameters,
126-
true,
127-
queryExecutionTime,
128-
result.raw,
129-
undefined,
115+
this,
130116
)
131117

132-
if (Array.isArray(rows)) {
133-
result.records = rows
134-
}
118+
const result = new QueryResult()
135119

136-
result.affected = this["changes"]
120+
if (isInsertQuery) {
121+
result.raw = raw.lastID
122+
} else {
123+
result.raw = raw
124+
}
137125

138-
if (useStructuredResult) {
139-
return result
140-
} else {
141-
return result.raw
142-
}
126+
broadcaster.broadcastAfterQueryEvent(
127+
broadcasterResult,
128+
query,
129+
parameters,
130+
true,
131+
queryExecutionTime,
132+
result.raw,
133+
undefined,
134+
)
135+
136+
if (Array.isArray(raw)) {
137+
result.records = raw
143138
}
144139

145-
await execute()
140+
result.affected = raw.changes
141+
142+
if (useStructuredResult) {
143+
return result
144+
} else {
145+
return result.raw
146+
}
146147
} catch (err) {
147148
connection.logger.logQueryError(err, query, parameters, this)
148149
broadcaster.broadcastAfterQueryEvent(

0 commit comments

Comments
 (0)