typeorm 0.2.28 → 0.2.29

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 (248) hide show
  1. package/README.md +7 -2
  2. package/browser/connection/ConnectionOptionsReader.js +27 -27
  3. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  4. package/browser/decorator/entity/ChildEntity.js +1 -1
  5. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  6. package/browser/driver/DriverUtils.js +20 -12
  7. package/browser/driver/DriverUtils.js.map +1 -1
  8. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
  9. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  10. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
  11. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  12. package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
  13. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  14. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  15. package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
  16. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  17. package/browser/driver/expo/ExpoQueryRunner.js +72 -14
  18. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  19. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  20. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  21. package/browser/driver/mongodb/MongoDriver.d.ts +7 -3
  22. package/browser/driver/mongodb/MongoDriver.js +15 -14
  23. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  24. package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  25. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  26. package/browser/driver/mysql/MysqlDriver.js +4 -4
  27. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  28. package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  29. package/browser/driver/mysql/MysqlQueryRunner.js +107 -38
  30. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  31. package/browser/driver/oracle/OracleQueryRunner.js +52 -6
  32. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  33. package/browser/driver/postgres/PostgresDriver.js +7 -7
  34. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  35. package/browser/driver/postgres/PostgresQueryRunner.d.ts +8 -0
  36. package/browser/driver/postgres/PostgresQueryRunner.js +107 -18
  37. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  38. package/browser/driver/react-native/ReactNativeDriver.js +1 -2
  39. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  40. package/browser/driver/sap/SapQueryRunner.js +56 -8
  41. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  42. package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
  43. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  44. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
  45. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  46. package/browser/driver/sqlserver/SqlServerQueryRunner.js +133 -62
  47. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  48. package/browser/entity-manager/MongoEntityManager.js +14 -3
  49. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  50. package/browser/find-options/FindOneOptions.d.ts +4 -0
  51. package/browser/find-options/FindOneOptions.js.map +1 -1
  52. package/browser/find-options/FindOperator.d.ts +20 -1
  53. package/browser/find-options/FindOperator.js +27 -1
  54. package/browser/find-options/FindOperator.js.map +1 -1
  55. package/browser/find-options/FindOperatorType.d.ts +1 -1
  56. package/browser/find-options/FindOperatorType.js.map +1 -1
  57. package/browser/find-options/FindOptionsUtils.js +5 -1
  58. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  59. package/browser/find-options/operator/ILike.d.ts +6 -0
  60. package/browser/find-options/operator/ILike.js +10 -0
  61. package/browser/find-options/operator/ILike.js.map +1 -0
  62. package/browser/find-options/operator/Raw.d.ts +14 -2
  63. package/browser/find-options/operator/Raw.js +5 -6
  64. package/browser/find-options/operator/Raw.js.map +1 -1
  65. package/browser/index.d.ts +2 -0
  66. package/browser/index.js +1 -0
  67. package/browser/index.js.map +1 -1
  68. package/browser/logger/Logger.d.ts +1 -1
  69. package/browser/logger/Logger.js.map +1 -1
  70. package/browser/metadata/ColumnMetadata.js +14 -3
  71. package/browser/metadata/ColumnMetadata.js.map +1 -1
  72. package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
  73. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  74. package/browser/metadata-builder/EntityMetadataBuilder.js +14 -8
  75. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  76. package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
  77. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  78. package/browser/persistence/EntityPersistExecutor.js +1 -1
  79. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  80. package/browser/persistence/Subject.js +2 -1
  81. package/browser/persistence/Subject.js.map +1 -1
  82. package/browser/query-builder/DeleteQueryBuilder.js +2 -1
  83. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  84. package/browser/query-builder/InsertQueryBuilder.js +31 -8
  85. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  86. package/browser/query-builder/QueryBuilder.d.ts +7 -0
  87. package/browser/query-builder/QueryBuilder.js +125 -32
  88. package/browser/query-builder/QueryBuilder.js.map +1 -1
  89. package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
  90. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  91. package/browser/query-builder/SelectQueryBuilder.d.ts +5 -0
  92. package/browser/query-builder/SelectQueryBuilder.js +73 -40
  93. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  94. package/browser/query-builder/UpdateQueryBuilder.js +2 -1
  95. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  96. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
  97. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  98. package/browser/query-runner/QueryRunner.d.ts +1 -1
  99. package/browser/query-runner/QueryRunner.js.map +1 -1
  100. package/browser/repository/TreeRepository.js +2 -2
  101. package/browser/repository/TreeRepository.js.map +1 -1
  102. package/browser/subscriber/Broadcaster.d.ts +24 -0
  103. package/browser/subscriber/Broadcaster.js +120 -0
  104. package/browser/subscriber/Broadcaster.js.map +1 -1
  105. package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
  106. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  107. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  108. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  109. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  110. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  111. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  112. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  113. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  114. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  115. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  116. package/browser/util/DateUtils.js +1 -7
  117. package/browser/util/DateUtils.js.map +1 -1
  118. package/commands/EntityCreateCommand.js +5 -2
  119. package/commands/EntityCreateCommand.js.map +1 -1
  120. package/commands/InitCommand.js +1 -1
  121. package/commands/InitCommand.js.map +1 -1
  122. package/commands/MigrationCreateCommand.js +4 -1
  123. package/commands/MigrationCreateCommand.js.map +1 -1
  124. package/commands/MigrationGenerateCommand.js +26 -28
  125. package/commands/MigrationGenerateCommand.js.map +1 -1
  126. package/commands/QueryCommand.d.ts +2 -0
  127. package/commands/QueryCommand.js +12 -3
  128. package/commands/QueryCommand.js.map +1 -1
  129. package/commands/SubscriberCreateCommand.js +5 -2
  130. package/commands/SubscriberCreateCommand.js.map +1 -1
  131. package/connection/ConnectionOptionsReader.js +27 -27
  132. package/connection/ConnectionOptionsReader.js.map +1 -1
  133. package/decorator/entity/ChildEntity.js +1 -1
  134. package/decorator/entity/ChildEntity.js.map +1 -1
  135. package/driver/DriverUtils.js +19 -11
  136. package/driver/DriverUtils.js.map +1 -1
  137. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
  138. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  139. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
  140. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  141. package/driver/cockroachdb/CockroachDriver.js +3 -3
  142. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  143. package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  144. package/driver/cockroachdb/CockroachQueryRunner.js +112 -42
  145. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  146. package/driver/expo/ExpoQueryRunner.js +72 -14
  147. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  148. package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  149. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  150. package/driver/mongodb/MongoDriver.d.ts +7 -3
  151. package/driver/mongodb/MongoDriver.js +15 -14
  152. package/driver/mongodb/MongoDriver.js.map +1 -1
  153. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  154. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  155. package/driver/mysql/MysqlDriver.js +4 -4
  156. package/driver/mysql/MysqlDriver.js.map +1 -1
  157. package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  158. package/driver/mysql/MysqlQueryRunner.js +107 -38
  159. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  160. package/driver/oracle/OracleQueryRunner.js +52 -6
  161. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  162. package/driver/postgres/PostgresDriver.js +7 -7
  163. package/driver/postgres/PostgresDriver.js.map +1 -1
  164. package/driver/postgres/PostgresQueryRunner.d.ts +8 -0
  165. package/driver/postgres/PostgresQueryRunner.js +107 -18
  166. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  167. package/driver/react-native/ReactNativeDriver.js +1 -2
  168. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  169. package/driver/sap/SapQueryRunner.js +56 -8
  170. package/driver/sap/SapQueryRunner.js.map +1 -1
  171. package/driver/sqlite/SqliteQueryRunner.js +4 -0
  172. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  173. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
  174. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  175. package/driver/sqlserver/SqlServerQueryRunner.js +133 -62
  176. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  177. package/entity-manager/MongoEntityManager.js +14 -3
  178. package/entity-manager/MongoEntityManager.js.map +1 -1
  179. package/find-options/FindOneOptions.d.ts +4 -0
  180. package/find-options/FindOneOptions.js.map +1 -1
  181. package/find-options/FindOperator.d.ts +20 -1
  182. package/find-options/FindOperator.js +27 -1
  183. package/find-options/FindOperator.js.map +1 -1
  184. package/find-options/FindOperatorType.d.ts +1 -1
  185. package/find-options/FindOperatorType.js.map +1 -1
  186. package/find-options/FindOptionsUtils.js +5 -1
  187. package/find-options/FindOptionsUtils.js.map +1 -1
  188. package/find-options/operator/ILike.d.ts +6 -0
  189. package/find-options/operator/ILike.js +13 -0
  190. package/find-options/operator/ILike.js.map +1 -0
  191. package/find-options/operator/Raw.d.ts +14 -2
  192. package/find-options/operator/Raw.js +5 -6
  193. package/find-options/operator/Raw.js.map +1 -1
  194. package/index.d.ts +2 -0
  195. package/index.js +1 -0
  196. package/index.js.map +1 -1
  197. package/logger/Logger.d.ts +1 -1
  198. package/logger/Logger.js.map +1 -1
  199. package/metadata/ColumnMetadata.js +14 -3
  200. package/metadata/ColumnMetadata.js.map +1 -1
  201. package/metadata/types/EventListenerTypes.d.ts +7 -7
  202. package/metadata/types/EventListenerTypes.js.map +1 -1
  203. package/metadata-builder/EntityMetadataBuilder.js +14 -8
  204. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  205. package/metadata-builder/EntityMetadataValidator.js +8 -5
  206. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  207. package/package.json +3 -2
  208. package/persistence/EntityPersistExecutor.js +1 -1
  209. package/persistence/EntityPersistExecutor.js.map +1 -1
  210. package/persistence/Subject.js +2 -1
  211. package/persistence/Subject.js.map +1 -1
  212. package/query-builder/DeleteQueryBuilder.js +2 -1
  213. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  214. package/query-builder/InsertQueryBuilder.js +31 -8
  215. package/query-builder/InsertQueryBuilder.js.map +1 -1
  216. package/query-builder/QueryBuilder.d.ts +7 -0
  217. package/query-builder/QueryBuilder.js +124 -31
  218. package/query-builder/QueryBuilder.js.map +1 -1
  219. package/query-builder/QueryExpressionMap.d.ts +4 -0
  220. package/query-builder/QueryExpressionMap.js.map +1 -1
  221. package/query-builder/SelectQueryBuilder.d.ts +5 -0
  222. package/query-builder/SelectQueryBuilder.js +73 -40
  223. package/query-builder/SelectQueryBuilder.js.map +1 -1
  224. package/query-builder/UpdateQueryBuilder.js +2 -1
  225. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  226. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
  227. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  228. package/query-runner/QueryRunner.d.ts +1 -1
  229. package/query-runner/QueryRunner.js.map +1 -1
  230. package/repository/TreeRepository.js +2 -2
  231. package/repository/TreeRepository.js.map +1 -1
  232. package/subscriber/Broadcaster.d.ts +24 -0
  233. package/subscriber/Broadcaster.js +120 -0
  234. package/subscriber/Broadcaster.js.map +1 -1
  235. package/subscriber/EntitySubscriberInterface.d.ts +27 -0
  236. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  237. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  238. package/subscriber/event/TransactionCommitEvent.js +4 -0
  239. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  240. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  241. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  242. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  243. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  244. package/subscriber/event/TransactionStartEvent.js +4 -0
  245. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  246. package/typeorm-model-shim.js +145 -128
  247. package/util/DateUtils.js +1 -7
  248. package/util/DateUtils.js.map +1 -1
