typeorm 0.3.23-dev.24a0369 → 0.3.23-dev.3ffeea5

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.
Files changed (77) hide show
  1. package/browser/data-source/DataSource.js +2 -1
  2. package/browser/data-source/DataSource.js.map +1 -1
  3. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +8 -8
  4. package/browser/driver/cockroachdb/CockroachQueryRunner.js +16 -16
  5. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  6. package/browser/driver/cordova/CordovaQueryRunner.js +6 -6
  7. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  8. package/browser/driver/expo/ExpoQueryRunner.js +5 -4
  9. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  10. package/browser/driver/mysql/MysqlQueryRunner.d.ts +7 -7
  11. package/browser/driver/mysql/MysqlQueryRunner.js +16 -16
  12. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  13. package/browser/driver/nativescript/NativescriptQueryRunner.js +4 -4
  14. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  15. package/browser/driver/oracle/OracleQueryRunner.d.ts +7 -7
  16. package/browser/driver/oracle/OracleQueryRunner.js +13 -13
  17. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  18. package/browser/driver/postgres/PostgresQueryRunner.js +2 -2
  19. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  20. package/browser/driver/react-native/ReactNativeQueryRunner.js +53 -46
  21. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  22. package/browser/driver/sap/SapQueryRunner.d.ts +1 -1
  23. package/browser/driver/sap/SapQueryRunner.js +46 -23
  24. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  25. package/browser/driver/spanner/SpannerQueryRunner.js +6 -6
  26. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  27. package/browser/driver/sqlite/SqliteQueryRunner.js +9 -9
  28. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  29. package/browser/driver/sqljs/SqljsQueryRunner.js +5 -5
  30. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  31. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  32. package/browser/driver/sqlserver/SqlServerQueryRunner.js +7 -7
  33. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  34. package/browser/persistence/SubjectChangedColumnsComputer.js +23 -9
  35. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  36. package/browser/subscriber/Broadcaster.d.ts +6 -6
  37. package/browser/subscriber/Broadcaster.js +1 -1
  38. package/browser/subscriber/Broadcaster.js.map +1 -1
  39. package/data-source/DataSource.js +2 -1
  40. package/data-source/DataSource.js.map +1 -1
  41. package/driver/cockroachdb/CockroachQueryRunner.d.ts +8 -8
  42. package/driver/cockroachdb/CockroachQueryRunner.js +16 -16
  43. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  44. package/driver/cordova/CordovaQueryRunner.js +6 -6
  45. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  46. package/driver/expo/ExpoQueryRunner.js +5 -4
  47. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  48. package/driver/mysql/MysqlQueryRunner.d.ts +7 -7
  49. package/driver/mysql/MysqlQueryRunner.js +16 -16
  50. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  51. package/driver/nativescript/NativescriptQueryRunner.js +4 -4
  52. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  53. package/driver/oracle/OracleQueryRunner.d.ts +7 -7
  54. package/driver/oracle/OracleQueryRunner.js +13 -13
  55. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  56. package/driver/postgres/PostgresQueryRunner.js +2 -2
  57. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  58. package/driver/react-native/ReactNativeQueryRunner.js +53 -46
  59. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  60. package/driver/sap/SapQueryRunner.d.ts +1 -1
  61. package/driver/sap/SapQueryRunner.js +46 -23
  62. package/driver/sap/SapQueryRunner.js.map +1 -1
  63. package/driver/spanner/SpannerQueryRunner.js +6 -6
  64. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  65. package/driver/sqlite/SqliteQueryRunner.js +9 -9
  66. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  67. package/driver/sqljs/SqljsQueryRunner.js +5 -5
  68. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  69. package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  70. package/driver/sqlserver/SqlServerQueryRunner.js +7 -7
  71. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  72. package/package.json +1 -1
  73. package/persistence/SubjectChangedColumnsComputer.js +23 -9
  74. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  75. package/subscriber/Broadcaster.d.ts +6 -6
  76. package/subscriber/Broadcaster.js +1 -1
  77. package/subscriber/Broadcaster.js.map +1 -1
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SqliteQueryRunner = void 0;
4
- const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
5
- const QueryFailedError_1 = require("../../error/QueryFailedError");
6
- const AbstractSqliteQueryRunner_1 = require("../sqlite-abstract/AbstractSqliteQueryRunner");
7
- const Broadcaster_1 = require("../../subscriber/Broadcaster");
8
4
  const ConnectionIsNotSetError_1 = require("../../error/ConnectionIsNotSetError");
