typeorm 0.3.18-dev.fdb9866 → 0.3.18

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 (269) hide show
  1. package/browser/cache/DbQueryResultCache.js +3 -0
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/data-source/BaseDataSourceOptions.d.ts +4 -0
  4. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  5. package/browser/data-source/DataSource.js +3 -0
  6. package/browser/data-source/DataSource.js.map +1 -1
  7. package/browser/decorator/entity/Entity.js +1 -0
  8. package/browser/decorator/entity/Entity.js.map +1 -1
  9. package/browser/decorator/options/EntityOptions.d.ts +4 -0
  10. package/browser/decorator/options/EntityOptions.js.map +1 -1
  11. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +4 -0
  12. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -6
  13. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  14. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +5 -0
  15. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +16 -6
  16. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  17. package/browser/driver/capacitor/CapacitorDriver.js +2 -2
  18. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  19. package/browser/driver/capacitor/CapacitorQueryRunner.js +2 -2
  20. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  21. package/browser/driver/cockroachdb/CockroachDriver.js +20 -10
  22. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  23. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +10 -1
  24. package/browser/driver/cockroachdb/CockroachQueryRunner.js +55 -19
  25. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  26. package/browser/driver/cordova/CordovaDriver.js +2 -2
  27. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  28. package/browser/driver/cordova/CordovaQueryRunner.js +8 -0
  29. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  30. package/browser/driver/expo/ExpoQueryRunner.js +9 -2
  31. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  32. package/browser/driver/mongodb/MongoQueryRunner.d.ts +4 -0
  33. package/browser/driver/mongodb/MongoQueryRunner.js +6 -0
  34. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  35. package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  36. package/browser/driver/mysql/MysqlQueryRunner.js +47 -10
  37. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  38. package/browser/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  39. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  40. package/browser/driver/oracle/OracleDriver.js +6 -0
  41. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  42. package/browser/driver/oracle/OracleQueryRunner.d.ts +4 -0
  43. package/browser/driver/oracle/OracleQueryRunner.js +21 -5
  44. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  45. package/browser/driver/postgres/PostgresDriver.js +1 -4
  46. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  47. package/browser/driver/postgres/PostgresQueryRunner.d.ts +4 -0
  48. package/browser/driver/postgres/PostgresQueryRunner.js +24 -7
  49. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  50. package/browser/driver/react-native/ReactNativeQueryRunner.js +10 -2
  51. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  52. package/browser/driver/sap/SapQueryRunner.d.ts +4 -0
  53. package/browser/driver/sap/SapQueryRunner.js +28 -10
  54. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  55. package/browser/driver/spanner/SpannerQueryRunner.d.ts +4 -0
  56. package/browser/driver/spanner/SpannerQueryRunner.js +13 -1
  57. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  58. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  59. package/browser/driver/sqlite/SqliteQueryRunner.js +60 -46
  60. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  61. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +4 -0
  62. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +16 -7
  63. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  64. package/browser/driver/sqljs/SqljsQueryRunner.js +11 -3
  65. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  66. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +0 -5
  67. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  68. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +4 -0
  69. package/browser/driver/sqlserver/SqlServerQueryRunner.js +19 -6
  70. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  71. package/browser/entity-manager/MongoEntityManager.js +4 -8
  72. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  73. package/browser/error/EntityNotFoundError.d.ts +2 -0
  74. package/browser/error/EntityNotFoundError.js +2 -0
  75. package/browser/error/EntityNotFoundError.js.map +1 -1
  76. package/browser/find-options/FindOperatorType.d.ts +1 -1
  77. package/browser/find-options/FindOperatorType.js.map +1 -1
  78. package/browser/find-options/operator/Or.d.ts +2 -0
  79. package/browser/find-options/operator/Or.js +6 -0
  80. package/browser/find-options/operator/Or.js.map +1 -0
  81. package/browser/index.d.ts +1 -0
  82. package/browser/index.js +1 -0
  83. package/browser/index.js.map +1 -1
  84. package/browser/logger/AbstractLogger.js +1 -1
  85. package/browser/logger/AbstractLogger.js.map +1 -1
  86. package/browser/metadata/ColumnMetadata.js +4 -0
  87. package/browser/metadata/ColumnMetadata.js.map +1 -1
  88. package/browser/metadata/EntityMetadata.d.ts +7 -3
  89. package/browser/metadata/EntityMetadata.js +8 -3
  90. package/browser/metadata/EntityMetadata.js.map +1 -1
  91. package/browser/metadata-args/TableMetadataArgs.d.ts +4 -0
  92. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  93. package/browser/persistence/SubjectExecutor.js +1 -1
  94. package/browser/persistence/SubjectExecutor.js.map +1 -1
  95. package/browser/platform/BrowserPlatformTools.d.ts +0 -7
  96. package/browser/platform/BrowserPlatformTools.js +3 -2
  97. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  98. package/browser/query-builder/InsertQueryBuilder.js +10 -1
  99. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  100. package/browser/query-builder/QueryBuilder.d.ts +5 -0
  101. package/browser/query-builder/QueryBuilder.js +35 -23
  102. package/browser/query-builder/QueryBuilder.js.map +1 -1
  103. package/browser/query-builder/QueryExpressionMap.d.ts +2 -1
  104. package/browser/query-builder/QueryExpressionMap.js +0 -4
  105. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  106. package/browser/query-builder/SelectQueryBuilder.js +5 -1
  107. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  108. package/browser/query-builder/WhereClause.d.ts +1 -1
  109. package/browser/query-builder/WhereClause.js.map +1 -1
  110. package/browser/query-builder/index.d.ts +1 -0
  111. package/browser/query-builder/index.js +17 -0
  112. package/browser/query-builder/index.js.map +1 -0
  113. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  114. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +28 -0
  115. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  116. package/browser/query-runner/BaseQueryRunner.js +1 -0
  117. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  118. package/browser/query-runner/QueryRunner.d.ts +4 -0
  119. package/browser/query-runner/QueryRunner.js.map +1 -1
  120. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
  121. package/browser/schema-builder/RdbmsSchemaBuilder.js +15 -0
  122. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  123. package/browser/schema-builder/options/TableOptions.d.ts +4 -0
  124. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  125. package/browser/schema-builder/table/Table.d.ts +4 -0
  126. package/browser/schema-builder/table/Table.js +3 -0
  127. package/browser/schema-builder/table/Table.js.map +1 -1
  128. package/browser/subscriber/Broadcaster.d.ts +10 -0
  129. package/browser/subscriber/Broadcaster.js +46 -0
  130. package/browser/subscriber/Broadcaster.js.map +1 -1
  131. package/browser/subscriber/EntitySubscriberInterface.d.ts +9 -0
  132. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  133. package/browser/subscriber/event/QueryEvent.d.ts +50 -0
  134. package/browser/subscriber/event/QueryEvent.js +3 -0
  135. package/browser/subscriber/event/QueryEvent.js.map +1 -0
  136. package/cache/DbQueryResultCache.js +3 -0
  137. package/cache/DbQueryResultCache.js.map +1 -1
  138. package/data-source/BaseDataSourceOptions.d.ts +4 -0
  139. package/data-source/BaseDataSourceOptions.js.map +1 -1
  140. package/data-source/DataSource.js +3 -0
  141. package/data-source/DataSource.js.map +1 -1
  142. package/decorator/entity/Entity.js +1 -0
  143. package/decorator/entity/Entity.js.map +1 -1
  144. package/decorator/options/EntityOptions.d.ts +4 -0
  145. package/decorator/options/EntityOptions.js.map +1 -1
  146. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +4 -0
  147. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -6
  148. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  149. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +5 -0
  150. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +16 -6
  151. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  152. package/driver/capacitor/CapacitorDriver.js +2 -2
  153. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  154. package/driver/capacitor/CapacitorQueryRunner.js +2 -2
  155. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  156. package/driver/cockroachdb/CockroachDriver.js +20 -10
  157. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  158. package/driver/cockroachdb/CockroachQueryRunner.d.ts +10 -1
  159. package/driver/cockroachdb/CockroachQueryRunner.js +55 -19
  160. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  161. package/driver/cordova/CordovaDriver.js +2 -2
  162. package/driver/cordova/CordovaDriver.js.map +1 -1
  163. package/driver/cordova/CordovaQueryRunner.js +8 -0
  164. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  165. package/driver/expo/ExpoQueryRunner.js +9 -2
  166. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  167. package/driver/mongodb/MongoQueryRunner.d.ts +4 -0
  168. package/driver/mongodb/MongoQueryRunner.js +6 -0
  169. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  170. package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  171. package/driver/mysql/MysqlQueryRunner.js +47 -10
  172. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  173. package/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  174. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  175. package/driver/oracle/OracleDriver.js +6 -0
  176. package/driver/oracle/OracleDriver.js.map +1 -1
  177. package/driver/oracle/OracleQueryRunner.d.ts +4 -0
  178. package/driver/oracle/OracleQueryRunner.js +21 -5
  179. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  180. package/driver/postgres/PostgresDriver.js +1 -4
  181. package/driver/postgres/PostgresDriver.js.map +1 -1
  182. package/driver/postgres/PostgresQueryRunner.d.ts +4 -0
  183. package/driver/postgres/PostgresQueryRunner.js +24 -7
  184. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  185. package/driver/react-native/ReactNativeQueryRunner.js +10 -2
  186. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  187. package/driver/sap/SapQueryRunner.d.ts +4 -0
  188. package/driver/sap/SapQueryRunner.js +28 -10
  189. package/driver/sap/SapQueryRunner.js.map +1 -1
  190. package/driver/spanner/SpannerQueryRunner.d.ts +4 -0
  191. package/driver/spanner/SpannerQueryRunner.js +13 -1
  192. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  193. package/driver/sqlite/SqliteDriver.js.map +1 -1
  194. package/driver/sqlite/SqliteQueryRunner.js +60 -46
  195. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  196. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +4 -0
  197. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +16 -7
  198. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  199. package/driver/sqljs/SqljsQueryRunner.js +11 -3
  200. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  201. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +0 -5
  202. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  203. package/driver/sqlserver/SqlServerQueryRunner.d.ts +4 -0
  204. package/driver/sqlserver/SqlServerQueryRunner.js +19 -6
  205. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  206. package/entity-manager/MongoEntityManager.js +4 -8
  207. package/entity-manager/MongoEntityManager.js.map +1 -1
  208. package/error/EntityNotFoundError.d.ts +2 -0
  209. package/error/EntityNotFoundError.js +2 -0
  210. package/error/EntityNotFoundError.js.map +1 -1
  211. package/find-options/FindOperatorType.d.ts +1 -1
  212. package/find-options/FindOperatorType.js.map +1 -1
  213. package/find-options/operator/Or.d.ts +2 -0
  214. package/find-options/operator/Or.js +10 -0
  215. package/find-options/operator/Or.js.map +1 -0
  216. package/index.d.ts +1 -0
  217. package/index.js +1 -0
  218. package/index.js.map +1 -1
  219. package/index.mjs +2 -0
  220. package/logger/AbstractLogger.js +1 -1
  221. package/logger/AbstractLogger.js.map +1 -1
  222. package/metadata/ColumnMetadata.js +4 -0
  223. package/metadata/ColumnMetadata.js.map +1 -1
  224. package/metadata/EntityMetadata.d.ts +7 -3
  225. package/metadata/EntityMetadata.js +8 -3
  226. package/metadata/EntityMetadata.js.map +1 -1
  227. package/metadata-args/TableMetadataArgs.d.ts +4 -0
  228. package/metadata-args/TableMetadataArgs.js.map +1 -1
  229. package/package.json +273 -1
  230. package/persistence/SubjectExecutor.js +1 -1
  231. package/persistence/SubjectExecutor.js.map +1 -1
  232. package/query-builder/InsertQueryBuilder.js +10 -1
  233. package/query-builder/InsertQueryBuilder.js.map +1 -1
  234. package/query-builder/QueryBuilder.d.ts +5 -0
  235. package/query-builder/QueryBuilder.js +35 -23
  236. package/query-builder/QueryBuilder.js.map +1 -1
  237. package/query-builder/QueryExpressionMap.d.ts +2 -1
  238. package/query-builder/QueryExpressionMap.js +0 -4
  239. package/query-builder/QueryExpressionMap.js.map +1 -1
  240. package/query-builder/SelectQueryBuilder.js +5 -1
  241. package/query-builder/SelectQueryBuilder.js.map +1 -1
  242. package/query-builder/WhereClause.d.ts +1 -1
  243. package/query-builder/WhereClause.js.map +1 -1
  244. package/query-builder/index.d.ts +1 -0
  245. package/query-builder/index.js +21 -0
  246. package/query-builder/index.js.map +1 -0
  247. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  248. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +28 -0
  249. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  250. package/query-runner/BaseQueryRunner.js +1 -0
  251. package/query-runner/BaseQueryRunner.js.map +1 -1
  252. package/query-runner/QueryRunner.d.ts +4 -0
  253. package/query-runner/QueryRunner.js.map +1 -1
  254. package/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
  255. package/schema-builder/RdbmsSchemaBuilder.js +15 -0
  256. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  257. package/schema-builder/options/TableOptions.d.ts +4 -0
  258. package/schema-builder/options/TableOptions.js.map +1 -1
  259. package/schema-builder/table/Table.d.ts +4 -0
  260. package/schema-builder/table/Table.js +3 -0
  261. package/schema-builder/table/Table.js.map +1 -1
  262. package/subscriber/Broadcaster.d.ts +10 -0
  263. package/subscriber/Broadcaster.js +46 -0
  264. package/subscriber/Broadcaster.js.map +1 -1
  265. package/subscriber/EntitySubscriberInterface.d.ts +9 -0
  266. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  267. package/subscriber/event/QueryEvent.d.ts +50 -0
  268. package/subscriber/event/QueryEvent.js +4 -0
  269. package/subscriber/event/QueryEvent.js.map +1 -0