@@ -17,6 +17,7 @@ var Broadcaster_1 = require("../../subscriber/Broadcaster");
17
17
  var OrmUtils_1 = require("../../util/OrmUtils");
18
18
  var Query_1 = require("../Query");
19
19
  var MssqlParameter_1 = require("./MssqlParameter");
20
+ var BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
20
21
  /**
21
22
  * Runs queries on a single SQL Server database connection.
22
23
  */
@@ -67,44 +68,62 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
67
68
  */
68
69
  SqlServerQueryRunner.prototype.startTransaction = function (isolationLevel) {
69
70
  return tslib_1.__awaiter(this, void 0, void 0, function () {
71
+ var beforeBroadcastResult;
70
72
  var _this = this;
71
73
  return tslib_1.__generator(this, function (_a) {
72
- if (this.isReleased)
73
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
74
- if (this.isTransactionActive)
75
- throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
76
- return [2 /*return*/, new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
77
- var pool, transactionCallback;
78
- var _this = this;
79
- return tslib_1.__generator(this, function (_a) {
80
- switch (_a.label) {
81
- case 0:
82
- this.isTransactionActive = true;
83
- return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
84
- case 1:
85
- pool = _a.sent();
86
- this.databaseConnection = pool.transaction();
87
- transactionCallback = function (err) {
88
- if (err) {
89
- _this.isTransactionActive = false;
90
- return fail(err);
91
- }
92
- ok();
93
- _this.connection.logger.logQuery("BEGIN TRANSACTION");
74
+ switch (_a.label) {
75
+ case 0:
76
+ if (this.isReleased)
77
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
78
+ if (this.isTransactionActive)
79
+ throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
80
+ beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
81
+ this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
82
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
83
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
84
+ case 1:
85
+ _a.sent();
86
+ _a.label = 2;
87
+ case 2: return [2 /*return*/, new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
88
+ var pool, transactionCallback, afterBroadcastResult;
89
+ var _this = this;
90
+ return tslib_1.__generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0:
93
+ this.isTransactionActive = true;
94
+ return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
95
+ case 1:
96
+ pool = _a.sent();
97
+ this.databaseConnection = pool.transaction();
98
+ transactionCallback = function (err) {
99
+ if (err) {
100
+ _this.isTransactionActive = false;
101
+ return fail(err);
102
+ }
103
+ ok();
104
+ _this.connection.logger.logQuery("BEGIN TRANSACTION");
105
+ if (isolationLevel) {
106
+ _this.connection.logger.logQuery("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
107
+ }
108
+ };
94
109
  if (isolationLevel) {
95
- _this.connection.logger.logQuery("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
110
+ this.databaseConnection.begin(this.convertIsolationLevel(isolationLevel), transactionCallback);
96
111
  }
97
- };
98
- if (isolationLevel) {
99
- this.databaseConnection.begin(this.convertIsolationLevel(isolationLevel), transactionCallback);
100
- }
101
- else {
102
- this.databaseConnection.begin(transactionCallback);
103
- }
104
- return [2 /*return*/];
105
- }
106
- });
107
- }); })];
112
+ else {
113
+ this.databaseConnection.begin(transactionCallback);
114
+ }
115
+ afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
116
+ this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
117
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 3];
118
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
119
+ case 2:
120
+ _a.sent();
121
+ _a.label = 3;
122
+ case 3: return [2 /*return*/];
123
+ }
124
+ });
125
+ }); })];
126
+ }
108
127
  });
