typeorm 0.3.18-dev.ad5bf11 → 0.3.18-dev.b5ec088

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 (304) 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.d.ts +4 -0
  6. package/browser/data-source/DataSource.js +14 -0
  7. package/browser/data-source/DataSource.js.map +1 -1
  8. package/browser/decorator/Index.js +1 -0
  9. package/browser/decorator/Index.js.map +1 -1
  10. package/browser/decorator/options/IndexOptions.d.ts +5 -0
  11. package/browser/decorator/options/IndexOptions.js.map +1 -1
  12. package/browser/driver/Driver.d.ts +4 -0
  13. package/browser/driver/Driver.js.map +1 -1
  14. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +9 -6
  15. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  16. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +9 -6
  17. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  18. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +6 -0
  19. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  20. package/browser/driver/cockroachdb/CockroachDriver.d.ts +4 -0
  21. package/browser/driver/cockroachdb/CockroachDriver.js +10 -1
  22. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  23. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +6 -1
  24. package/browser/driver/cockroachdb/CockroachQueryRunner.js +46 -17
  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/mysql/MysqlConnectionOptions.d.ts +6 -0
  33. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  34. package/browser/driver/mysql/MysqlQueryRunner.js +18 -7
  35. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  36. package/browser/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  37. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  38. package/browser/driver/oracle/OracleDriver.d.ts +4 -0
  39. package/browser/driver/oracle/OracleDriver.js +17 -2
  40. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  41. package/browser/driver/oracle/OracleQueryRunner.js +14 -4
  42. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  43. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +5 -0
  44. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  45. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +6 -5
  46. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  47. package/browser/driver/postgres/PostgresDriver.d.ts +4 -0
  48. package/browser/driver/postgres/PostgresDriver.js +13 -4
  49. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  50. package/browser/driver/postgres/PostgresQueryRunner.js +26 -11
  51. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  52. package/browser/driver/react-native/ReactNativeQueryRunner.js +10 -2
  53. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  54. package/browser/driver/sap/SapQueryRunner.js +22 -10
  55. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  56. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +6 -0
  57. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  58. package/browser/driver/spanner/SpannerDriver.d.ts +4 -0
  59. package/browser/driver/spanner/SpannerDriver.js +10 -1
  60. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  61. package/browser/driver/spanner/SpannerQueryRunner.js +6 -0
  62. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  63. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  64. package/browser/driver/sqlite/SqliteQueryRunner.js +61 -46
  65. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  66. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +10 -16
  67. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  68. package/browser/driver/sqljs/SqljsQueryRunner.js +11 -3
  69. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  70. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -5
  71. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  72. package/browser/driver/sqlserver/SqlServerDriver.d.ts +4 -0
  73. package/browser/driver/sqlserver/SqlServerDriver.js +10 -1
  74. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  75. package/browser/driver/sqlserver/SqlServerQueryRunner.js +12 -5
  76. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  77. package/browser/entity-manager/EntityManager.d.ts +5 -1
  78. package/browser/entity-manager/EntityManager.js +10 -1
  79. package/browser/entity-manager/EntityManager.js.map +1 -1
  80. package/browser/entity-manager/MongoEntityManager.js +4 -8
  81. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  82. package/browser/error/EntityNotFoundError.d.ts +2 -0
  83. package/browser/error/EntityNotFoundError.js +2 -0
  84. package/browser/error/EntityNotFoundError.js.map +1 -1
  85. package/browser/find-options/FindOperatorType.d.ts +1 -1
  86. package/browser/find-options/FindOperatorType.js.map +1 -1
  87. package/browser/find-options/operator/Or.d.ts +2 -0
  88. package/browser/find-options/operator/Or.js +6 -0
  89. package/browser/find-options/operator/Or.js.map +1 -0
  90. package/browser/index.d.ts +1 -0
  91. package/browser/index.js +1 -0
  92. package/browser/index.js.map +1 -1
  93. package/browser/logger/AbstractLogger.js +1 -1
  94. package/browser/logger/AbstractLogger.js.map +1 -1
  95. package/browser/metadata/ColumnMetadata.js +4 -0
  96. package/browser/metadata/ColumnMetadata.js.map +1 -1
  97. package/browser/metadata/EntityMetadata.d.ts +3 -3
  98. package/browser/metadata/EntityMetadata.js +7 -3
  99. package/browser/metadata/EntityMetadata.js.map +1 -1
  100. package/browser/metadata/IndexMetadata.d.ts +5 -0
  101. package/browser/metadata/IndexMetadata.js +1 -0
  102. package/browser/metadata/IndexMetadata.js.map +1 -1
  103. package/browser/metadata-args/IndexMetadataArgs.d.ts +5 -0
  104. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  105. package/browser/persistence/EntityPersistExecutor.js +1 -1
  106. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  107. package/browser/persistence/SubjectExecutor.js +3 -0
  108. package/browser/persistence/SubjectExecutor.js.map +1 -1
  109. package/browser/platform/BrowserPlatformTools.js +3 -2
  110. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  111. package/browser/query-builder/InsertQueryBuilder.js +19 -6
  112. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  113. package/browser/query-builder/QueryBuilder.d.ts +5 -0
  114. package/browser/query-builder/QueryBuilder.js +35 -23
  115. package/browser/query-builder/QueryBuilder.js.map +1 -1
  116. package/browser/query-builder/QueryExpressionMap.d.ts +2 -1
  117. package/browser/query-builder/QueryExpressionMap.js +0 -4
  118. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  119. package/browser/query-builder/SelectQueryBuilder.js +10 -3
  120. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  121. package/browser/query-builder/WhereClause.d.ts +1 -1
  122. package/browser/query-builder/WhereClause.js.map +1 -1
  123. package/browser/query-builder/index.d.ts +1 -0
  124. package/browser/query-builder/index.js +17 -0
  125. package/browser/query-builder/index.js.map +1 -0
  126. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  127. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +28 -0
  128. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  129. package/browser/repository/BaseEntity.d.ts +12 -0
  130. package/browser/repository/BaseEntity.js +12 -0
  131. package/browser/repository/BaseEntity.js.map +1 -1
  132. package/browser/repository/Repository.d.ts +13 -1
  133. package/browser/repository/Repository.js +17 -1
  134. package/browser/repository/Repository.js.map +1 -1
  135. package/browser/schema-builder/options/TableIndexOptions.d.ts +5 -0
  136. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  137. package/browser/schema-builder/table/TableIndex.d.ts +5 -0
  138. package/browser/schema-builder/table/TableIndex.js +3 -0
  139. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  140. package/browser/subscriber/Broadcaster.d.ts +10 -0
  141. package/browser/subscriber/Broadcaster.js +46 -0
  142. package/browser/subscriber/Broadcaster.js.map +1 -1
  143. package/browser/subscriber/EntitySubscriberInterface.d.ts +9 -0
  144. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  145. package/browser/subscriber/event/QueryEvent.d.ts +50 -0
  146. package/browser/subscriber/event/QueryEvent.js +3 -0
  147. package/browser/subscriber/event/QueryEvent.js.map +1 -0
  148. package/browser/util/DateUtils.js +4 -2
  149. package/browser/util/DateUtils.js.map +1 -1
  150. package/browser/util/OrmUtils.d.ts +6 -0
  151. package/browser/util/OrmUtils.js +66 -0
  152. package/browser/util/OrmUtils.js.map +1 -1
  153. package/cache/DbQueryResultCache.js +3 -0
  154. package/cache/DbQueryResultCache.js.map +1 -1
  155. package/data-source/BaseDataSourceOptions.d.ts +4 -0
  156. package/data-source/BaseDataSourceOptions.js.map +1 -1
  157. package/data-source/DataSource.d.ts +4 -0
  158. package/data-source/DataSource.js +14 -0
  159. package/data-source/DataSource.js.map +1 -1
  160. package/decorator/Index.js +1 -0
  161. package/decorator/Index.js.map +1 -1
  162. package/decorator/options/IndexOptions.d.ts +5 -0
  163. package/decorator/options/IndexOptions.js.map +1 -1
  164. package/driver/Driver.d.ts +4 -0
  165. package/driver/Driver.js.map +1 -1
  166. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +9 -6
  167. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  168. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +9 -6
  169. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  170. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +6 -0
  171. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  172. package/driver/cockroachdb/CockroachDriver.d.ts +4 -0
  173. package/driver/cockroachdb/CockroachDriver.js +10 -1
  174. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  175. package/driver/cockroachdb/CockroachQueryRunner.d.ts +6 -1
  176. package/driver/cockroachdb/CockroachQueryRunner.js +46 -17
  177. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  178. package/driver/cordova/CordovaDriver.js +2 -2
  179. package/driver/cordova/CordovaDriver.js.map +1 -1
  180. package/driver/cordova/CordovaQueryRunner.js +8 -0
  181. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  182. package/driver/expo/ExpoQueryRunner.js +9 -2
  183. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  184. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  185. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  186. package/driver/mysql/MysqlQueryRunner.js +18 -7
  187. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  188. package/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  189. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  190. package/driver/oracle/OracleDriver.d.ts +4 -0
  191. package/driver/oracle/OracleDriver.js +17 -2
  192. package/driver/oracle/OracleDriver.js.map +1 -1
  193. package/driver/oracle/OracleQueryRunner.js +14 -4
  194. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  195. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +5 -0
  196. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  197. package/driver/postgres/PostgresConnectionOptions.d.ts +6 -5
  198. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  199. package/driver/postgres/PostgresDriver.d.ts +4 -0
  200. package/driver/postgres/PostgresDriver.js +13 -4
  201. package/driver/postgres/PostgresDriver.js.map +1 -1
  202. package/driver/postgres/PostgresQueryRunner.js +26 -11
  203. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  204. package/driver/react-native/ReactNativeQueryRunner.js +10 -2
  205. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  206. package/driver/sap/SapQueryRunner.js +22 -10
  207. package/driver/sap/SapQueryRunner.js.map +1 -1
  208. package/driver/spanner/SpannerConnectionOptions.d.ts +6 -0
  209. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  210. package/driver/spanner/SpannerDriver.d.ts +4 -0
  211. package/driver/spanner/SpannerDriver.js +10 -1
  212. package/driver/spanner/SpannerDriver.js.map +1 -1
  213. package/driver/spanner/SpannerQueryRunner.js +6 -0
  214. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  215. package/driver/sqlite/SqliteDriver.js.map +1 -1
  216. package/driver/sqlite/SqliteQueryRunner.js +61 -46
  217. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  218. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +10 -16
  219. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  220. package/driver/sqljs/SqljsQueryRunner.js +11 -3
  221. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  222. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -5
  223. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  224. package/driver/sqlserver/SqlServerDriver.d.ts +4 -0
  225. package/driver/sqlserver/SqlServerDriver.js +10 -1
  226. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  227. package/driver/sqlserver/SqlServerQueryRunner.js +12 -5
  228. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  229. package/entity-manager/EntityManager.d.ts +5 -1
  230. package/entity-manager/EntityManager.js +10 -1
  231. package/entity-manager/EntityManager.js.map +1 -1
  232. package/entity-manager/MongoEntityManager.js +4 -8
  233. package/entity-manager/MongoEntityManager.js.map +1 -1
  234. package/error/EntityNotFoundError.d.ts +2 -0
  235. package/error/EntityNotFoundError.js +2 -0
  236. package/error/EntityNotFoundError.js.map +1 -1
  237. package/find-options/FindOperatorType.d.ts +1 -1
  238. package/find-options/FindOperatorType.js.map +1 -1
  239. package/find-options/operator/Or.d.ts +2 -0
  240. package/find-options/operator/Or.js +10 -0
  241. package/find-options/operator/Or.js.map +1 -0
  242. package/index.d.ts +1 -0
  243. package/index.js +1 -0
  244. package/index.js.map +1 -1
  245. package/index.mjs +2 -0
  246. package/logger/AbstractLogger.js +1 -1
  247. package/logger/AbstractLogger.js.map +1 -1
  248. package/metadata/ColumnMetadata.js +4 -0
  249. package/metadata/ColumnMetadata.js.map +1 -1
  250. package/metadata/EntityMetadata.d.ts +3 -3
  251. package/metadata/EntityMetadata.js +7 -3
  252. package/metadata/EntityMetadata.js.map +1 -1
  253. package/metadata/IndexMetadata.d.ts +5 -0
  254. package/metadata/IndexMetadata.js +1 -0
  255. package/metadata/IndexMetadata.js.map +1 -1
  256. package/metadata-args/IndexMetadataArgs.d.ts +5 -0
  257. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  258. package/package.json +1 -1
  259. package/persistence/EntityPersistExecutor.js +1 -1
  260. package/persistence/EntityPersistExecutor.js.map +1 -1
  261. package/persistence/SubjectExecutor.js +3 -0
  262. package/persistence/SubjectExecutor.js.map +1 -1
  263. package/query-builder/InsertQueryBuilder.js +19 -6
  264. package/query-builder/InsertQueryBuilder.js.map +1 -1
  265. package/query-builder/QueryBuilder.d.ts +5 -0
  266. package/query-builder/QueryBuilder.js +35 -23
  267. package/query-builder/QueryBuilder.js.map +1 -1
  268. package/query-builder/QueryExpressionMap.d.ts +2 -1
  269. package/query-builder/QueryExpressionMap.js +0 -4
  270. package/query-builder/QueryExpressionMap.js.map +1 -1
  271. package/query-builder/SelectQueryBuilder.js +10 -3
  272. package/query-builder/SelectQueryBuilder.js.map +1 -1
  273. package/query-builder/WhereClause.d.ts +1 -1
  274. package/query-builder/WhereClause.js.map +1 -1
  275. package/query-builder/index.d.ts +1 -0
  276. package/query-builder/index.js +21 -0
  277. package/query-builder/index.js.map +1 -0
  278. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  279. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +28 -0
  280. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  281. package/repository/BaseEntity.d.ts +12 -0
  282. package/repository/BaseEntity.js +12 -0
  283. package/repository/BaseEntity.js.map +1 -1
  284. package/repository/Repository.d.ts +13 -1
  285. package/repository/Repository.js +17 -1
  286. package/repository/Repository.js.map +1 -1
  287. package/schema-builder/options/TableIndexOptions.d.ts +5 -0
  288. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  289. package/schema-builder/table/TableIndex.d.ts +5 -0
  290. package/schema-builder/table/TableIndex.js +3 -0
  291. package/schema-builder/table/TableIndex.js.map +1 -1
  292. package/subscriber/Broadcaster.d.ts +10 -0
  293. package/subscriber/Broadcaster.js +46 -0
  294. package/subscriber/Broadcaster.js.map +1 -1
  295. package/subscriber/EntitySubscriberInterface.d.ts +9 -0
  296. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  297. package/subscriber/event/QueryEvent.d.ts +50 -0
  298. package/subscriber/event/QueryEvent.js +4 -0
  299. package/subscriber/event/QueryEvent.js.map +1 -0
  300. package/util/DateUtils.js +5 -2
  301. package/util/DateUtils.js.map +1 -1
  302. package/util/OrmUtils.d.ts +6 -0
  303. package/util/OrmUtils.js +66 -0
  304. package/util/OrmUtils.js.map +1 -1