@@ -6,6 +6,7 @@ const AbstractSqliteQueryRunner_1 = require("../sqlite-abstract/AbstractSqliteQu
6
6
  const Broadcaster_1 = require("../../subscriber/Broadcaster");
7
7
  const QueryFailedError_1 = require("../../error/QueryFailedError");
8
8
  const QueryResult_1 = require("../../query-runner/QueryResult");
9
+ const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
9
10
  /**
10
11
  * Runs queries on a single sqlite database connection.
11
12
  */
@@ -66,7 +67,9 @@ class SqljsQueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqliteQueryRu
66
67
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
67
68
  const command = query.trim().split(" ", 1)[0];
68
69
  const databaseConnection = this.driver.databaseConnection;
70
+ const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
69
71
  this.driver.connection.logger.logQuery(query, parameters, this);
72
+ this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
70
73
  const queryStartTime = +new Date();
71
74
  let statement;
72
75
  try {
@@ -86,6 +89,7 @@ class SqljsQueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqliteQueryRu
86
89
  while (statement.step()) {
87
90
  records.push(statement.getAsObject());
88
91
  }
92
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, true, queryExecutionTime, records, undefined);
89
93
  const result = new QueryResult_1.QueryResult();
90
94
  result.affected = databaseConnection.getRowsModified();
91
95
  result.records = records;
@@ -101,12 +105,16 @@ class SqljsQueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqliteQueryRu
101
105
  return result.raw;
102
106
  }
