typeorm 0.3.23-dev.a61654e → 0.3.23-dev.b9842e3
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/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +8 -8
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +16 -16
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.js +6 -6
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js +5 -4
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +7 -7
- package/browser/driver/mysql/MysqlQueryRunner.js +16 -16
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js +4 -4
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +7 -7
- package/browser/driver/oracle/OracleQueryRunner.js +13 -13
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +2 -2
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js +53 -46
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.d.ts +1 -1
- package/browser/driver/sap/SapQueryRunner.js +9 -9
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.js +6 -6
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js +9 -9
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqljs/SqljsQueryRunner.js +5 -5
- package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +7 -7
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +6 -6
- package/browser/subscriber/Broadcaster.js +1 -1
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +8 -8
- package/driver/cockroachdb/CockroachQueryRunner.js +16 -16
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.js +6 -6
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.js +5 -4
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +7 -7
- package/driver/mysql/MysqlQueryRunner.js +16 -16
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.js +4 -4
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +7 -7
- package/driver/oracle/OracleQueryRunner.js +13 -13
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +2 -2
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.js +53 -46
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapQueryRunner.d.ts +1 -1
- package/driver/sap/SapQueryRunner.js +9 -9
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerQueryRunner.js +6 -6
- package/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.js +9 -9
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.js +5 -5
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +7 -7
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/package.json +1 -1
- package/subscriber/Broadcaster.d.ts +6 -6
- package/subscriber/Broadcaster.js +1 -1
- package/subscriber/Broadcaster.js.map +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { QueryRunnerAlreadyReleasedError } from "../../error/QueryRunnerAlreadyReleasedError";
|
|
2
1
|
import { QueryFailedError } from "../../error/QueryFailedError";
|
|
3
|
-
import {
|
|
4
|
-
import { Broadcaster } from "../../subscriber/Broadcaster";
|
|
2
|
+
import { QueryRunnerAlreadyReleasedError } from "../../error/QueryRunnerAlreadyReleasedError";
|
|
5
3
|
import { QueryResult } from "../../query-runner/QueryResult";
|
|
4
|
+
import { Broadcaster } from "../../subscriber/Broadcaster";
|
|
6
5
|
import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
|
|
6
|
+
import { AbstractSqliteQueryRunner } from "../sqlite-abstract/AbstractSqliteQueryRunner";
|
|
7
7
|
/**
|
|
8
8
|
* Runs queries on a single sqlite database connection.
|
|
9
9
|
*/
|
|
@@ -32,54 +32,61 @@ export class ReactNativeQueryRunner extends AbstractSqliteQueryRunner {
|
|
|
32
32
|
/**
|
|
33
33
|
* Executes a given SQL query.
|
|
34
34
|
*/
|
|
35
|
-
query(query, parameters, useStructuredResult = false) {
|
|
35
|
+
async query(query, parameters, useStructuredResult = false) {
|
|
36
36
|
if (this.isReleased)
|
|
37
37
|
throw new QueryRunnerAlreadyReleasedError();
|
|
38
|
+
const databaseConnection = await this.connect();
|
|
39
|
+
this.driver.connection.logger.logQuery(query, parameters, this);
|
|
40
|
+
await this.broadcaster.broadcast("BeforeQuery", query, parameters);
|
|
41
|
+
const broadcasterResult = new BroadcasterResult();
|
|
42
|
+
const queryStartTime = Date.now();
|
|
38
43
|
return new Promise(async (ok, fail) => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
44
|
+
try {
|
|
45
|
+
databaseConnection.executeSql(query, parameters, async (raw) => {
|
|
46
|
+
// log slow queries if maxQueryExecution time is set
|
|
47
|
+
const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
|
|
48
|
+
const queryEndTime = Date.now();
|
|
49
|
+
const queryExecutionTime = queryEndTime - queryStartTime;
|
|
50
|
+
this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, true, queryExecutionTime, raw, undefined);
|
|
51
|
+
if (maxQueryExecutionTime &&
|
|
52
|
+
queryExecutionTime > maxQueryExecutionTime)
|
|
53
|
+
this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
|
|
54
|
+
if (broadcasterResult.promises.length > 0)
|
|
55
|
+
await Promise.all(broadcasterResult.promises);
|
|
56
|
+
const result = new QueryResult();
|
|
57
|
+
if (raw?.hasOwnProperty("rowsAffected")) {
|
|
58
|
+
result.affected = raw.rowsAffected;
|
|
59
|
+
}
|
|
60
|
+
if (raw?.hasOwnProperty("rows")) {
|
|
61
|
+
const records = [];
|
|
62
|
+
for (let i = 0; i < raw.rows.length; i++) {
|
|
63
|
+
records.push(raw.rows.item(i));
|
|
64
|
+
}
|
|
65
|
+
result.raw = records;
|
|
66
|
+
result.records = records;
|
|
67
|
+
}
|
|
68
|
+
// return id of inserted row, if query was insert statement.
|
|
69
|
+
if (query.substr(0, 11) === "INSERT INTO") {
|
|
70
|
+
result.raw = raw.insertId;
|
|
71
|
+
}
|
|
72
|
+
if (useStructuredResult) {
|
|
73
|
+
ok(result);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
ok(result.raw);
|
|
63
77
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
else {
|
|
75
|
-
ok(result.raw);
|
|
76
|
-
}
|
|
77
|
-
}, async (err) => {
|
|
78
|
-
this.driver.connection.logger.logQueryError(err, query, parameters, this);
|
|
79
|
-
this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
|
|
78
|
+
}, async (err) => {
|
|
79
|
+
this.driver.connection.logger.logQueryError(err, query, parameters, this);
|
|
80
|
+
this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
|
|
81
|
+
fail(new QueryFailedError(query, parameters, err));
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
fail(err);
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
80
88
|
await broadcasterResult.wait();
|
|
81
|
-
|
|
82
|
-
});
|
|
89
|
+
}
|
|
83
90
|
});
|
|
84
91
|
}
|
|
85
92
|
// -------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/driver/react-native/ReactNativeQueryRunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE
|
|
1
|
+
{"version":3,"sources":["../browser/src/driver/react-native/ReactNativeQueryRunner.ts"],"names":[],"mappings":"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","file":"ReactNativeQueryRunner.js","sourcesContent":["import { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { ReactNativeDriver } from \"./ReactNativeDriver\"\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class ReactNativeQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n // @ts-ignore temporary, we need to fix the issue with the AbstractSqliteDriver and circular errors\n driver: ReactNativeDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: ReactNativeDriver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n }\n\n /**\n * Called before migrations are run.\n */\n async beforeMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = OFF`)\n }\n\n /**\n * Called after migrations are run.\n */\n async afterMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = ON`)\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(\n query: string,\n parameters?: any[],\n useStructuredResult = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n const databaseConnection = await this.connect()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n await this.broadcaster.broadcast(\"BeforeQuery\", query, parameters)\n\n const broadcasterResult = new BroadcasterResult()\n\n const queryStartTime = Date.now()\n\n return new Promise(async (ok, fail) => {\n try {\n databaseConnection.executeSql(\n query,\n parameters,\n async (raw: any) => {\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n raw,\n undefined,\n )\n\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n if (broadcasterResult.promises.length > 0)\n await Promise.all(broadcasterResult.promises)\n\n const result = new QueryResult()\n\n if (raw?.hasOwnProperty(\"rowsAffected\")) {\n result.affected = raw.rowsAffected\n }\n\n if (raw?.hasOwnProperty(\"rows\")) {\n const records = []\n for (let i = 0; i < raw.rows.length; i++) {\n records.push(raw.rows.item(i))\n }\n\n result.raw = records\n result.records = records\n }\n\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId\n }\n\n if (useStructuredResult) {\n ok(result)\n } else {\n ok(result.raw)\n }\n },\n async (err: any) => {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n\n fail(new QueryFailedError(query, parameters, err))\n },\n )\n } catch (err) {\n fail(err)\n } finally {\n await broadcasterResult.wait()\n }\n })\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(\n objectLiteral: ObjectLiteral,\n startIndex: number = 0,\n ): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\")\n }\n}\n"],"sourceRoot":"../.."}
|
|
@@ -11,8 +11,8 @@ import { TableUnique } from "../../schema-builder/table/TableUnique";
|
|
|
11
11
|
import { View } from "../../schema-builder/view/View";
|
|
12
12
|
import { Query } from "../Query";
|
|
13
13
|
import { IsolationLevel } from "../types/IsolationLevel";
|
|
14
|
-
import { SapDriver } from "./SapDriver";
|
|
15
14
|
import { ReplicationMode } from "../types/ReplicationMode";
|
|
15
|
+
import { SapDriver } from "./SapDriver";
|
|
16
16
|
/**
|
|
17
17
|
* Runs queries on a single SQL Server database connection.
|
|
18
18
|
*/
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { promisify } from "util";
|
|
2
|
+
import { QueryFailedError, TypeORMError } from "../../error";
|
|
1
3
|
import { QueryRunnerAlreadyReleasedError } from "../../error/QueryRunnerAlreadyReleasedError";
|
|
2
4
|
import { TransactionAlreadyStartedError } from "../../error/TransactionAlreadyStartedError";
|
|
3
5
|
import { TransactionNotStartedError } from "../../error/TransactionNotStartedError";
|
|
4
6
|
import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
|
|
7
|
+
import { QueryLock } from "../../query-runner/QueryLock";
|
|
8
|
+
import { QueryResult } from "../../query-runner/QueryResult";
|
|
5
9
|
import { Table } from "../../schema-builder/table/Table";
|
|
6
10
|
import { TableCheck } from "../../schema-builder/table/TableCheck";
|
|
7
11
|
import { TableColumn } from "../../schema-builder/table/TableColumn";
|
|
@@ -10,15 +14,11 @@ import { TableIndex } from "../../schema-builder/table/TableIndex";
|
|
|
10
14
|
import { TableUnique } from "../../schema-builder/table/TableUnique";
|
|
11
15
|
import { View } from "../../schema-builder/view/View";
|
|
12
16
|
import { Broadcaster } from "../../subscriber/Broadcaster";
|
|
17
|
+
import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
|
|
18
|
+
import { InstanceChecker } from "../../util/InstanceChecker";
|
|
13
19
|
import { OrmUtils } from "../../util/OrmUtils";
|
|
14
20
|
import { Query } from "../Query";
|
|
15
|
-
import { QueryFailedError, TypeORMError } from "../../error";
|
|
16
|
-
import { QueryResult } from "../../query-runner/QueryResult";
|
|
17
|
-
import { QueryLock } from "../../query-runner/QueryLock";
|
|
18
21
|
import { MetadataTableType } from "../types/MetadataTableType";
|
|
19
|
-
import { InstanceChecker } from "../../util/InstanceChecker";
|
|
20
|
-
import { promisify } from "util";
|
|
21
|
-
import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
|
|
22
22
|
/**
|
|
23
23
|
* Runs queries on a single SQL Server database connection.
|
|
24
24
|
*/
|
|
@@ -132,13 +132,13 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
132
132
|
if (this.isReleased)
|
|
133
133
|
throw new QueryRunnerAlreadyReleasedError();
|
|
134
134
|
const release = await this.lock.acquire();
|
|
135
|
+
const databaseConnection = await this.connect();
|
|
135
136
|
let statement;
|
|
136
137
|
const result = new QueryResult();
|
|
138
|
+
this.driver.connection.logger.logQuery(query, parameters, this);
|
|
139
|
+
await this.broadcaster.broadcast("BeforeQuery", query, parameters);
|
|
137
140
|
const broadcasterResult = new BroadcasterResult();
|
|
138
141
|
try {
|
|
139
|
-
const databaseConnection = await this.connect();
|
|
140
|
-
this.driver.connection.logger.logQuery(query, parameters, this);
|
|
141
|
-
this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
|
|
142
142
|
const queryStartTime = Date.now();
|
|
143
143
|
const isInsertQuery = query.substr(0, 11) === "INSERT INTO";
|
|
144
144
|
if (parameters?.some(Array.isArray)) {
|