5
+ const QueryFailedError_1 = require("../../error/QueryFailedError");
6
+ const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
9
7
  const QueryResult_1 = require("../../query-runner/QueryResult");
8
+ const Broadcaster_1 = require("../../subscriber/Broadcaster");
10
9
  const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
10
+ const AbstractSqliteQueryRunner_1 = require("../sqlite-abstract/AbstractSqliteQueryRunner");
11
11
  /**
12
12
  * Runs queries on a single sqlite database connection.
13
13
  *
@@ -39,22 +39,22 @@ class SqliteQueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqliteQueryR
39
39
  /**
40
40
  * Executes a given SQL query.
41
41
  */
42
- query(query, parameters, useStructuredResult = false) {
42
+ async query(query, parameters, useStructuredResult = false) {
43
43
  if (this.isReleased)
44
44
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
45
45
  const connection = this.driver.connection;
46
46
  const options = connection.options;
47
47
  const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
48
- const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
49
48
  const broadcaster = this.broadcaster;
50
- broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
51
49
  if (!connection.isInitialized) {
52
50
  throw new ConnectionIsNotSetError_1.ConnectionIsNotSetError("sqlite");
53
51
  }
52
+ const databaseConnection = await this.connect();
53
+ this.driver.connection.logger.logQuery(query, parameters, this);
54
+ await broadcaster.broadcast("BeforeQuery", query, parameters);
55
+ const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
54
56
  return new Promise(async (ok, fail) => {
55
57
  try {
56
- const databaseConnection = await this.connect();
57
- this.driver.connection.logger.logQuery(query, parameters, this);
58
58
  const queryStartTime = Date.now();
59
59
  const isInsertQuery = query.startsWith("INSERT ");
60
60
  const isDeleteQuery = query.startsWith("DELETE ");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/sqlite/SqliteQueryRunner.ts"],"names":[],"mappings":"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","file":"SqliteQueryRunner.js","sourcesContent":["import { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { SqliteConnectionOptions } from \"./SqliteConnectionOptions\"\nimport { SqliteDriver } from \"./SqliteDriver\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { ConnectionIsNotSetError } from \"../../error/ConnectionIsNotSetError\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\n\n/**\n * Runs queries on a single sqlite database connection.\n *\n * Does not support compose primary keys with autoincrement field.\n * todo: need to throw exception for this case.\n */\nexport class SqliteQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n driver: SqliteDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: SqliteDriver) {\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 query(\n query: string,\n parameters?: any[],\n useStructuredResult = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n const connection = this.driver.connection\n const options = connection.options as SqliteConnectionOptions\n const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime\n const broadcasterResult = new BroadcasterResult()\n const broadcaster = this.broadcaster\n\n broadcaster.broadcastBeforeQueryEvent(\n broadcasterResult,\n query,\n parameters,\n )\n\n if (!connection.isInitialized) {\n throw new ConnectionIsNotSetError(\"sqlite\")\n }\n\n return new Promise(async (ok, fail) => {\n try {\n const databaseConnection = await this.connect()\n this.driver.connection.logger.logQuery(query, parameters, this)\n const queryStartTime = Date.now()\n const isInsertQuery = query.startsWith(\"INSERT \")\n const isDeleteQuery = query.startsWith(\"DELETE \")\n const isUpdateQuery = query.startsWith(\"UPDATE \")\n\n const execute = async () => {\n if (isInsertQuery || isDeleteQuery || isUpdateQuery) {\n await databaseConnection.run(query, parameters, handler)\n } else {\n await databaseConnection.all(query, parameters, handler)\n }\n }\n\n const self = this\n const handler = function (this: any, err: any, rows: any) {\n if (err && err.toString().indexOf(\"SQLITE_BUSY:\") !== -1) {\n if (\n typeof options.busyErrorRetry === \"number\" &&\n options.busyErrorRetry > 0\n ) {\n setTimeout(execute, options.busyErrorRetry)\n return\n }\n }\n\n // log slow queries if maxQueryExecution time is set\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n self,\n )\n\n if (err) {\n connection.logger.logQueryError(\n err,\n query,\n parameters,\n self,\n )\n broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n\n return fail(\n new QueryFailedError(query, parameters, err),\n )\n } else {\n const result = new QueryResult()\n\n if (isInsertQuery) {\n result.raw = this[\"lastID\"]\n } else {\n result.raw = rows\n }\n\n broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n result.raw,\n undefined,\n )\n\n if (Array.isArray(rows)) {\n result.records = rows\n }\n\n result.affected = this[\"changes\"]\n\n if (useStructuredResult) {\n ok(result)\n } else {\n ok(result.raw)\n }\n }\n }\n\n await execute()\n } catch (err) {\n fail(err)\n } finally {\n await broadcasterResult.wait()\n }\n })\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/sqlite/SqliteQueryRunner.ts"],"names":[],"mappings":"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","file":"SqliteQueryRunner.js","sourcesContent":["import { ConnectionIsNotSetError } from \"../../error/ConnectionIsNotSetError\"\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 { SqliteConnectionOptions } from \"./SqliteConnectionOptions\"\nimport { SqliteDriver } from \"./SqliteDriver\"\n\n/**\n * Runs queries on a single sqlite database connection.\n *\n * Does not support compose primary keys with autoincrement field.\n * todo: need to throw exception for this case.\n */\nexport class SqliteQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n driver: SqliteDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: SqliteDriver) {\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 connection = this.driver.connection\n const options = connection.options as SqliteConnectionOptions\n const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime\n const broadcaster = this.broadcaster\n\n if (!connection.isInitialized) {\n throw new ConnectionIsNotSetError(\"sqlite\")\n }\n\n const databaseConnection = await this.connect()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n await broadcaster.broadcast(\"BeforeQuery\", query, parameters)\n\n const broadcasterResult = new BroadcasterResult()\n\n return new Promise(async (ok, fail) => {\n try {\n const queryStartTime = Date.now()\n const isInsertQuery = query.startsWith(\"INSERT \")\n const isDeleteQuery = query.startsWith(\"DELETE \")\n const isUpdateQuery = query.startsWith(\"UPDATE \")\n\n const execute = async () => {\n if (isInsertQuery || isDeleteQuery || isUpdateQuery) {\n await databaseConnection.run(query, parameters, handler)\n } else {\n await databaseConnection.all(query, parameters, handler)\n }\n }\n\n const self = this\n const handler = function (this: any, err: any, rows: any) {\n if (err && err.toString().indexOf(\"SQLITE_BUSY:\") !== -1) {\n if (\n typeof options.busyErrorRetry === \"number\" &&\n options.busyErrorRetry > 0\n ) {\n setTimeout(execute, options.busyErrorRetry)\n return\n }\n }\n\n // log slow queries if maxQueryExecution time is set\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n self,\n )\n\n if (err) {\n connection.logger.logQueryError(\n err,\n query,\n parameters,\n self,\n )\n broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n\n return fail(\n new QueryFailedError(query, parameters, err),\n )\n } else {\n const result = new QueryResult()\n\n if (isInsertQuery) {\n result.raw = this[\"lastID\"]\n } else {\n result.raw = rows\n }\n\n broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n result.raw,\n undefined,\n )\n\n if (Array.isArray(rows)) {\n result.records = rows\n }\n\n result.affected = this[\"changes\"]\n\n if (useStructuredResult) {\n ok(result)\n } else {\n ok(result.raw)\n }\n }\n }\n\n await execute()\n } catch (err) {\n fail(err)\n } finally {\n await broadcasterResult.wait()\n }\n })\n }\n}\n"],"sourceRoot":"../.."}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SqljsQueryRunner = void 0;
4
- const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
5
- const AbstractSqliteQueryRunner_1 = require("../sqlite-abstract/AbstractSqliteQueryRunner");
6
- const Broadcaster_1 = require("../../subscriber/Broadcaster");
7
4
  const QueryFailedError_1 = require("../../error/QueryFailedError");
5
+ const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
8
6
  const QueryResult_1 = require("../../query-runner/QueryResult");
7
+ const Broadcaster_1 = require("../../subscriber/Broadcaster");
9
8
  const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
9
+ const AbstractSqliteQueryRunner_1 = require("../sqlite-abstract/AbstractSqliteQueryRunner");
10
10
  /**
11
11
  * Runs queries on a single sqlite database connection.
12
12
  */
@@ -67,9 +67,9 @@ class SqljsQueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqliteQueryRu
67
67
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
68
68
  const command = query.trim().split(" ", 1)[0];
69
69
  const databaseConnection = this.driver.databaseConnection;
70
- const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
71
70
  this.driver.connection.logger.logQuery(query, parameters, this);
72
- this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
71
+ await this.broadcaster.broadcast("BeforeQuery", query, parameters);
72
+ const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
73
73
  const queryStartTime = Date.now();
74
74
  let statement;
75
75
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/sqljs/SqljsQueryRunner.ts"],"names":[],"mappings":"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","file":"SqljsQueryRunner.js","sourcesContent":["import { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { SqljsDriver } from \"./SqljsDriver\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class SqljsQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Flag to determine if a modification has happened since the last time this query runner has requested a save.\n */\n private isDirty = false\n\n /**\n * Database driver used by connection.\n */\n driver: SqljsDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: SqljsDriver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n }\n\n // -------------------------------------------------------------------------\n // Public methods\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 private async flush() {\n if (this.isDirty) {\n await this.driver.autoSave()\n this.isDirty = false\n }\n }\n\n async release(): Promise<void> {\n await this.flush()\n return super.release()\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n async commitTransaction(): Promise<void> {\n await super.commitTransaction()\n if (!this.isTransactionActive) {\n await this.flush()\n }\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 command = query.trim().split(\" \", 1)[0]\n\n const databaseConnection = this.driver.databaseConnection\n const broadcasterResult = new BroadcasterResult()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n this.broadcaster.broadcastBeforeQueryEvent(\n broadcasterResult,\n query,\n parameters,\n )\n\n const queryStartTime = Date.now()\n let statement: any\n try {\n statement = databaseConnection.prepare(query)\n if (parameters) {\n parameters = parameters.map((p) =>\n typeof p !== \"undefined\" ? p : null,\n )\n\n statement.bind(parameters)\n }\n\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\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 const records: any[] = []\n\n while (statement.step()) {\n records.push(statement.getAsObject())\n }\n\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n records,\n undefined,\n )\n\n const result = new QueryResult()\n\n result.affected = databaseConnection.getRowsModified()\n result.records = records\n result.raw = records\n\n statement.free()\n\n if (command !== \"SELECT\") {\n this.isDirty = true\n }\n\n if (useStructuredResult) {\n return result\n } else {\n return result.raw\n }\n } catch (err) {\n if (statement) {\n statement.free()\n }\n\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 throw new QueryFailedError(query, parameters, err)\n } finally {\n await broadcasterResult.wait()\n }\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/sqljs/SqljsQueryRunner.ts"],"names":[],"mappings":"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","file":"SqljsQueryRunner.js","sourcesContent":["import { 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 { SqljsDriver } from \"./SqljsDriver\"\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class SqljsQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Flag to determine if a modification has happened since the last time this query runner has requested a save.\n */\n private isDirty = false\n\n /**\n * Database driver used by connection.\n */\n driver: SqljsDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: SqljsDriver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n }\n\n // -------------------------------------------------------------------------\n // Public methods\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 private async flush() {\n if (this.isDirty) {\n await this.driver.autoSave()\n this.isDirty = false\n }\n }\n\n async release(): Promise<void> {\n await this.flush()\n return super.release()\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n async commitTransaction(): Promise<void> {\n await super.commitTransaction()\n if (!this.isTransactionActive) {\n await this.flush()\n }\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 command = query.trim().split(\" \", 1)[0]\n\n const databaseConnection = this.driver.databaseConnection\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 const queryStartTime = Date.now()\n let statement: any\n\n try {\n statement = databaseConnection.prepare(query)\n if (parameters) {\n parameters = parameters.map((p) =>\n typeof p !== \"undefined\" ? p : null,\n )\n\n statement.bind(parameters)\n }\n\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\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 const records: any[] = []\n\n while (statement.step()) {\n records.push(statement.getAsObject())\n }\n\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n records,\n undefined,\n )\n\n const result = new QueryResult()\n\n result.affected = databaseConnection.getRowsModified()\n result.records = records\n result.raw = records\n\n statement.free()\n\n if (command !== \"SELECT\") {\n this.isDirty = true\n }\n\n if (useStructuredResult) {\n return result\n } else {\n return result.raw\n }\n } catch (err) {\n if (statement) {\n statement.free()\n }\n\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 throw new QueryFailedError(query, parameters, err)\n } finally {\n await broadcasterResult.wait()\n }\n }\n}\n"],"sourceRoot":"../.."}
@@ -11,9 +11,9 @@ 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 { ReplicationMode } from "../types/ReplicationMode";
14
15
  import { MssqlParameter } from "./MssqlParameter";
15
16
  import { SqlServerDriver } from "./SqlServerDriver";
16
- import { ReplicationMode } from "../types/ReplicationMode";
17
17
  /**
18
18
  * Runs queries on a single SQL Server database connection.
19
19
  */
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SqlServerQueryRunner = void 0;
4
- const QueryResult_1 = require("../../query-runner/QueryResult");
4
+ const error_1 = require("../../error");
5
5
  const QueryFailedError_1 = require("../../error/QueryFailedError");
6
6
  const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
7
7
  const TransactionNotStartedError_1 = require("../../error/TransactionNotStartedError");
8
8
  const BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
9
+ const QueryLock_1 = require("../../query-runner/QueryLock");
10
+ const QueryResult_1 = require("../../query-runner/QueryResult");
9
11
  const Table_1 = require("../../schema-builder/table/Table");
10
12
  const TableCheck_1 = require("../../schema-builder/table/TableCheck");
11
13
  const TableColumn_1 = require("../../schema-builder/table/TableColumn");
@@ -14,13 +16,11 @@ const TableIndex_1 = require("../../schema-builder/table/TableIndex");
14
16
  const TableUnique_1 = require("../../schema-builder/table/TableUnique");
15
17
  const View_1 = require("../../schema-builder/view/View");
16
18
  const Broadcaster_1 = require("../../subscriber/Broadcaster");
19
+ const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
20
+ const InstanceChecker_1 = require("../../util/InstanceChecker");
17
21
  const OrmUtils_1 = require("../../util/OrmUtils");
18
22
  const Query_1 = require("../Query");
19
- const error_1 = require("../../error");
20
- const QueryLock_1 = require("../../query-runner/QueryLock");
21
23
  const MetadataTableType_1 = require("../types/MetadataTableType");
22
- const InstanceChecker_1 = require("../../util/InstanceChecker");
23
- const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
24
24
  /**
25
25
  * Runs queries on a single SQL Server database connection.
26
26
  */
@@ -163,10 +163,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
163
163
  if (this.isReleased)
164
164
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
165
165
  const release = await this.lock.acquire();
166
+ this.driver.connection.logger.logQuery(query, parameters, this);
167
+ await this.broadcaster.broadcast("BeforeQuery", query, parameters);
166
168
  const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
167
169
  try {
168
- this.driver.connection.logger.logQuery(query, parameters, this);
169
- this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
170
170
  const pool = await (this.mode === "slave"
171
171
  ? this.driver.obtainSlaveConnection()
172
172
  : this.driver.obtainMasterConnection());