103
107
  }
104
- catch (e) {
108
+ catch (err) {
105
109
  if (statement) {
106
110
  statement.free();
107
111
  }
108
- this.driver.connection.logger.logQueryError(e, query, parameters, this);
109
- throw new QueryFailedError_1.QueryFailedError(query, parameters, e);
112
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
113
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
114
+ throw new QueryFailedError_1.QueryFailedError(query, parameters, err);
115
+ }
116
+ finally {
117
+ await broadcasterResult.wait();
110
118
  }
111
119
  }
112
120
  }
@@ -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\"\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 this.driver.connection.logger.logQuery(query, parameters, this)\n const queryStartTime = +new Date()\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 = +new Date()\n const queryExecutionTime = queryEndTime - queryStartTime\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 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 (e) {\n if (statement) {\n statement.free()\n }\n\n this.driver.connection.logger.logQueryError(\n e,\n query,\n parameters,\n this,\n )\n throw new QueryFailedError(query, parameters, e)\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 { 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 = +new Date()\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 = +new Date()\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":"../.."}
@@ -50,11 +50,6 @@ export interface SqlServerConnectionOptions extends BaseDataSourceOptions, SqlSe
50
50
  * cycle of the event loop.
51
51
  */
52
52
  readonly maxWaitingClients?: number;
