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
@@ -3,6 +3,7 @@ import { QueryRunnerAlreadyReleasedError } from "../../error/QueryRunnerAlreadyR
3
3
  import { QueryFailedError } from "../../error/QueryFailedError";
4
4
  import { AbstractSqliteQueryRunner } from "../sqlite-abstract/AbstractSqliteQueryRunner";
5
5
  import { Broadcaster } from "../../subscriber/Broadcaster";
6
+ import { ConnectionIsNotSetError } from '../../error/ConnectionIsNotSetError';
6
7
  /**
7
8
  * Runs queries on a single sqlite database connection.
8
9
  *
@@ -30,6 +31,9 @@ var SqliteQueryRunner = /** @class */ (function (_super) {
30
31
  throw new QueryRunnerAlreadyReleasedError();
31
32
  var connection = this.driver.connection;
32
33
  var options = connection.options;
34
+ if (!connection.isConnected) {
35
+ throw new ConnectionIsNotSetError('sqlite');
36
+ }
33
37
  return new Promise(function (ok, fail) { return __awaiter(_this, void 0, void 0, function () {
34
38
  var databaseConnection, queryStartTime, isInsertQuery, execute, handler;
35
39
  var _this = this;
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/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\";\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 /**\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 * Executes a given SQL query.\n */\n query(query: string, parameters?: any[]): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n const connection = this.driver.connection;\n const options = connection.options as SqliteConnectionOptions;\n\n return new Promise<any[]>(async (ok, fail) => {\n\n const databaseConnection = await this.connect();\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n const isInsertQuery = query.substr(0, 11) === \"INSERT INTO\";\n\n const execute = async () => {\n if (isInsertQuery) {\n databaseConnection.run(query, parameters, handler);\n } else {\n databaseConnection.all(query, parameters, handler);\n }\n };\n\n const handler = function (err: any, result: any) {\n if (err && err.toString().indexOf(\"SQLITE_BUSY:\") !== -1) {\n if (typeof options.busyErrorRetry === \"number\" && options.busyErrorRetry > 0) {\n setTimeout(execute, options.busyErrorRetry);\n return;\n }\n }\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = connection.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n\n if (err) {\n connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n } else {\n ok(isInsertQuery ? this[\"lastID\"] : result);\n }\n };\n\n await execute();\n });\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/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';\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 /**\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 * Executes a given SQL query.\n */\n query(query: string, parameters?: any[]): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n const connection = this.driver.connection;\n const options = connection.options as SqliteConnectionOptions;\n\n if (!connection.isConnected){\n throw new ConnectionIsNotSetError('sqlite')\n }\n\n return new Promise<any[]>(async (ok, fail) => {\n\n const databaseConnection = await this.connect();\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n const isInsertQuery = query.substr(0, 11) === \"INSERT INTO\";\n\n const execute = async () => {\n if (isInsertQuery) {\n databaseConnection.run(query, parameters, handler);\n } else {\n databaseConnection.all(query, parameters, handler);\n }\n };\n\n const handler = function (err: any, result: any) {\n if (err && err.toString().indexOf(\"SQLITE_BUSY:\") !== -1) {\n if (typeof options.busyErrorRetry === \"number\" && options.busyErrorRetry > 0) {\n setTimeout(execute, options.busyErrorRetry);\n return;\n }\n }\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = connection.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n\n if (err) {\n connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n } else {\n ok(isInsertQuery ? this[\"lastID\"] : result);\n }\n };\n\n await execute();\n });\n }\n}\n"],"sourceRoot":"../.."}
@@ -7,6 +7,7 @@ import { Table } from "../../schema-builder/table/Table";
7
7
  import { TableIndex } from "../../schema-builder/table/TableIndex";
8
8
  import { TableForeignKey } from "../../schema-builder/table/TableForeignKey";
9
9
  import { View } from "../../schema-builder/view/View";
10
+ import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
10
11
  import { Query } from "../Query";
11
12
  import { TableUnique } from "../../schema-builder/table/TableUnique";
12
13
  import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
@@ -47,12 +48,12 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
47
48
  */
48
49
  AbstractSqliteQueryRunner.prototype.startTransaction = function (isolationLevel) {
49
50
  return __awaiter(this, void 0, void 0, function () {
51
+ var beforeBroadcastResult, afterBroadcastResult;
50
52
  return __generator(this, function (_a) {
51
53
  switch (_a.label) {
52
54
  case 0:
53
55
  if (this.isTransactionActive)
54
56
  throw new TransactionAlreadyStartedError();
55
- this.isTransactionActive = true;
56
57
  if (!isolationLevel) return [3 /*break*/, 4];
57
58
  if (isolationLevel !== "READ UNCOMMITTED" && isolationLevel !== "SERIALIZABLE") {
58
59
  throw new Error("SQLite only supports SERIALIZABLE and READ UNCOMMITTED isolation");
@@ -66,10 +67,27 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
66
67
  case 3:
67
68
  _a.sent();
68
69
  _a.label = 4;
69
- case 4: return [4 /*yield*/, this.query("BEGIN TRANSACTION")];
70
+ case 4:
71
+ beforeBroadcastResult = new BroadcasterResult();
72
+ this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
73
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 6];
74
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
70
75
  case 5:
71
76
  _a.sent();
72
- return [2 /*return*/];
77
+ _a.label = 6;
78
+ case 6:
79
+ this.isTransactionActive = true;
80
+ return [4 /*yield*/, this.query("BEGIN TRANSACTION")];
81
+ case 7:
82
+ _a.sent();
83
+ afterBroadcastResult = new BroadcasterResult();
84
+ this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
85
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 9];
86
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
87
+ case 8:
88
+ _a.sent();
89
+ _a.label = 9;
90
+ case 9: return [2 /*return*/];
73
91
  }
74
92
  });
75
93
  });
@@ -80,16 +98,31 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
80
98
  */
81
99
  AbstractSqliteQueryRunner.prototype.commitTransaction = function () {
82
100
  return __awaiter(this, void 0, void 0, function () {
101
+ var beforeBroadcastResult, afterBroadcastResult;
83
102
  return __generator(this, function (_a) {
84
103
  switch (_a.label) {
85
104
  case 0:
86
105
  if (!this.isTransactionActive)
87
106
  throw new TransactionNotStartedError();
88
- return [4 /*yield*/, this.query("COMMIT")];
107
+ beforeBroadcastResult = new BroadcasterResult();
108
+ this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
109
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
110
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
89
111
  case 1:
112
+ _a.sent();
113
+ _a.label = 2;
114
+ case 2: return [4 /*yield*/, this.query("COMMIT")];
115
+ case 3:
90
116
  _a.sent();
91
117
  this.isTransactionActive = false;
92
- return [2 /*return*/];
118
+ afterBroadcastResult = new BroadcasterResult();
119
+ this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
120
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
121
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
122
+ case 4:
123
+ _a.sent();
124
+ _a.label = 5;
125
+ case 5: return [2 /*return*/];
93
126
  }
94
127
  });
95
128
  });
@@ -100,16 +133,31 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
100
133
  */
101
134
  AbstractSqliteQueryRunner.prototype.rollbackTransaction = function () {
102
135
  return __awaiter(this, void 0, void 0, function () {
136
+ var beforeBroadcastResult, afterBroadcastResult;
103
137
  return __generator(this, function (_a) {
104
138
  switch (_a.label) {
105
139
  case 0:
106
140
  if (!this.isTransactionActive)
107
141
  throw new TransactionNotStartedError();
108
- return [4 /*yield*/, this.query("ROLLBACK")];
142
+ beforeBroadcastResult = new BroadcasterResult();
143
+ this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
144
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
145
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
109
146
  case 1:
147
+ _a.sent();
148
+ _a.label = 2;
149
+ case 2: return [4 /*yield*/, this.query("ROLLBACK")];
150
+ case 3:
110
151
  _a.sent();
111
152
  this.isTransactionActive = false;
112
- return [2 /*return*/];
153
+ afterBroadcastResult = new BroadcasterResult();
154
+ this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
155
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
156
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
157
+ case 4:
158
+ _a.sent();
159
+ _a.label = 5;
160
+ case 5: return [2 /*return*/];
113
161
  }
114
162
  });
115
163
  });