@@ -3,6 +3,7 @@ import { QueryFailedError } from "../../error/QueryFailedError";
3
3
  import { AbstractSqliteQueryRunner } from "../sqlite-abstract/AbstractSqliteQueryRunner";
4
4
  import { Broadcaster } from "../../subscriber/Broadcaster";
5
5
  import { QueryResult } from "../../query-runner/QueryResult";
6
+ import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
6
7
  /**
7
8
  * Runs queries on a single sqlite database connection.
8
9
  */
@@ -36,16 +37,21 @@ export class ReactNativeQueryRunner extends AbstractSqliteQueryRunner {
36
37
  throw new QueryRunnerAlreadyReleasedError();
37
38
  return new Promise(async (ok, fail) => {
38
39
  const databaseConnection = await this.connect();
40
+ const broadcasterResult = new BroadcasterResult();
39
41
  this.driver.connection.logger.logQuery(query, parameters, this);
42
+ this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
40
43
  const queryStartTime = +new Date();
41
- databaseConnection.executeSql(query, parameters, (raw) => {
44
+ databaseConnection.executeSql(query, parameters, async (raw) => {
42
45
  // log slow queries if maxQueryExecution time is set
43
46
  const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
44
47
  const queryEndTime = +new Date();
45
48
  const queryExecutionTime = queryEndTime - queryStartTime;
49
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, true, queryExecutionTime, raw, undefined);
46
50
  if (maxQueryExecutionTime &&
47
51
  queryExecutionTime > maxQueryExecutionTime)
48
52
  this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
53
+ if (broadcasterResult.promises.length > 0)
54
+ await Promise.all(broadcasterResult.promises);
49
55
  const result = new QueryResult();
50
56
  if (raw === null || raw === void 0 ? void 0 : raw.hasOwnProperty("rowsAffected")) {
51
57
  result.affected = raw.rowsAffected;
@@ -68,8 +74,10 @@ export class ReactNativeQueryRunner extends AbstractSqliteQueryRunner {
68
74
  else {
69
75
  ok(result.raw);
70
76
  }
71
- }, (err) => {
77
+ }, async (err) => {
72
78
  this.driver.connection.logger.logQueryError(err, query, parameters, this);
79
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
80
+ await broadcasterResult.wait();
73
81
  fail(new QueryFailedError(query, parameters, err));
74
82
  });
75
83
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/driver/react-native/ReactNativeQueryRunner.ts"],"names":[],"mappings":"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","file":"ReactNativeQueryRunner.js","sourcesContent":["import { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { ReactNativeDriver } from \"./ReactNativeDriver\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class ReactNativeQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n // @ts-ignore temporary, we need to fix the issue with the AbstractSqliteDriver and circular errors\n driver: ReactNativeDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: ReactNativeDriver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n }\n\n /**\n * Called before migrations are run.\n */\n async beforeMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = OFF`)\n }\n\n /**\n * Called after migrations are run.\n */\n async afterMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = ON`)\n }\n\n /**\n * Executes a given SQL query.\n */\n query(\n query: string,\n parameters?: any[],\n useStructuredResult = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n return new Promise(async (ok, fail) => {\n const databaseConnection = await this.connect()\n this.driver.connection.logger.logQuery(query, parameters, this)\n const queryStartTime = +new Date()\n databaseConnection.executeSql(\n query,\n parameters,\n (raw: any) => {\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 result = new QueryResult()\n\n if (raw?.hasOwnProperty(\"rowsAffected\")) {\n result.affected = raw.rowsAffected\n }\n\n if (raw?.hasOwnProperty(\"rows\")) {\n let records = []\n for (let i = 0; i < raw.rows.length; i++) {\n records.push(raw.rows.item(i))\n }\n\n result.raw = records\n result.records = records\n }\n\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId\n }\n\n if (useStructuredResult) {\n ok(result)\n } else {\n ok(result.raw)\n }\n },\n (err: any) => {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n fail(new QueryFailedError(query, parameters, err))\n },\n )\n })\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(\n objectLiteral: ObjectLiteral,\n startIndex: number = 0,\n ): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\")\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/driver/react-native/ReactNativeQueryRunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAA;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAExF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,yBAAyB;IAOjE,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,MAAyB;QACjC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACjB,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CACD,KAAa,EACb,UAAkB,EAClB,mBAAmB,GAAG,KAAK;QAE3B,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,+BAA+B,EAAE,CAAA;QAEhE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YAClC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YAC/C,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAA;YAEjD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;YAC/D,IAAI,CAAC,WAAW,CAAC,yBAAyB,CACtC,iBAAiB,EACjB,KAAK,EACL,UAAU,CACb,CAAA;YAED,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;YAClC,kBAAkB,CAAC,UAAU,CACzB,KAAK,EACL,UAAU,EACV,KAAK,EAAE,GAAQ,EAAE,EAAE;gBACf,oDAAoD;gBACpD,MAAM,qBAAqB,GACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAA;gBAC7C,MAAM,YAAY,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;gBAChC,MAAM,kBAAkB,GAAG,YAAY,GAAG,cAAc,CAAA;gBAExD,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACrC,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,IAAI,EACJ,kBAAkB,EAClB,GAAG,EACH,SAAS,CACZ,CAAA;gBAED,IACI,qBAAqB;oBACrB,kBAAkB,GAAG,qBAAqB;oBAE1C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CACtC,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,IAAI,CACP,CAAA;gBAEL,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACrC,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;gBAEjD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;gBAEhC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,CAAC,cAAc,CAAC,EAAE;oBACrC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAA;iBACrC;gBAED,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,CAAC,MAAM,CAAC,EAAE;oBAC7B,IAAI,OAAO,GAAG,EAAE,CAAA;oBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;qBACjC;oBAED,MAAM,CAAC,GAAG,GAAG,OAAO,CAAA;oBACpB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;iBAC3B;gBAED,4DAA4D;gBAC5D,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,aAAa,EAAE;oBACvC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAA;iBAC5B;gBAED,IAAI,mBAAmB,EAAE;oBACrB,EAAE,CAAC,MAAM,CAAC,CAAA;iBACb;qBAAM;oBACH,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;iBACjB;YACL,CAAC,EACD,KAAK,EAAE,GAAQ,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CACvC,GAAG,EACH,KAAK,EACL,UAAU,EACV,IAAI,CACP,CAAA;gBACD,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACrC,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,GAAG,CACN,CAAA;gBACD,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAA;gBAE9B,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;YACtD,CAAC,CACJ,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,WAAW,CACjB,aAA4B,EAC5B,aAAqB,CAAC;QAEtB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAA;IAC5E,CAAC;CACJ","file":"ReactNativeQueryRunner.js","sourcesContent":["import { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { ReactNativeDriver } from \"./ReactNativeDriver\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\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 ReactNativeQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n // @ts-ignore temporary, we need to fix the issue with the AbstractSqliteDriver and circular errors\n driver: ReactNativeDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: ReactNativeDriver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n }\n\n /**\n * Called before migrations are run.\n */\n async beforeMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = OFF`)\n }\n\n /**\n * Called after migrations are run.\n */\n async afterMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = ON`)\n }\n\n /**\n * Executes a given SQL query.\n */\n query(\n query: string,\n parameters?: any[],\n useStructuredResult = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n return new Promise(async (ok, fail) => {\n const databaseConnection = await this.connect()\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 databaseConnection.executeSql(\n query,\n parameters,\n async (raw: any) => {\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = +new Date()\n const queryExecutionTime = queryEndTime - queryStartTime\n\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n raw,\n undefined,\n )\n\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n if (broadcasterResult.promises.length > 0)\n await Promise.all(broadcasterResult.promises)\n\n const result = new QueryResult()\n\n if (raw?.hasOwnProperty(\"rowsAffected\")) {\n result.affected = raw.rowsAffected\n }\n\n if (raw?.hasOwnProperty(\"rows\")) {\n let records = []\n for (let i = 0; i < raw.rows.length; i++) {\n records.push(raw.rows.item(i))\n }\n\n result.raw = records\n result.records = records\n }\n\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId\n }\n\n if (useStructuredResult) {\n ok(result)\n } else {\n ok(result.raw)\n }\n },\n async (err: any) => {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n await broadcasterResult.wait()\n\n fail(new QueryFailedError(query, parameters, err))\n },\n )\n })\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(\n objectLiteral: ObjectLiteral,\n startIndex: number = 0,\n ): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\")\n }\n}\n"],"sourceRoot":"../.."}
@@ -18,6 +18,7 @@ import { QueryLock } from "../../query-runner/QueryLock";
18
18
  import { MetadataTableType } from "../types/MetadataTableType";
19
19
  import { InstanceChecker } from "../../util/InstanceChecker";
20
20
  import { promisify } from "util";
21
+ import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
21
22
  /**
22
23
  * Runs queries on a single SQL Server database connection.
23
24
  */
@@ -133,21 +134,30 @@ export class SapQueryRunner extends BaseQueryRunner {
133
134
  const release = await this.lock.acquire();
134
135
  let statement;
135
136
  const result = new QueryResult();
137
+ const broadcasterResult = new BroadcasterResult();
136
138
  try {
137
139
  const databaseConnection = await this.connect();
138
140
  this.driver.connection.logger.logQuery(query, parameters, this);
141
+ this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
139
142
  const queryStartTime = +new Date();
140
143
  const isInsertQuery = query.substr(0, 11) === "INSERT INTO";
141
- statement = databaseConnection.prepare(query);
142
- const raw = await new Promise((ok, fail) => {
143
- statement.exec(parameters, (err, raw) => err
144
- ? fail(new QueryFailedError(query, parameters, err))
145
- : ok(raw));
146
- });
144
+ if (parameters === null || parameters === void 0 ? void 0 : parameters.some(Array.isArray)) {
145
+ statement = await promisify(databaseConnection.prepare.bind(databaseConnection))(query);
146
+ }
147
+ let raw;
148
+ try {
149
+ raw = statement
150
+ ? await promisify(statement.exec.bind(statement))(parameters)
151
+ : await promisify(databaseConnection.exec.bind(databaseConnection))(query, parameters, {});
152
+ }
153
+ catch (err) {
154
+ throw new QueryFailedError(query, parameters, err);
155
+ }
147
156
  // log slow queries if maxQueryExecution time is set
148
157
  const maxQueryExecutionTime = this.driver.connection.options.maxQueryExecutionTime;
149
158
  const queryEndTime = +new Date();
150
159
  const queryExecutionTime = queryEndTime - queryStartTime;
160
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, true, queryExecutionTime, raw, undefined);
151
161
  if (maxQueryExecutionTime &&
152
162
  queryExecutionTime > maxQueryExecutionTime) {
153
163
  this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
@@ -171,15 +181,17 @@ export class SapQueryRunner extends BaseQueryRunner {
171
181
  result.records = identityValueResult;
172
182
  }
173
183
  }
174
- catch (e) {
175
- this.driver.connection.logger.logQueryError(e, query, parameters, this);
176
- throw e;
184
+ catch (err) {
185
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
186
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
187
+ throw err;
177
188
  }
178
189
  finally {
179
190
  // Never forget to drop the statement we reserved
180
191
  if (statement === null || statement === void 0 ? void 0 : statement.drop) {
181
192
  await new Promise((ok) => statement.drop(() => ok()));
182
193
  }
194
+ await broadcasterResult.wait();
183
195
  // Always release the lock.
184
196
  release();
185
197
  }
@@ -1971,7 +1983,7 @@ export class SapQueryRunner extends BaseQueryRunner {
1971
1983
  */
1972
1984
  escapePath(target) {
1973
1985
  const { schema, tableName } = this.driver.parseTableName(target);
1974
- if (schema) {
1986
+ if (schema && schema !== this.driver.schema) {
1975
1987
  return `"${schema}"."${tableName}"`;
1976
1988
  }
1977
1989
  return `"${tableName}"`;