53
- /**
54
- * Should the pool validate resources before giving them to clients. Requires that either factory.validate or
55
- * factory.validateAsync to be specified
56
- */
57
- readonly testOnBorrow?: boolean;
58
53
  /**
59
54
  * Max milliseconds an acquire call will wait for a resource before timing out. (default no limit), if supplied should non-zero positive integer.
60
55
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/sqlserver/SqlServerConnectionOptions.ts"],"names":[],"mappings":"","file":"SqlServerConnectionOptions.js","sourcesContent":["import { BaseDataSourceOptions } from \"../../data-source/BaseDataSourceOptions\"\nimport { ReplicationMode } from \"../types/ReplicationMode\"\nimport { SqlServerConnectionCredentialsOptions } from \"./SqlServerConnectionCredentialsOptions\"\n\n/**\n * Microsoft Sql Server specific connection options.\n */\nexport interface SqlServerConnectionOptions\n extends BaseDataSourceOptions,\n SqlServerConnectionCredentialsOptions {\n /**\n * Database type.\n */\n readonly type: \"mssql\"\n\n /**\n * Connection timeout in ms (default: 15000).\n */\n readonly connectionTimeout?: number\n\n /**\n * Request timeout in ms (default: 15000). NOTE: msnodesqlv8 driver doesn't support timeouts < 1 second.\n */\n readonly requestTimeout?: number\n\n /**\n * Stream recordsets/rows instead of returning them all at once as an argument of callback (default: false).\n * You can also enable streaming for each request independently (request.stream = true).\n * Always set to true if you plan to work with large amount of rows.\n */\n readonly stream?: boolean\n\n /**\n * Database schema.\n */\n readonly schema?: string\n\n /**\n * The driver object\n * This defaults to `require(\"mssql\")`\n */\n readonly driver?: any\n\n /**\n * An optional object/dictionary with the any of the properties\n */\n readonly pool?: {\n /**\n * Maximum number of resources to create at any given time. (default=1)\n */\n readonly max?: number\n\n /**\n * Minimum number of resources to keep in pool at any given time. If this is set >= max, the pool will silently\n * set the min to equal max. (default=0)\n */\n readonly min?: number\n\n /**\n * Maximum number of queued requests allowed, additional acquire calls will be callback with an err in a future\n * cycle of the event loop.\n */\n readonly maxWaitingClients?: number\n\n /**\n * Should the pool validate resources before giving them to clients. Requires that either factory.validate or\n * factory.validateAsync to be specified\n */\n readonly testOnBorrow?: boolean\n\n /**\n * Max milliseconds an acquire call will wait for a resource before timing out. (default no limit), if supplied should non-zero positive integer.\n */\n readonly acquireTimeoutMillis?: number\n\n /**\n * If true the oldest resources will be first to be allocated. If false the most recently released resources will\n * be the first to be allocated. This in effect turns the pool's behaviour from a queue into a stack. boolean,\n * (default true)\n */\n readonly fifo?: boolean\n\n /**\n * Int between 1 and x - if set, borrowers can specify their relative priority in the queue if no resources\n * are available. see example. (default 1)\n */\n readonly priorityRange?: number\n\n /**\n * How often to run eviction checks. Default: 0 (does not run).\n */\n readonly evictionRunIntervalMillis?: number\n\n /**\n * Number of resources to check each eviction run. Default: 3.\n */\n readonly numTestsPerRun?: number\n\n /**\n * Amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object\n * evictor (if any), with the extra condition that at least \"min idle\" object instances remain in the pool.\n * Default -1 (nothing can get evicted)\n */\n readonly softIdleTimeoutMillis?: number\n\n /**\n * The minimum amount of time that an object may sit idle in the pool before it is eligible for eviction due\n * to idle time. Supercedes softIdleTimeoutMillis Default: 30000\n */\n readonly idleTimeoutMillis?: number\n\n /*\n * Function handling errors thrown by drivers pool.\n * Defaults to logging error with `warn` level.\n */\n readonly errorHandler?: (err: any) => any\n }\n\n /**\n * Extra options\n */\n readonly options?: {\n /**\n * The named instance to connect to\n */\n readonly instanceName?: string\n\n /**\n * By default, if the database requestion by options.database cannot be accessed, the connection will fail with\n * an error. However, if options.fallbackToDefaultDb is set to true, then the user's default database will\n * be used instead (Default: false).\n */\n readonly fallbackToDefaultDb?: boolean\n\n /**\n * If true, SET ANSI_NULL_DFLT_ON ON will be set in the initial sql. This means new columns will be nullable by\n * default. See the T-SQL documentation for more details. (Default: true).\n */\n readonly enableAnsiNullDefault?: boolean\n\n /**\n * The number of milliseconds before the attempt to connect is considered failed (default: 15000).\n */\n readonly connectTimeout?: number\n\n /**\n * The number of milliseconds before the cancel (abort) of a request is considered failed (default: 5000).\n */\n readonly cancelTimeout?: number\n\n /**\n * The size of TDS packets (subject to negotiation with the server). Should be a power of 2. (default: 4096).\n */\n readonly packetSize?: number\n\n /**\n * A boolean determining whether to pass time values in UTC or local time. (default: false).\n */\n readonly useUTC?: boolean\n\n /**\n * A boolean determining whether to rollback a transaction automatically if any error is encountered during\n * the given transaction's execution. This sets the value for SET XACT_ABORT during the initial SQL phase\n * of a connection (documentation).\n */\n readonly abortTransactionOnError?: boolean\n\n /**\n * A string indicating which network interface (ip address) to use when connecting to SQL Server.\n */\n readonly localAddress?: string\n\n /**\n * A boolean determining whether to return rows as arrays or key-value collections. (default: false).\n */\n readonly useColumnNames?: boolean\n\n /**\n * A boolean, controlling whether the column names returned will have the first letter converted to lower case\n * (true) or not. This value is ignored if you provide a columnNameReplacer. (default: false).\n */\n readonly camelCaseColumns?: boolean\n\n /**\n * A boolean, controlling whatever to disable RETURNING / OUTPUT statements.\n */\n readonly disableOutputReturning?: boolean\n\n /**\n * A boolean, controlling whether MssqlParameter types char, varchar, and text are converted to their unicode equivalents, nchar, nvarchar, and ntext.\n * (default: false, meaning that char/varchar/text parameters will be converted to nchar/nvarchar/ntext)\n */\n readonly disableAsciiToUnicodeParamConversion?: boolean\n\n /**\n * Debug options\n */\n readonly debug?: {\n /**\n * A boolean, controlling whether debug events will be emitted with text describing packet details\n * (default: false).\n */\n readonly packet?: boolean\n\n /**\n * A boolean, controlling whether debug events will be emitted with text describing packet data details\n * (default: false).\n */\n readonly data?: boolean\n\n /**\n * A boolean, controlling whether debug events will be emitted with text describing packet payload details\n * (default: false).\n */\n readonly payload?: boolean\n\n /**\n * A boolean, controlling whether debug events will be emitted with text describing token stream tokens\n * (default: false).\n */\n readonly token?: boolean\n }\n\n /**\n * The default isolation level that transactions will be run with. The isolation levels are available\n * from require('tedious').ISOLATION_LEVEL. (default: READ_COMMITTED).\n */\n readonly isolation?:\n | \"READ_UNCOMMITTED\"\n | \"READ_COMMITTED\"\n | \"REPEATABLE_READ\"\n | \"SERIALIZABLE\"\n | \"SNAPSHOT\"\n\n /**\n * The default isolation level for new connections. All out-of-transaction queries are executed with this\n * setting. The isolation levels are available from require('tedious').ISOLATION_LEVEL .\n */\n readonly connectionIsolationLevel?:\n | \"READ_UNCOMMITTED\"\n | \"READ_COMMITTED\"\n | \"REPEATABLE_READ\"\n | \"SERIALIZABLE\"\n | \"SNAPSHOT\"\n\n /**\n * A boolean, determining whether the connection will request read only access from a SQL Server\n * Availability Group. For more information, see here. (default: false).\n */\n readonly readOnlyIntent?: boolean\n\n /**\n * A boolean determining whether or not the connection will be encrypted. Set to true if you're on\n * Windows Azure. (default: true).\n */\n readonly encrypt?: boolean\n\n /**\n * When encryption is used, an object may be supplied that will be used for the first argument when calling\n * tls.createSecurePair (default: {}).\n */\n readonly cryptoCredentialsDetails?: any\n\n /**\n * A boolean, that when true will expose received rows in Requests' done* events. See done, doneInProc and\n * doneProc. (default: false)\n * Caution: If many row are received, enabling this option could result in excessive memory usage.\n */\n readonly rowCollectionOnDone?: boolean\n\n /**\n * A boolean, that when true will expose received rows in Requests' completion callback. See new Request. (default: false)\n * Caution: If many row are received, enabling this option could result in excessive memory usage.\n */\n readonly rowCollectionOnRequestCompletion?: boolean\n\n /**\n * The version of TDS to use. If server doesn't support specified version, negotiated version is used instead.\n * The versions are available from require('tedious').TDS_VERSION. (default: 7_4).\n */\n readonly tdsVersion?: string\n\n /**\n * A boolean, that when true will abort a query when an overflow or divide-by-zero error occurs during query execution.\n */\n readonly enableArithAbort?: boolean\n\n /**\n * Application name used for identifying a specific application in profiling, logging or tracing tools of SQL Server.\n * (default: node-mssql)\n */\n readonly appName?: string\n\n /**\n * A boolean, controlling whether encryption occurs if there is no verifiable server certificate.\n * (default: false)\n */\n readonly trustServerCertificate?: boolean\n }\n\n /**\n * Replication setup.\n */\n readonly replication?: {\n /**\n * Master server used by orm to perform writes.\n */\n readonly master: SqlServerConnectionCredentialsOptions\n\n /**\n * List of read-from severs (slaves).\n */\n readonly slaves: SqlServerConnectionCredentialsOptions[]\n\n /**\n * Default connection pool to use for SELECT queries\n * @default \"slave\"\n */\n readonly defaultMode?: ReplicationMode\n }\n\n readonly poolSize?: never\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/sqlserver/SqlServerConnectionOptions.ts"],"names":[],"mappings":"","file":"SqlServerConnectionOptions.js","sourcesContent":["import { BaseDataSourceOptions } from \"../../data-source/BaseDataSourceOptions\"\nimport { ReplicationMode } from \"../types/ReplicationMode\"\nimport { SqlServerConnectionCredentialsOptions } from \"./SqlServerConnectionCredentialsOptions\"\n\n/**\n * Microsoft Sql Server specific connection options.\n */\nexport interface SqlServerConnectionOptions\n extends BaseDataSourceOptions,\n SqlServerConnectionCredentialsOptions {\n /**\n * Database type.\n */\n readonly type: \"mssql\"\n\n /**\n * Connection timeout in ms (default: 15000).\n */\n readonly connectionTimeout?: number\n\n /**\n * Request timeout in ms (default: 15000). NOTE: msnodesqlv8 driver doesn't support timeouts < 1 second.\n */\n readonly requestTimeout?: number\n\n /**\n * Stream recordsets/rows instead of returning them all at once as an argument of callback (default: false).\n * You can also enable streaming for each request independently (request.stream = true).\n * Always set to true if you plan to work with large amount of rows.\n */\n readonly stream?: boolean\n\n /**\n * Database schema.\n */\n readonly schema?: string\n\n /**\n * The driver object\n * This defaults to `require(\"mssql\")`\n */\n readonly driver?: any\n\n /**\n * An optional object/dictionary with the any of the properties\n */\n readonly pool?: {\n /**\n * Maximum number of resources to create at any given time. (default=1)\n */\n readonly max?: number\n\n /**\n * Minimum number of resources to keep in pool at any given time. If this is set >= max, the pool will silently\n * set the min to equal max. (default=0)\n */\n readonly min?: number\n\n /**\n * Maximum number of queued requests allowed, additional acquire calls will be callback with an err in a future\n * cycle of the event loop.\n */\n readonly maxWaitingClients?: number\n\n /**\n * Max milliseconds an acquire call will wait for a resource before timing out. (default no limit), if supplied should non-zero positive integer.\n */\n readonly acquireTimeoutMillis?: number\n\n /**\n * If true the oldest resources will be first to be allocated. If false the most recently released resources will\n * be the first to be allocated. This in effect turns the pool's behaviour from a queue into a stack. boolean,\n * (default true)\n */\n readonly fifo?: boolean\n\n /**\n * Int between 1 and x - if set, borrowers can specify their relative priority in the queue if no resources\n * are available. see example. (default 1)\n */\n readonly priorityRange?: number\n\n /**\n * How often to run eviction checks. Default: 0 (does not run).\n */\n readonly evictionRunIntervalMillis?: number\n\n /**\n * Number of resources to check each eviction run. Default: 3.\n */\n readonly numTestsPerRun?: number\n\n /**\n * Amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object\n * evictor (if any), with the extra condition that at least \"min idle\" object instances remain in the pool.\n * Default -1 (nothing can get evicted)\n */\n readonly softIdleTimeoutMillis?: number\n\n /**\n * The minimum amount of time that an object may sit idle in the pool before it is eligible for eviction due\n * to idle time. Supercedes softIdleTimeoutMillis Default: 30000\n */\n readonly idleTimeoutMillis?: number\n\n /*\n * Function handling errors thrown by drivers pool.\n * Defaults to logging error with `warn` level.\n */\n readonly errorHandler?: (err: any) => any\n }\n\n /**\n * Extra options\n */\n readonly options?: {\n /**\n * The named instance to connect to\n */\n readonly instanceName?: string\n\n /**\n * By default, if the database requestion by options.database cannot be accessed, the connection will fail with\n * an error. However, if options.fallbackToDefaultDb is set to true, then the user's default database will\n * be used instead (Default: false).\n */\n readonly fallbackToDefaultDb?: boolean\n\n /**\n * If true, SET ANSI_NULL_DFLT_ON ON will be set in the initial sql. This means new columns will be nullable by\n * default. See the T-SQL documentation for more details. (Default: true).\n */\n readonly enableAnsiNullDefault?: boolean\n\n /**\n * The number of milliseconds before the attempt to connect is considered failed (default: 15000).\n */\n readonly connectTimeout?: number\n\n /**\n * The number of milliseconds before the cancel (abort) of a request is considered failed (default: 5000).\n */\n readonly cancelTimeout?: number\n\n /**\n * The size of TDS packets (subject to negotiation with the server). Should be a power of 2. (default: 4096).\n */\n readonly packetSize?: number\n\n /**\n * A boolean determining whether to pass time values in UTC or local time. (default: false).\n */\n readonly useUTC?: boolean\n\n /**\n * A boolean determining whether to rollback a transaction automatically if any error is encountered during\n * the given transaction's execution. This sets the value for SET XACT_ABORT during the initial SQL phase\n * of a connection (documentation).\n */\n readonly abortTransactionOnError?: boolean\n\n /**\n * A string indicating which network interface (ip address) to use when connecting to SQL Server.\n */\n readonly localAddress?: string\n\n /**\n * A boolean determining whether to return rows as arrays or key-value collections. (default: false).\n */\n readonly useColumnNames?: boolean\n\n /**\n * A boolean, controlling whether the column names returned will have the first letter converted to lower case\n * (true) or not. This value is ignored if you provide a columnNameReplacer. (default: false).\n */\n readonly camelCaseColumns?: boolean\n\n /**\n * A boolean, controlling whatever to disable RETURNING / OUTPUT statements.\n */\n readonly disableOutputReturning?: boolean\n\n /**\n * A boolean, controlling whether MssqlParameter types char, varchar, and text are converted to their unicode equivalents, nchar, nvarchar, and ntext.\n * (default: false, meaning that char/varchar/text parameters will be converted to nchar/nvarchar/ntext)\n */\n readonly disableAsciiToUnicodeParamConversion?: boolean\n\n /**\n * Debug options\n */\n readonly debug?: {\n /**\n * A boolean, controlling whether debug events will be emitted with text describing packet details\n * (default: false).\n */\n readonly packet?: boolean\n\n /**\n * A boolean, controlling whether debug events will be emitted with text describing packet data details\n * (default: false).\n */\n readonly data?: boolean\n\n /**\n * A boolean, controlling whether debug events will be emitted with text describing packet payload details\n * (default: false).\n */\n readonly payload?: boolean\n\n /**\n * A boolean, controlling whether debug events will be emitted with text describing token stream tokens\n * (default: false).\n */\n readonly token?: boolean\n }\n\n /**\n * The default isolation level that transactions will be run with. The isolation levels are available\n * from require('tedious').ISOLATION_LEVEL. (default: READ_COMMITTED).\n */\n readonly isolation?:\n | \"READ_UNCOMMITTED\"\n | \"READ_COMMITTED\"\n | \"REPEATABLE_READ\"\n | \"SERIALIZABLE\"\n | \"SNAPSHOT\"\n\n /**\n * The default isolation level for new connections. All out-of-transaction queries are executed with this\n * setting. The isolation levels are available from require('tedious').ISOLATION_LEVEL .\n */\n readonly connectionIsolationLevel?:\n | \"READ_UNCOMMITTED\"\n | \"READ_COMMITTED\"\n | \"REPEATABLE_READ\"\n | \"SERIALIZABLE\"\n | \"SNAPSHOT\"\n\n /**\n * A boolean, determining whether the connection will request read only access from a SQL Server\n * Availability Group. For more information, see here. (default: false).\n */\n readonly readOnlyIntent?: boolean\n\n /**\n * A boolean determining whether or not the connection will be encrypted. Set to true if you're on\n * Windows Azure. (default: true).\n */\n readonly encrypt?: boolean\n\n /**\n * When encryption is used, an object may be supplied that will be used for the first argument when calling\n * tls.createSecurePair (default: {}).\n */\n readonly cryptoCredentialsDetails?: any\n\n /**\n * A boolean, that when true will expose received rows in Requests' done* events. See done, doneInProc and\n * doneProc. (default: false)\n * Caution: If many row are received, enabling this option could result in excessive memory usage.\n */\n readonly rowCollectionOnDone?: boolean\n\n /**\n * A boolean, that when true will expose received rows in Requests' completion callback. See new Request. (default: false)\n * Caution: If many row are received, enabling this option could result in excessive memory usage.\n */\n readonly rowCollectionOnRequestCompletion?: boolean\n\n /**\n * The version of TDS to use. If server doesn't support specified version, negotiated version is used instead.\n * The versions are available from require('tedious').TDS_VERSION. (default: 7_4).\n */\n readonly tdsVersion?: string\n\n /**\n * A boolean, that when true will abort a query when an overflow or divide-by-zero error occurs during query execution.\n */\n readonly enableArithAbort?: boolean\n\n /**\n * Application name used for identifying a specific application in profiling, logging or tracing tools of SQL Server.\n * (default: node-mssql)\n */\n readonly appName?: string\n\n /**\n * A boolean, controlling whether encryption occurs if there is no verifiable server certificate.\n * (default: false)\n */\n readonly trustServerCertificate?: boolean\n }\n\n /**\n * Replication setup.\n */\n readonly replication?: {\n /**\n * Master server used by orm to perform writes.\n */\n readonly master: SqlServerConnectionCredentialsOptions\n\n /**\n * List of read-from severs (slaves).\n */\n readonly slaves: SqlServerConnectionCredentialsOptions[]\n\n /**\n * Default connection pool to use for SELECT queries\n * @default \"slave\"\n */\n readonly defaultMode?: ReplicationMode\n }\n\n readonly poolSize?: never\n}\n"],"sourceRoot":"../.."}
@@ -355,4 +355,8 @@ export declare class SqlServerQueryRunner extends BaseQueryRunner implements Que
355
355
  * The underlying mssql driver requires an enum for the isolation level.