109
128
  });
110
129
  };
@@ -114,22 +133,48 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
114
133
  */
115
134
  SqlServerQueryRunner.prototype.commitTransaction = function () {
116
135
  return tslib_1.__awaiter(this, void 0, void 0, function () {
136
+ var beforeBroadcastResult;
117
137
  var _this = this;
118
138
  return tslib_1.__generator(this, function (_a) {
119
- if (this.isReleased)
120
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
121
- if (!this.isTransactionActive)
122
- throw new TransactionNotStartedError_1.TransactionNotStartedError();
123
- return [2 /*return*/, new Promise(function (ok, fail) {
124
- _this.databaseConnection.commit(function (err) {
125
- if (err)
126
- return fail(err);
127
- _this.isTransactionActive = false;
128
- _this.databaseConnection = null;
129
- ok();
130
- _this.connection.logger.logQuery("COMMIT");
131
- });
132
- })];
139
+ switch (_a.label) {
140
+ case 0:
141
+ if (this.isReleased)
142
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
143
+ if (!this.isTransactionActive)
144
+ throw new TransactionNotStartedError_1.TransactionNotStartedError();
145
+ beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
146
+ this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
147
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
148
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
149
+ case 1:
150
+ _a.sent();
151
+ _a.label = 2;
152
+ case 2: return [2 /*return*/, new Promise(function (ok, fail) {
153
+ _this.databaseConnection.commit(function (err) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
154
+ var afterBroadcastResult;
155
+ return tslib_1.__generator(this, function (_a) {
156
+ switch (_a.label) {
157
+ case 0:
158
+ if (err)
159
+ return [2 /*return*/, fail(err)];
160
+ this.isTransactionActive = false;
161
+ this.databaseConnection = null;
162
+ afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
163
+ this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
164
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
165
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
166
+ case 1:
167
+ _a.sent();
168
+ _a.label = 2;
169
+ case 2:
170
+ ok();
171
+ this.connection.logger.logQuery("COMMIT");
172
+ return [2 /*return*/];
173
+ }
174
+ });
175
+ }); });
176
+ })];
177
+ }
133
178
  });