356
356
  */
357
357
  convertIsolationLevel(isolation: IsolationLevel): any;
358
+ /**
359
+ * Change table comment.
360
+ */
361
+ changeTableComment(tableOrName: Table | string, comment?: string): Promise<void>;
358
362
  }
@@ -20,6 +20,7 @@ const error_1 = require("../../error");
20
20
  const QueryLock_1 = require("../../query-runner/QueryLock");
21
21
  const MetadataTableType_1 = require("../types/MetadataTableType");
22
22
  const InstanceChecker_1 = require("../../util/InstanceChecker");
23
+ const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
23
24
  /**
24
25
  * Runs queries on a single SQL Server database connection.
25
26
  */
@@ -79,6 +80,7 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
79
80
  ok();
80
81
  };
81
82
  if (this.transactionDepth === 0) {
83
+ this.transactionDepth += 1;
82
84
  const pool = await (this.mode === "slave"
83
85
  ? this.driver.obtainSlaveConnection()
84
86
  : this.driver.obtainMasterConnection());
@@ -93,10 +95,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
93
95
  }
94
96
  }
95
97
  else {
96
- await this.query(`SAVE TRANSACTION typeorm_${this.transactionDepth}`);
98
+ this.transactionDepth += 1;
99
+ await this.query(`SAVE TRANSACTION typeorm_${this.transactionDepth - 1}`);
97
100
  ok();
98
101
  }
99
- this.transactionDepth += 1;
100
102
  });
101
103
  await this.broadcaster.broadcast("AfterTransactionStart");
102
104
  }
@@ -112,6 +114,7 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
112
114
  await this.broadcaster.broadcast("BeforeTransactionCommit");
113
115
  if (this.transactionDepth === 1) {
114
116
  return new Promise((ok, fail) => {
117
+ this.transactionDepth -= 1;
115
118
  this.databaseConnection.commit(async (err) => {
116
119
  if (err)
117
120
  return fail(err);
@@ -120,7 +123,6 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
120
123
  await this.broadcaster.broadcast("AfterTransactionCommit");
121
124
  ok();
122
125
  this.connection.logger.logQuery("COMMIT");
123
- this.transactionDepth -= 1;
124
126
  });
125
127
  });
126
128
  }
@@ -137,11 +139,12 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
137
139
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
138
140
  await this.broadcaster.broadcast("BeforeTransactionRollback");
139
141
  if (this.transactionDepth > 1) {
140
- await this.query(`ROLLBACK TRANSACTION typeorm_${this.transactionDepth - 1}`);
141
142
  this.transactionDepth -= 1;
143
+ await this.query(`ROLLBACK TRANSACTION typeorm_${this.transactionDepth}`);
142
144
  }