134
179
  });
135
180
  };
@@ -139,22 +184,48 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
139
184
  */
140
185
  SqlServerQueryRunner.prototype.rollbackTransaction = function () {
141
186
  return tslib_1.__awaiter(this, void 0, void 0, function () {
187
+ var beforeBroadcastResult;
142
188
  var _this = this;
143
189
  return tslib_1.__generator(this, function (_a) {
144
- if (this.isReleased)
145
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
146
- if (!this.isTransactionActive)
147
- throw new TransactionNotStartedError_1.TransactionNotStartedError();
148
- return [2 /*return*/, new Promise(function (ok, fail) {
149
- _this.databaseConnection.rollback(function (err) {
150
- if (err)
151
- return fail(err);
152
- _this.isTransactionActive = false;
153
- _this.databaseConnection = null;
154
- ok();
155
- _this.connection.logger.logQuery("ROLLBACK");
156
- });
157
- })];
190
+ switch (_a.label) {
191
+ case 0:
192
+ if (this.isReleased)
193
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
194
+ if (!this.isTransactionActive)
195
+ throw new TransactionNotStartedError_1.TransactionNotStartedError();
196
+ beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
197
+ this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
198
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
199
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
200
+ case 1:
201
+ _a.sent();
202
+ _a.label = 2;
203
+ case 2: return [2 /*return*/, new Promise(function (ok, fail) {
204
+ _this.databaseConnection.rollback(function (err) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
205
+ var afterBroadcastResult;
206
+ return tslib_1.__generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0:
209
+ if (err)
210
+ return [2 /*return*/, fail(err)];
211
+ this.isTransactionActive = false;
212
+ this.databaseConnection = null;
213
+ afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
214
+ this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
215
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
216
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
217
+ case 1:
218
+ _a.sent();
219
+ _a.label = 2;
220
+ case 2:
221
+ ok();
222
+ this.connection.logger.logQuery("ROLLBACK");
223
+ return [2 /*return*/];
224
+ }
225
+ });
226
+ }); });
227
+ })];
228
+ }
158
229
  });
159
230
  });
160
231
  };