143
145
  else {
144
146
  return new Promise((ok, fail) => {
147
+ this.transactionDepth -= 1;
145
148
  this.databaseConnection.rollback(async (err) => {
146
149
  if (err)
147
150
  return fail(err);
@@ -150,7 +153,6 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
150
153
  await this.broadcaster.broadcast("AfterTransactionRollback");
151
154
  ok();
152
155
  this.connection.logger.logQuery("ROLLBACK");
153
- this.transactionDepth -= 1;
154
156
  });
155
157
  });
156
158
  }
@@ -162,8 +164,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
162
164
  if (this.isReleased)
163
165
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
164
166
  const release = await this.lock.acquire();
167
+ const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
165
168
  try {
166
169
  this.driver.connection.logger.logQuery(query, parameters, this);
170
+ this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
167
171
  const pool = await (this.mode === "slave"
168
172
  ? this.driver.obtainSlaveConnection()
169
173
  : this.driver.obtainMasterConnection());
@@ -192,6 +196,7 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
192
196
  const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
193
197
  const queryEndTime = +new Date();
194
198
  const queryExecutionTime = queryEndTime - queryStartTime;
199
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, true, queryExecutionTime, raw, undefined);
195
200
  if (maxQueryExecutionTime &&
196
201
  queryExecutionTime > maxQueryExecutionTime) {
197
202
  this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
@@ -227,9 +232,11 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
227
232
  }
228
233
  catch (err) {
229
234
  this.driver.connection.logger.logQueryError(err, query, parameters, this);
235
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
230
236
  throw err;
231
237
  }
232
238
  finally {
239
+ await broadcasterResult.wait();
233
240
  release();
234
241
  }
235
242
  }
@@ -1924,7 +1931,7 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1924
1931
  ? "STORED"
1925
1932
  : "VIRTUAL";
1926
1933
  // We cannot relay on information_schema.columns.generation_expression, because it is formatted different.
1927
- const asExpressionQuery = await this.selectTypeormMetadataSql({
1934
+ const asExpressionQuery = this.selectTypeormMetadataSql({
1928
1935
  database: dbTable["TABLE_CATALOG"],
1929
1936
  schema: dbTable["TABLE_SCHEMA"],
1930
1937
  table: dbTable["TABLE_NAME"],
@@ -2464,6 +2471,12 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
2464
2471
  return ISOLATION_LEVEL.READ_COMMITTED;
2465
2472
  }
2466
2473
  }
2474
+ /**
2475
+ * Change table comment.
2476
+ */
2477
+ changeTableComment(tableOrName, comment) {
2478
+ throw new error_1.TypeORMError(`sqlserver driver does not support change table comment.`);
2479
+ }
2467
2480
  }
2468
2481
  exports.SqlServerQueryRunner = SqlServerQueryRunner;
2469
2482