typeorm 0.2.38-dev.d8f6037 → 0.2.39-dev.179ae75

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 (657) hide show
  1. package/README.md +60 -59
  2. package/browser/connection/ConnectionMetadataBuilder.js +4 -4
  3. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  4. package/browser/connection/ConnectionOptionsReader.js +2 -1
  5. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  6. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +1 -1
  7. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  8. package/browser/decorator/transaction/Transaction.js +3 -3
  9. package/browser/decorator/transaction/Transaction.js.map +1 -1
  10. package/browser/driver/DriverUtils.js +1 -1
  11. package/browser/driver/DriverUtils.js.map +1 -1
  12. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  13. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  14. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +6 -5
  15. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  16. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +19 -48
  17. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  18. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  19. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  20. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +2 -1
  21. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  22. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +17 -46
  23. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  24. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  25. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  26. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -3
  27. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  28. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  29. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  30. package/browser/driver/cockroachdb/CockroachDriver.js +5 -4
  31. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  32. package/browser/driver/cockroachdb/CockroachQueryRunner.js +46 -77
  33. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  34. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  35. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  36. package/browser/driver/cordova/CordovaDriver.js +2 -1
  37. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  38. package/browser/driver/expo/ExpoQueryRunner.js +12 -43
  39. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  40. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  41. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  42. package/browser/driver/mongodb/MongoDriver.js +2 -1
  43. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  44. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  45. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  46. package/browser/driver/mysql/MysqlDriver.js +4 -2
  47. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  48. package/browser/driver/mysql/MysqlQueryRunner.js +24 -54
  49. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  50. package/browser/driver/nativescript/NativescriptQueryRunner.js +45 -37
  51. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  52. package/browser/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  53. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  54. package/browser/driver/oracle/OracleDriver.js +5 -4
  55. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  56. package/browser/driver/oracle/OracleQueryRunner.js +20 -48
  57. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  58. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  59. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  60. package/browser/driver/postgres/PostgresDriver.js +6 -5
  61. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  62. package/browser/driver/postgres/PostgresQueryRunner.js +21 -51
  63. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  64. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  65. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  66. package/browser/driver/react-native/ReactNativeDriver.js +2 -1
  67. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  68. package/browser/driver/sap/SapConnectionOptions.d.ts +16 -6
  69. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  70. package/browser/driver/sap/SapDriver.js +6 -3
  71. package/browser/driver/sap/SapDriver.js.map +1 -1
  72. package/browser/driver/sap/SapQueryRunner.js +20 -50
  73. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  74. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  75. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  76. package/browser/driver/sqlite/SqliteDriver.js +4 -3
  77. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  78. package/browser/driver/sqlite/SqliteQueryRunner.js +16 -8
  79. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  80. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +19 -49
  81. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  82. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  83. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  84. package/browser/driver/sqljs/SqljsDriver.js +4 -2
  85. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  86. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  87. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  88. package/browser/driver/sqlserver/SqlServerDriver.js +7 -6
  89. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  90. package/browser/driver/sqlserver/SqlServerQueryRunner.js +84 -116
  91. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  92. package/browser/entity-manager/MongoEntityManager.js +8 -13
  93. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  94. package/browser/find-options/FindOptionsUtils.js +1 -1
  95. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  96. package/browser/metadata/ColumnMetadata.js +4 -4
  97. package/browser/metadata/ColumnMetadata.js.map +1 -1
  98. package/browser/metadata/EmbeddedMetadata.js +1 -1
  99. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  100. package/browser/metadata/EntityMetadata.js +1 -1
  101. package/browser/metadata/EntityMetadata.js.map +1 -1
  102. package/browser/metadata/RelationMetadata.js +4 -4
  103. package/browser/metadata/RelationMetadata.js.map +1 -1
  104. package/browser/metadata-builder/EntityMetadataBuilder.js +5 -5
  105. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  106. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  107. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  108. package/browser/naming-strategy/DefaultNamingStrategy.js +5 -5
  109. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  110. package/browser/persistence/Subject.js +1 -1
  111. package/browser/persistence/Subject.js.map +1 -1
  112. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  113. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  114. package/browser/persistence/SubjectExecutor.js +1 -1
  115. package/browser/persistence/SubjectExecutor.js.map +1 -1
  116. package/browser/persistence/SubjectTopoligicalSorter.js +5 -5
  117. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  118. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  119. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  120. package/browser/query-builder/DeleteQueryBuilder.js +3 -10
  121. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  122. package/browser/query-builder/InsertQueryBuilder.js +4 -6
  123. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  124. package/browser/query-builder/QueryBuilder.js +9 -9
  125. package/browser/query-builder/QueryBuilder.js.map +1 -1
  126. package/browser/query-builder/RelationLoader.js +2 -2
  127. package/browser/query-builder/RelationLoader.js.map +1 -1
  128. package/browser/query-builder/RelationRemover.js +6 -6
  129. package/browser/query-builder/RelationRemover.js.map +1 -1
  130. package/browser/query-builder/SelectQueryBuilder.js +14 -14
  131. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  132. package/browser/query-builder/SoftDeleteQueryBuilder.js +3 -10
  133. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  134. package/browser/query-builder/UpdateQueryBuilder.js +5 -12
  135. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  136. package/browser/query-builder/relation-id/RelationIdLoader.js +1 -1
  137. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  138. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  139. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  140. package/browser/query-runner/BaseQueryRunner.js +2 -2
  141. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  142. package/browser/query-runner/QueryLock.js +1 -1
  143. package/browser/query-runner/QueryLock.js.map +1 -1
  144. package/browser/repository/BaseEntity.js +1 -1
  145. package/browser/repository/BaseEntity.js.map +1 -1
  146. package/browser/repository/Repository.js +1 -1
  147. package/browser/repository/Repository.js.map +1 -1
  148. package/browser/repository/TreeRepository.js +2 -2
  149. package/browser/repository/TreeRepository.js.map +1 -1
  150. package/browser/schema-builder/table/TableCheck.js +1 -1
  151. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  152. package/browser/schema-builder/table/TableForeignKey.js +2 -2
  153. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  154. package/browser/schema-builder/table/TableIndex.js +1 -1
  155. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  156. package/browser/schema-builder/table/TableUnique.js +1 -1
  157. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  158. package/browser/subscriber/Broadcaster.d.ts +23 -2
  159. package/browser/subscriber/Broadcaster.js +35 -2
  160. package/browser/subscriber/Broadcaster.js.map +1 -1
  161. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  162. package/browser/subscriber/BroadcasterResult.js +19 -0
  163. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  164. package/cache/DbQueryResultCache.js +12 -12
  165. package/cache/RedisQueryResultCache.js +12 -12
  166. package/cli.js +1 -6
  167. package/cli.js.map +1 -1
  168. package/commands/CacheClearCommand.js +4 -4
  169. package/commands/CacheClearCommand.js.map +1 -1
  170. package/commands/CommandUtils.js +10 -10
  171. package/commands/CommandUtils.js.map +1 -1
  172. package/commands/EntityCreateCommand.js +3 -3
  173. package/commands/EntityCreateCommand.js.map +1 -1
  174. package/commands/InitCommand.js +5 -5
  175. package/commands/InitCommand.js.map +1 -1
  176. package/commands/MigrationCreateCommand.js +5 -5
  177. package/commands/MigrationCreateCommand.js.map +1 -1
  178. package/commands/MigrationGenerateCommand.js +7 -7
  179. package/commands/MigrationGenerateCommand.js.map +1 -1
  180. package/commands/MigrationRevertCommand.js +4 -4
  181. package/commands/MigrationRevertCommand.js.map +1 -1
  182. package/commands/MigrationRunCommand.js +5 -5
  183. package/commands/MigrationRunCommand.js.map +1 -1
  184. package/commands/MigrationShowCommand.js +5 -5
  185. package/commands/MigrationShowCommand.js.map +1 -1
  186. package/commands/QueryCommand.js +4 -4
  187. package/commands/QueryCommand.js.map +1 -1
  188. package/commands/SchemaDropCommand.js +4 -4
  189. package/commands/SchemaDropCommand.js.map +1 -1
  190. package/commands/SchemaLogCommand.js +5 -5
  191. package/commands/SchemaLogCommand.js.map +1 -1
  192. package/commands/SchemaSyncCommand.js +4 -4
  193. package/commands/SchemaSyncCommand.js.map +1 -1
  194. package/commands/SubscriberCreateCommand.js +3 -3
  195. package/commands/SubscriberCreateCommand.js.map +1 -1
  196. package/commands/VersionCommand.js +3 -3
  197. package/commands/VersionCommand.js.map +1 -1
  198. package/connection/Connection.js +19 -19
  199. package/connection/Connection.js.map +1 -1
  200. package/connection/ConnectionMetadataBuilder.js +11 -11
  201. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  202. package/connection/ConnectionOptionsReader.js +11 -10
  203. package/connection/ConnectionOptionsReader.js.map +1 -1
  204. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -2
  205. package/connection/options-reader/ConnectionOptionsXmlReader.js +3 -3
  206. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  207. package/connection/options-reader/ConnectionOptionsYmlReader.js +4 -4
  208. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  209. package/decorator/Check.js +1 -1
  210. package/decorator/Check.js.map +1 -1
  211. package/decorator/EntityRepository.js +1 -1
  212. package/decorator/EntityRepository.js.map +1 -1
  213. package/decorator/Exclusion.js +1 -1
  214. package/decorator/Exclusion.js.map +1 -1
  215. package/decorator/Generated.js +1 -1
  216. package/decorator/Generated.js.map +1 -1
  217. package/decorator/Index.js +1 -1
  218. package/decorator/Index.js.map +1 -1
  219. package/decorator/Unique.js +1 -1
  220. package/decorator/Unique.js.map +1 -1
  221. package/decorator/columns/Column.js +4 -4
  222. package/decorator/columns/Column.js.map +1 -1
  223. package/decorator/columns/CreateDateColumn.js +1 -1
  224. package/decorator/columns/CreateDateColumn.js.map +1 -1
  225. package/decorator/columns/DeleteDateColumn.js +1 -1
  226. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  227. package/decorator/columns/ObjectIdColumn.js +1 -1
  228. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  229. package/decorator/columns/PrimaryColumn.js +2 -2
  230. package/decorator/columns/PrimaryColumn.js.map +1 -1
  231. package/decorator/columns/PrimaryGeneratedColumn.js +2 -2
  232. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  233. package/decorator/columns/UpdateDateColumn.js +1 -1
  234. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  235. package/decorator/columns/VersionColumn.js +1 -1
  236. package/decorator/columns/VersionColumn.js.map +1 -1
  237. package/decorator/columns/ViewColumn.js +1 -1
  238. package/decorator/columns/ViewColumn.js.map +1 -1
  239. package/decorator/entity/ChildEntity.js +2 -2
  240. package/decorator/entity/ChildEntity.js.map +1 -1
  241. package/decorator/entity/Entity.js +1 -1
  242. package/decorator/entity/Entity.js.map +1 -1
  243. package/decorator/entity/TableInheritance.js +1 -1
  244. package/decorator/entity/TableInheritance.js.map +1 -1
  245. package/decorator/entity-view/ViewEntity.js +1 -1
  246. package/decorator/entity-view/ViewEntity.js.map +1 -1
  247. package/decorator/listeners/AfterInsert.js +1 -1
  248. package/decorator/listeners/AfterInsert.js.map +1 -1
  249. package/decorator/listeners/AfterLoad.js +1 -1
  250. package/decorator/listeners/AfterLoad.js.map +1 -1
  251. package/decorator/listeners/AfterRemove.js +1 -1
  252. package/decorator/listeners/AfterRemove.js.map +1 -1
  253. package/decorator/listeners/AfterUpdate.js +1 -1
  254. package/decorator/listeners/AfterUpdate.js.map +1 -1
  255. package/decorator/listeners/BeforeInsert.js +1 -1
  256. package/decorator/listeners/BeforeInsert.js.map +1 -1
  257. package/decorator/listeners/BeforeRemove.js +1 -1
  258. package/decorator/listeners/BeforeRemove.js.map +1 -1
  259. package/decorator/listeners/BeforeUpdate.js +1 -1
  260. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  261. package/decorator/listeners/EventSubscriber.js +1 -1
  262. package/decorator/listeners/EventSubscriber.js.map +1 -1
  263. package/decorator/relations/JoinColumn.js +1 -1
  264. package/decorator/relations/JoinColumn.js.map +1 -1
  265. package/decorator/relations/JoinTable.js +1 -1
  266. package/decorator/relations/JoinTable.js.map +1 -1
  267. package/decorator/relations/ManyToMany.js +1 -1
  268. package/decorator/relations/ManyToMany.js.map +1 -1
  269. package/decorator/relations/ManyToOne.js +1 -1
  270. package/decorator/relations/ManyToOne.js.map +1 -1
  271. package/decorator/relations/OneToMany.js +1 -1
  272. package/decorator/relations/OneToMany.js.map +1 -1
  273. package/decorator/relations/OneToOne.js +1 -1
  274. package/decorator/relations/OneToOne.js.map +1 -1
  275. package/decorator/relations/RelationCount.js +1 -1
  276. package/decorator/relations/RelationCount.js.map +1 -1
  277. package/decorator/relations/RelationId.js +1 -1
  278. package/decorator/relations/RelationId.js.map +1 -1
  279. package/decorator/transaction/Transaction.js +7 -7
  280. package/decorator/transaction/Transaction.js.map +1 -1
  281. package/decorator/transaction/TransactionManager.js +1 -1
  282. package/decorator/transaction/TransactionManager.js.map +1 -1
  283. package/decorator/transaction/TransactionRepository.js +1 -1
  284. package/decorator/transaction/TransactionRepository.js.map +1 -1
  285. package/decorator/tree/Tree.js +1 -1
  286. package/decorator/tree/Tree.js.map +1 -1
  287. package/decorator/tree/TreeChildren.js +1 -1
  288. package/decorator/tree/TreeChildren.js.map +1 -1
  289. package/decorator/tree/TreeLevelColumn.js +1 -1
  290. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  291. package/decorator/tree/TreeParent.js +1 -1
  292. package/decorator/tree/TreeParent.js.map +1 -1
  293. package/driver/DriverUtils.js +9 -9
  294. package/driver/DriverUtils.js.map +1 -1
  295. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -1
  296. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  297. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  298. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  299. package/driver/aurora-data-api/AuroraDataApiDriver.js +12 -11
  300. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  301. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +146 -175
  302. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  303. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  304. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  305. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +10 -9
  306. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  307. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +29 -58
  308. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  309. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  310. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  311. package/driver/better-sqlite3/BetterSqlite3Driver.js +12 -11
  312. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  313. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +5 -5
  314. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  315. package/driver/capacitor/CapacitorDriver.js +7 -7
  316. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  317. package/driver/capacitor/CapacitorQueryRunner.js +5 -5
  318. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  319. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  320. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  321. package/driver/cockroachdb/CockroachDriver.js +15 -14
  322. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  323. package/driver/cockroachdb/CockroachQueryRunner.js +180 -211
  324. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  325. package/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  326. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  327. package/driver/cordova/CordovaDriver.js +5 -4
  328. package/driver/cordova/CordovaDriver.js.map +1 -1
  329. package/driver/cordova/CordovaQueryRunner.js +13 -13
  330. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  331. package/driver/expo/ExpoDriver.js +3 -3
  332. package/driver/expo/ExpoDriver.js.map +1 -1
  333. package/driver/expo/ExpoQueryRunner.js +23 -54
  334. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  335. package/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  336. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  337. package/driver/mongodb/MongoDriver.js +4 -3
  338. package/driver/mongodb/MongoDriver.js.map +1 -1
  339. package/driver/mongodb/MongoQueryRunner.js +178 -178
  340. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  341. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  342. package/driver/mysql/MysqlDriver.js +9 -7
  343. package/driver/mysql/MysqlDriver.js.map +1 -1
  344. package/driver/mysql/MysqlQueryRunner.js +152 -182
  345. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  346. package/driver/nativescript/NativescriptDriver.js +3 -3
  347. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  348. package/driver/nativescript/NativescriptQueryRunner.js +48 -40
  349. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  350. package/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  351. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  352. package/driver/oracle/OracleDriver.js +13 -12
  353. package/driver/oracle/OracleDriver.js.map +1 -1
  354. package/driver/oracle/OracleQueryRunner.js +143 -171
  355. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  356. package/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  357. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  358. package/driver/postgres/PostgresDriver.js +24 -23
  359. package/driver/postgres/PostgresDriver.js.map +1 -1
  360. package/driver/postgres/PostgresQueryRunner.js +169 -199
  361. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  362. package/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  363. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  364. package/driver/react-native/ReactNativeDriver.js +5 -4
  365. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  366. package/driver/react-native/ReactNativeQueryRunner.js +3 -3
  367. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  368. package/driver/sap/SapConnectionOptions.d.ts +16 -6
  369. package/driver/sap/SapConnectionOptions.js.map +1 -1
  370. package/driver/sap/SapDriver.js +11 -8
  371. package/driver/sap/SapDriver.js.map +1 -1
  372. package/driver/sap/SapQueryRunner.js +153 -183
  373. package/driver/sap/SapQueryRunner.js.map +1 -1
  374. package/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  375. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  376. package/driver/sqlite/SqliteDriver.js +12 -11
  377. package/driver/sqlite/SqliteDriver.js.map +1 -1
  378. package/driver/sqlite/SqliteQueryRunner.js +21 -13
  379. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  380. package/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -4
  381. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +138 -168
  382. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  383. package/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  384. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  385. package/driver/sqljs/SqljsDriver.js +17 -15
  386. package/driver/sqljs/SqljsDriver.js.map +1 -1
  387. package/driver/sqljs/SqljsQueryRunner.js +9 -9
  388. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  389. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  390. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  391. package/driver/sqlserver/SqlServerDriver.js +13 -12
  392. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  393. package/driver/sqlserver/SqlServerQueryRunner.js +220 -252
  394. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  395. package/entity-manager/EntityManager.js +30 -30
  396. package/entity-manager/EntityManager.js.map +1 -1
  397. package/entity-manager/MongoEntityManager.js +23 -28
  398. package/entity-manager/MongoEntityManager.js.map +1 -1
  399. package/entity-manager/SqljsEntityManager.js +5 -5
  400. package/entity-manager/SqljsEntityManager.js.map +1 -1
  401. package/entity-schema/EntitySchemaTransformer.js +1 -1
  402. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  403. package/error/AlreadyHasActiveConnectionError.js +1 -1
  404. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  405. package/error/CannotAttachTreeChildrenEntityError.js +1 -1
  406. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  407. package/error/CannotConnectAlreadyConnectedError.js +1 -1
  408. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  409. package/error/CannotCreateEntityIdMapError.js +1 -1
  410. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  411. package/error/CannotDetermineEntityError.js +1 -1
  412. package/error/CannotDetermineEntityError.js.map +1 -1
  413. package/error/CannotExecuteNotConnectedError.js +1 -1
  414. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  415. package/error/CannotGetEntityManagerNotConnectedError.js +1 -1
  416. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  417. package/error/CannotReflectMethodParameterTypeError.js +1 -1
  418. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  419. package/error/CircularRelationsError.js +1 -1
  420. package/error/CircularRelationsError.js.map +1 -1
  421. package/error/ColumnTypeUndefinedError.js +1 -1
  422. package/error/ColumnTypeUndefinedError.js.map +1 -1
  423. package/error/ConnectionIsNotSetError.js +1 -1
  424. package/error/ConnectionIsNotSetError.js.map +1 -1
  425. package/error/ConnectionNotFoundError.js +1 -1
  426. package/error/ConnectionNotFoundError.js.map +1 -1
  427. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
  428. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  429. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
  430. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  431. package/error/CustomRepositoryNotFoundError.js +1 -1
  432. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  433. package/error/DataTypeNotSupportedError.js +1 -1
  434. package/error/DataTypeNotSupportedError.js.map +1 -1
  435. package/error/DriverOptionNotSetError.js +1 -1
  436. package/error/DriverOptionNotSetError.js.map +1 -1
  437. package/error/DriverPackageNotInstalledError.js +1 -1
  438. package/error/DriverPackageNotInstalledError.js.map +1 -1
  439. package/error/EntityColumnNotFound.js +1 -1
  440. package/error/EntityColumnNotFound.js.map +1 -1
  441. package/error/EntityMetadataNotFoundError.js +1 -1
  442. package/error/EntityMetadataNotFoundError.js.map +1 -1
  443. package/error/EntityNotFoundError.js +1 -1
  444. package/error/EntityNotFoundError.js.map +1 -1
  445. package/error/FindRelationsNotFoundError.js +1 -1
  446. package/error/FindRelationsNotFoundError.js.map +1 -1
  447. package/error/InitializedRelationError.js +1 -1
  448. package/error/InitializedRelationError.js.map +1 -1
  449. package/error/InsertValuesMissingError.js +1 -1
  450. package/error/InsertValuesMissingError.js.map +1 -1
  451. package/error/LimitOnUpdateNotSupportedError.js +1 -1
  452. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  453. package/error/LockNotSupportedOnGivenDriverError.js +1 -1
  454. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  455. package/error/MetadataAlreadyExistsError.js +1 -1
  456. package/error/MetadataAlreadyExistsError.js.map +1 -1
  457. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -1
  458. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  459. package/error/MissingDeleteDateColumnError.js +1 -1
  460. package/error/MissingDeleteDateColumnError.js.map +1 -1
  461. package/error/MissingDriverError.js +1 -1
  462. package/error/MissingDriverError.js.map +1 -1
  463. package/error/MissingJoinColumnError.js +1 -1
  464. package/error/MissingJoinColumnError.js.map +1 -1
  465. package/error/MissingJoinTableError.js +1 -1
  466. package/error/MissingJoinTableError.js.map +1 -1
  467. package/error/MissingPrimaryColumnError.js +1 -1
  468. package/error/MissingPrimaryColumnError.js.map +1 -1
  469. package/error/MustBeEntityError.js +1 -1
  470. package/error/MustBeEntityError.js.map +1 -1
  471. package/error/NamingStrategyNotFoundError.js +1 -1
  472. package/error/NamingStrategyNotFoundError.js.map +1 -1
  473. package/error/NestedSetMultipleRootError.js +1 -1
  474. package/error/NestedSetMultipleRootError.js.map +1 -1
  475. package/error/NoConnectionForRepositoryError.js +1 -1
  476. package/error/NoConnectionForRepositoryError.js.map +1 -1
  477. package/error/NoConnectionOptionError.js +1 -1
  478. package/error/NoConnectionOptionError.js.map +1 -1
  479. package/error/NoNeedToReleaseEntityManagerError.js +1 -1
  480. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  481. package/error/NoVersionOrUpdateDateColumnError.js +1 -1
  482. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  483. package/error/OffsetWithoutLimitNotSupportedError.js +1 -1
  484. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  485. package/error/OptimisticLockCanNotBeUsedError.js +1 -1
  486. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  487. package/error/OptimisticLockVersionMismatchError.js +1 -1
  488. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  489. package/error/PersistedEntityNotFoundError.js +1 -1
  490. package/error/PersistedEntityNotFoundError.js.map +1 -1
  491. package/error/PessimisticLockTransactionRequiredError.js +1 -1
  492. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  493. package/error/PrimaryColumnCannotBeNullableError.js +1 -1
  494. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  495. package/error/QueryFailedError.js +3 -3
  496. package/error/QueryFailedError.js.map +1 -1
  497. package/error/QueryRunnerAlreadyReleasedError.js +1 -1
  498. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  499. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -1
  500. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  501. package/error/RepositoryNotFoundError.js +1 -1
  502. package/error/RepositoryNotFoundError.js.map +1 -1
  503. package/error/RepositoryNotTreeError.js +1 -1
  504. package/error/RepositoryNotTreeError.js.map +1 -1
  505. package/error/ReturningStatementNotSupportedError.js +1 -1
  506. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  507. package/error/SubjectRemovedAndUpdatedError.js +1 -1
  508. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  509. package/error/SubjectWithoutIdentifierError.js +1 -1
  510. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  511. package/error/TransactionAlreadyStartedError.js +1 -1
  512. package/error/TransactionAlreadyStartedError.js.map +1 -1
  513. package/error/TransactionNotStartedError.js +1 -1
  514. package/error/TransactionNotStartedError.js.map +1 -1
  515. package/error/TreeRepositoryNotSupportedError.js +1 -1
  516. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  517. package/error/TypeORMError.js +1 -1
  518. package/error/TypeORMError.js.map +1 -1
  519. package/error/UpdateValuesMissingError.js +1 -1
  520. package/error/UpdateValuesMissingError.js.map +1 -1
  521. package/error/UsingJoinColumnIsNotAllowedError.js +1 -1
  522. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  523. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
  524. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  525. package/error/UsingJoinTableIsNotAllowedError.js +1 -1
  526. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  527. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
  528. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  529. package/error/index.js +62 -62
  530. package/error/index.js.map +1 -1
  531. package/find-options/FindOptionsUtils.js +4 -4
  532. package/find-options/FindOptionsUtils.js.map +1 -1
  533. package/globals.js +7 -7
  534. package/globals.js.map +1 -1
  535. package/index.js +102 -102
  536. package/index.js.map +1 -1
  537. package/logger/DebugLogger.js +9 -9
  538. package/logger/DebugLogger.js.map +1 -1
  539. package/logger/FileLogger.js +1 -1
  540. package/logger/FileLogger.js.map +1 -1
  541. package/metadata/ColumnMetadata.js +4 -4
  542. package/metadata/ColumnMetadata.js.map +1 -1
  543. package/metadata/EmbeddedMetadata.js +1 -1
  544. package/metadata/EmbeddedMetadata.js.map +1 -1
  545. package/metadata/EntityMetadata.js +2 -2
  546. package/metadata/EntityMetadata.js.map +1 -1
  547. package/metadata/RelationMetadata.js +4 -4
  548. package/metadata/RelationMetadata.js.map +1 -1
  549. package/metadata-builder/EntityMetadataBuilder.js +5 -5
  550. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  551. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  552. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  553. package/migration/MigrationExecutor.js +33 -33
  554. package/migration/MigrationExecutor.js.map +1 -1
  555. package/naming-strategy/DefaultNamingStrategy.js +10 -10
  556. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  557. package/package.json +1 -1
  558. package/persistence/EntityPersistExecutor.js +5 -5
  559. package/persistence/EntityPersistExecutor.js.map +1 -1
  560. package/persistence/Subject.js +1 -1
  561. package/persistence/Subject.js.map +1 -1
  562. package/persistence/SubjectDatabaseEntityLoader.js +6 -6
  563. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  564. package/persistence/SubjectExecutor.js +31 -31
  565. package/persistence/SubjectExecutor.js.map +1 -1
  566. package/persistence/SubjectTopoligicalSorter.js +5 -5
  567. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  568. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
  569. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  570. package/persistence/tree/ClosureSubjectExecutor.js +13 -13
  571. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  572. package/persistence/tree/MaterializedPathSubjectExecutor.js +5 -5
  573. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  574. package/persistence/tree/NestedSetSubjectExecutor.js +14 -14
  575. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  576. package/platform/PlatformTools.js +8 -8
  577. package/platform/PlatformTools.js.map +1 -1
  578. package/query-builder/DeleteQueryBuilder.js +7 -14
  579. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  580. package/query-builder/InsertQueryBuilder.js +9 -11
  581. package/query-builder/InsertQueryBuilder.js.map +1 -1
  582. package/query-builder/JoinAttribute.js +1 -1
  583. package/query-builder/JoinAttribute.js.map +1 -1
  584. package/query-builder/QueryBuilder.js +37 -37
  585. package/query-builder/QueryBuilder.js.map +1 -1
  586. package/query-builder/QueryBuilderUtils.js +1 -1
  587. package/query-builder/QueryBuilderUtils.js.map +1 -1
  588. package/query-builder/QueryExpressionMap.js +3 -3
  589. package/query-builder/QueryExpressionMap.js.map +1 -1
  590. package/query-builder/RelationLoader.js +2 -2
  591. package/query-builder/RelationLoader.js.map +1 -1
  592. package/query-builder/RelationQueryBuilder.js +13 -13
  593. package/query-builder/RelationQueryBuilder.js.map +1 -1
  594. package/query-builder/RelationRemover.js +12 -12
  595. package/query-builder/RelationRemover.js.map +1 -1
  596. package/query-builder/RelationUpdater.js +2 -2
  597. package/query-builder/ReturningResultsEntityUpdator.js +6 -6
  598. package/query-builder/SelectQueryBuilder.js +43 -43
  599. package/query-builder/SelectQueryBuilder.js.map +1 -1
  600. package/query-builder/SoftDeleteQueryBuilder.js +7 -14
  601. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  602. package/query-builder/UpdateQueryBuilder.js +10 -17
  603. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  604. package/query-builder/relation-count/RelationCountAttribute.js +2 -2
  605. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  606. package/query-builder/relation-count/RelationCountLoader.js +4 -4
  607. package/query-builder/relation-id/RelationIdAttribute.js +1 -1
  608. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  609. package/query-builder/relation-id/RelationIdLoader.js +5 -5
  610. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  611. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  612. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  613. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  614. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  615. package/query-runner/BaseQueryRunner.js +25 -25
  616. package/query-runner/BaseQueryRunner.js.map +1 -1
  617. package/query-runner/QueryLock.js +3 -3
  618. package/query-runner/QueryLock.js.map +1 -1
  619. package/repository/AbstractRepository.js +1 -1
  620. package/repository/AbstractRepository.js.map +1 -1
  621. package/repository/BaseEntity.js +4 -4
  622. package/repository/BaseEntity.js.map +1 -1
  623. package/repository/MongoRepository.js +1 -1
  624. package/repository/MongoRepository.js.map +1 -1
  625. package/repository/Repository.js +1 -1
  626. package/repository/Repository.js.map +1 -1
  627. package/repository/TreeRepository.js +7 -7
  628. package/repository/TreeRepository.js.map +1 -1
  629. package/schema-builder/MongoSchemaBuilder.js +2 -2
  630. package/schema-builder/RdbmsSchemaBuilder.js +95 -95
  631. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  632. package/schema-builder/table/Table.js +1 -1
  633. package/schema-builder/table/Table.js.map +1 -1
  634. package/schema-builder/table/TableCheck.js +1 -1
  635. package/schema-builder/table/TableCheck.js.map +1 -1
  636. package/schema-builder/table/TableForeignKey.js +2 -2
  637. package/schema-builder/table/TableForeignKey.js.map +1 -1
  638. package/schema-builder/table/TableIndex.js +1 -1
  639. package/schema-builder/table/TableIndex.js.map +1 -1
  640. package/schema-builder/table/TableUnique.js +1 -1
  641. package/schema-builder/table/TableUnique.js.map +1 -1
  642. package/subscriber/Broadcaster.d.ts +23 -2
  643. package/subscriber/Broadcaster.js +35 -2
  644. package/subscriber/Broadcaster.js.map +1 -1
  645. package/subscriber/BroadcasterResult.d.ts +4 -0
  646. package/subscriber/BroadcasterResult.js +19 -0
  647. package/subscriber/BroadcasterResult.js.map +1 -1
  648. package/util/DateUtils.js +1 -1
  649. package/util/DateUtils.js.map +1 -1
  650. package/util/DirectoryExportedClassesLoader.js +1 -1
  651. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  652. package/util/ObjectUtils.js +2 -2
  653. package/util/ObjectUtils.js.map +1 -1
  654. package/util/OrmUtils.js +2 -2
  655. package/util/OrmUtils.js.map +1 -1
  656. package/util/StringUtils.js +2 -2
  657. package/util/StringUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/repository/TreeRepository.ts"],"names":[],"mappings":"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","file":"TreeRepository.js","sourcesContent":["import {Repository} from \"./Repository\";\nimport {SelectQueryBuilder} from \"../query-builder/SelectQueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {AbstractSqliteDriver} from \"../driver/sqlite-abstract/AbstractSqliteDriver\";\nimport { TypeORMError } from \"../error/TypeORMError\";\nimport { FindTreeOptions } from \"../find-options/FindTreeOptions\";\nimport { FindRelationsNotFoundError } from \"../error\";\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\";\n\n/**\n * Repository with additional functions to work with trees.\n *\n * @see Repository\n */\nexport class TreeRepository<Entity> extends Repository<Entity> {\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets complete trees for all roots in the table.\n */\n async findTrees(options?: FindTreeOptions): Promise<Entity[]> {\n const roots = await this.findRoots(options);\n await Promise.all(roots.map(root => this.findDescendantsTree(root, options)));\n return roots;\n }\n\n /**\n * Roots are entities that have no ancestors. Finds them all.\n */\n findRoots(options?: FindTreeOptions): Promise<Entity[]> {\n const escapeAlias = (alias: string) => this.manager.connection.driver.escape(alias);\n const escapeColumn = (column: string) => this.manager.connection.driver.escape(column);\n const parentPropertyName = this.manager.connection.namingStrategy.joinColumnName(\n this.metadata.treeParentRelation!.propertyName, this.metadata.primaryColumns[0].propertyName\n );\n\n const qb = this.createQueryBuilder(\"treeEntity\");\n\n if (options?.relations) {\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n\n return qb\n .where(`${escapeAlias(\"treeEntity\")}.${escapeColumn(parentPropertyName)} IS NULL`)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them all in a flat array.\n */\n findDescendants(entity: Entity): Promise<Entity[]> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them in a tree - nested into each other.\n */\n async findDescendantsTree(entity: Entity, options?: FindTreeOptions): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n\n const qb: SelectQueryBuilder<Entity> = this.createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity);\n\n if (options?.relations) {\n // Copy because `applyRelationsRecursively` modifies it\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = this.createRelationMaps(\"treeEntity\", entities.raw);\n this.buildChildrenEntityTree(entity, entities.entities, relationMaps);\n\n return entity;\n }\n\n /**\n * Gets number of descendants of the entity.\n */\n countDescendants(entity: Entity): Promise<number> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get descendants of the entities in a tree.\n */\n createDescendantsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n\n const joinCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = \" + escape(alias) + \".\" + escape(column.referencedColumn!.propertyPath);\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const whereCondition = alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND joined.\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const joinCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", whereCondition)\n .where(joinCondition, parameters);\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE ${subQuery.getQuery()} || '%'`;\n } else {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE CONCAT(${subQuery.getQuery()}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them all in a flat array.\n */\n findAncestors(entity: Entity): Promise<Entity[]> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them in a tree - nested into each other.\n */\n findAncestorsTree(entity: Entity): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getRawAndEntities()\n .then(entitiesAndScalars => {\n const relationMaps = this.createRelationMaps(\"treeEntity\", entitiesAndScalars.raw);\n this.buildParentEntityTree(entity, entitiesAndScalars.entities, relationMaps);\n return entity;\n });\n }\n\n /**\n * Gets number of ancestors of the entity.\n */\n countAncestors(entity: Entity): Promise<number> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get ancestors of the entities in the tree.\n */\n createAncestorsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n // const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n const joinCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n return closureTableAlias + \".\" + column.propertyPath + \" = \" + alias + \".\" + column.referencedColumn!.propertyPath;\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return closureTableAlias + \".\" + column.propertyPath + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const joinCondition = \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND \" + alias + \".\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", joinCondition)\n .where(whereCondition, parameters);\n\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n // example: SELECT * FROM category category WHERE (SELECT mpath FROM `category` WHERE id = 2) LIKE CONCAT(category.mpath, '%');\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${subQuery.getQuery()} LIKE ${alias}.${this.metadata.materializedPathColumn!.propertyPath} || '%'`;\n\n } else {\n return `${subQuery.getQuery()} LIKE CONCAT(${alias}.${this.metadata.materializedPathColumn!.propertyPath}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Moves entity to the children of then given entity.\n *\n move(entity: Entity, to: Entity): Promise<void> {\n return Promise.resolve();\n } */\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected createRelationMaps(alias: string, rawResults: any[]): { id: any, parentId: any }[] {\n return rawResults.map(rawResult => {\n const joinColumn = this.metadata.treeParentRelation!.joinColumns[0];\n // fixes issue #2518, default to databaseName property when givenDatabaseName is not set\n const joinColumnName = joinColumn.givenDatabaseName || joinColumn.databaseName;\n const id = rawResult[alias + \"_\" + this.metadata.primaryColumns[0].databaseName];\n const parentId = rawResult[alias + \"_\" + joinColumnName];\n return {\n id: this.manager.connection.driver.prepareHydratedValue(id, this.metadata.primaryColumns[0]),\n parentId: this.manager.connection.driver.prepareHydratedValue(parentId, joinColumn),\n };\n });\n }\n\n protected buildChildrenEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const childProperty = this.metadata.treeChildrenRelation!.propertyName;\n const parentEntityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const childRelationMaps = relationMaps.filter(relationMap => relationMap.parentId === parentEntityId);\n const childIds = new Set(childRelationMaps.map(relationMap => relationMap.id));\n entity[childProperty] = entities.filter(entity => childIds.has(this.metadata.primaryColumns[0].getEntityValue(entity)));\n entity[childProperty].forEach((childEntity: any) => {\n this.buildChildrenEntityTree(childEntity, entities, relationMaps);\n });\n }\n\n protected buildParentEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const parentProperty = this.metadata.treeParentRelation!.propertyName;\n const entityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const parentRelationMap = relationMaps.find(relationMap => relationMap.id === entityId);\n const parentEntity = entities.find(entity => {\n if (!parentRelationMap)\n return false;\n\n return this.metadata.primaryColumns[0].getEntityValue(entity) === parentRelationMap.parentId;\n });\n if (parentEntity) {\n entity[parentProperty] = parentEntity;\n this.buildParentEntityTree(entity[parentProperty], entities, relationMaps);\n }\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/repository/TreeRepository.ts"],"names":[],"mappings":"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","file":"TreeRepository.js","sourcesContent":["import {Repository} from \"./Repository\";\nimport {SelectQueryBuilder} from \"../query-builder/SelectQueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {AbstractSqliteDriver} from \"../driver/sqlite-abstract/AbstractSqliteDriver\";\nimport { TypeORMError } from \"../error/TypeORMError\";\nimport { FindTreeOptions } from \"../find-options/FindTreeOptions\";\nimport { FindRelationsNotFoundError } from \"../error\";\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\";\n\n/**\n * Repository with additional functions to work with trees.\n *\n * @see Repository\n */\nexport class TreeRepository<Entity> extends Repository<Entity> {\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets complete trees for all roots in the table.\n */\n async findTrees(options?: FindTreeOptions): Promise<Entity[]> {\n const roots = await this.findRoots(options);\n await Promise.all(roots.map(root => this.findDescendantsTree(root, options)));\n return roots;\n }\n\n /**\n * Roots are entities that have no ancestors. Finds them all.\n */\n findRoots(options?: FindTreeOptions): Promise<Entity[]> {\n const escapeAlias = (alias: string) => this.manager.connection.driver.escape(alias);\n const escapeColumn = (column: string) => this.manager.connection.driver.escape(column);\n const parentPropertyName = this.manager.connection.namingStrategy.joinColumnName(\n this.metadata.treeParentRelation!.propertyName, this.metadata.primaryColumns[0].propertyName\n );\n\n const qb = this.createQueryBuilder(\"treeEntity\");\n\n if (options?.relations) {\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n\n return qb\n .where(`${escapeAlias(\"treeEntity\")}.${escapeColumn(parentPropertyName)} IS NULL`)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them all in a flat array.\n */\n findDescendants(entity: Entity): Promise<Entity[]> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them in a tree - nested into each other.\n */\n async findDescendantsTree(entity: Entity, options?: FindTreeOptions): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n\n const qb: SelectQueryBuilder<Entity> = this.createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity);\n\n if (options?.relations) {\n // Copy because `applyRelationsRecursively` modifies it\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = this.createRelationMaps(\"treeEntity\", entities.raw);\n this.buildChildrenEntityTree(entity, entities.entities, relationMaps);\n\n return entity;\n }\n\n /**\n * Gets number of descendants of the entity.\n */\n countDescendants(entity: Entity): Promise<number> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get descendants of the entities in a tree.\n */\n createDescendantsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n\n const joinCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = \" + escape(alias) + \".\" + escape(column.referencedColumn!.propertyPath);\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const whereCondition = alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND joined.\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const joinCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", whereCondition)\n .where(joinCondition, parameters);\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE ${subQuery.getQuery()} || '%'`;\n } else {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE CONCAT(${subQuery.getQuery()}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them all in a flat array.\n */\n findAncestors(entity: Entity): Promise<Entity[]> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them in a tree - nested into each other.\n */\n findAncestorsTree(entity: Entity): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getRawAndEntities()\n .then(entitiesAndScalars => {\n const relationMaps = this.createRelationMaps(\"treeEntity\", entitiesAndScalars.raw);\n this.buildParentEntityTree(entity, entitiesAndScalars.entities, relationMaps);\n return entity;\n });\n }\n\n /**\n * Gets number of ancestors of the entity.\n */\n countAncestors(entity: Entity): Promise<number> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get ancestors of the entities in the tree.\n */\n createAncestorsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n // const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n const joinCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n return closureTableAlias + \".\" + column.propertyPath + \" = \" + alias + \".\" + column.referencedColumn!.propertyPath;\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return closureTableAlias + \".\" + column.propertyPath + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const joinCondition = \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND \" + alias + \".\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", joinCondition)\n .where(whereCondition, parameters);\n\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n // example: SELECT * FROM category category WHERE (SELECT mpath FROM `category` WHERE id = 2) LIKE CONCAT(category.mpath, '%');\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${subQuery.getQuery()} LIKE ${alias}.${this.metadata.materializedPathColumn!.propertyPath} || '%'`;\n\n } else {\n return `${subQuery.getQuery()} LIKE CONCAT(${alias}.${this.metadata.materializedPathColumn!.propertyPath}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Moves entity to the children of then given entity.\n *\n move(entity: Entity, to: Entity): Promise<void> {\n return Promise.resolve();\n } */\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected createRelationMaps(alias: string, rawResults: any[]): { id: any, parentId: any }[] {\n return rawResults.map(rawResult => {\n const joinColumn = this.metadata.treeParentRelation!.joinColumns[0];\n // fixes issue #2518, default to databaseName property when givenDatabaseName is not set\n const joinColumnName = joinColumn.givenDatabaseName || joinColumn.databaseName;\n const id = rawResult[alias + \"_\" + this.metadata.primaryColumns[0].databaseName];\n const parentId = rawResult[alias + \"_\" + joinColumnName];\n return {\n id: this.manager.connection.driver.prepareHydratedValue(id, this.metadata.primaryColumns[0]),\n parentId: this.manager.connection.driver.prepareHydratedValue(parentId, joinColumn),\n };\n });\n }\n\n protected buildChildrenEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const childProperty = this.metadata.treeChildrenRelation!.propertyName;\n const parentEntityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const childRelationMaps = relationMaps.filter(relationMap => relationMap.parentId === parentEntityId);\n const childIds = new Set(childRelationMaps.map(relationMap => relationMap.id));\n entity[childProperty] = entities.filter(entity => childIds.has(this.metadata.primaryColumns[0].getEntityValue(entity)));\n entity[childProperty].forEach((childEntity: any) => {\n this.buildChildrenEntityTree(childEntity, entities, relationMaps);\n });\n }\n\n protected buildParentEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const parentProperty = this.metadata.treeParentRelation!.propertyName;\n const entityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const parentRelationMap = relationMaps.find(relationMap => relationMap.id === entityId);\n const parentEntity = entities.find(entity => {\n if (!parentRelationMap)\n return false;\n\n return this.metadata.primaryColumns[0].getEntityValue(entity) === parentRelationMap.parentId;\n });\n if (parentEntity) {\n entity[parentProperty] = parentEntity;\n this.buildParentEntityTree(entity[parentProperty], entities, relationMaps);\n }\n }\n\n}\n"],"sourceRoot":".."}
@@ -24,7 +24,7 @@ var TableCheck = /** @class */ (function () {
24
24
  TableCheck.prototype.clone = function () {
25
25
  return new TableCheck({
26
26
  name: this.name,
27
- columnNames: this.columnNames ? __spreadArray([], __read(this.columnNames)) : [],
27
+ columnNames: this.columnNames ? __spreadArray([], __read(this.columnNames), false) : [],
28
28
  expression: this.expression,
29
29
  });
30
30
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/schema-builder/table/TableCheck.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH;IAqBI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,oBAAY,OAA0B;QAdtC;;WAEG;QACH,gBAAW,GAAc,EAAE,CAAC;QAYxB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,0BAAK,GAAL;QACI,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,0BAAK,IAAI,CAAC,WAAW,GAAE,CAAC,CAAC,EAAE;YAC1D,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,iBAAM,GAAb,UAAc,aAA4B;QACtC,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,UAAU,EAAE,aAAa,CAAC,UAAU;SACvC,CAAC,CAAC;IACP,CAAC;IAEL,iBAAC;AAAD,CA5DA,AA4DC,IAAA","file":"TableCheck.js","sourcesContent":["import {TableCheckOptions} from \"../options/TableCheckOptions\";\nimport {CheckMetadata} from \"../../metadata/CheckMetadata\";\n\n/**\n * Database's table check constraint stored in this class.\n */\nexport class TableCheck {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Constraint name.\n */\n name?: string;\n\n /**\n * Column that contains this constraint.\n */\n columnNames?: string[] = [];\n\n /**\n * Check expression.\n */\n expression?: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableCheckOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.expression = options.expression;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this constraint with exactly same properties.\n */\n clone(): TableCheck {\n return new TableCheck(<TableCheckOptions>{\n name: this.name,\n columnNames: this.columnNames ? [...this.columnNames] : [],\n expression: this.expression,\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates checks from the check metadata object.\n */\n static create(checkMetadata: CheckMetadata): TableCheck {\n return new TableCheck(<TableCheckOptions>{\n name: checkMetadata.name,\n expression: checkMetadata.expression\n });\n }\n\n}"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/schema-builder/table/TableCheck.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH;IAqBI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,oBAAY,OAA0B;QAdtC;;WAEG;QACH,gBAAW,GAAc,EAAE,CAAC;QAYxB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,0BAAK,GAAL;QACI,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,0BAAK,IAAI,CAAC,WAAW,UAAE,CAAC,CAAC,EAAE;YAC1D,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,iBAAM,GAAb,UAAc,aAA4B;QACtC,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,UAAU,EAAE,aAAa,CAAC,UAAU;SACvC,CAAC,CAAC;IACP,CAAC;IAEL,iBAAC;AAAD,CA5DA,AA4DC,IAAA","file":"TableCheck.js","sourcesContent":["import {TableCheckOptions} from \"../options/TableCheckOptions\";\nimport {CheckMetadata} from \"../../metadata/CheckMetadata\";\n\n/**\n * Database's table check constraint stored in this class.\n */\nexport class TableCheck {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Constraint name.\n */\n name?: string;\n\n /**\n * Column that contains this constraint.\n */\n columnNames?: string[] = [];\n\n /**\n * Check expression.\n */\n expression?: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableCheckOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.expression = options.expression;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this constraint with exactly same properties.\n */\n clone(): TableCheck {\n return new TableCheck(<TableCheckOptions>{\n name: this.name,\n columnNames: this.columnNames ? [...this.columnNames] : [],\n expression: this.expression,\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates checks from the check metadata object.\n */\n static create(checkMetadata: CheckMetadata): TableCheck {\n return new TableCheck(<TableCheckOptions>{\n name: checkMetadata.name,\n expression: checkMetadata.expression\n });\n }\n\n}"],"sourceRoot":"../.."}
@@ -34,8 +34,8 @@ var TableForeignKey = /** @class */ (function () {
34
34
  TableForeignKey.prototype.clone = function () {
35
35
  return new TableForeignKey({
36
36
  name: this.name,
37
- columnNames: __spreadArray([], __read(this.columnNames)),
38
- referencedColumnNames: __spreadArray([], __read(this.referencedColumnNames)),
37
+ columnNames: __spreadArray([], __read(this.columnNames), false),
38
+ referencedColumnNames: __spreadArray([], __read(this.referencedColumnNames), false),
39
39
  referencedDatabase: this.referencedDatabase,
40
40
  referencedSchema: this.referencedSchema,
41
41
  referencedTableName: this.referencedTableName,
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/schema-builder/table/TableForeignKey.ts"],"names":[],"mappings":";AAIA;;GAEG;AACH;IAsDI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,yBAAY,OAA+B;QA/C3C;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QAiB3B;;WAEG;QACH,0BAAqB,GAAa,EAAE,CAAC;QAyBjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAC3D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,+BAAK,GAAL;QACI,OAAO,IAAI,eAAe,CAAyB;YAC/C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,2BAAM,IAAI,CAAC,WAAW,EAAC;YAClC,qBAAqB,2BAAM,IAAI,CAAC,qBAAqB,EAAC;YACtD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,sBAAM,GAAb,UAAc,QAA4B,EAAE,MAAc;QACtD,OAAO,IAAI,eAAe,CAAyB;YAC/C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,kBAAkB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,QAAQ;YAC9D,gBAAgB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,MAAM;YAC1D,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;YACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAClC,CAAC,CAAC;IACP,CAAC;IAEL,sBAAC;AAAD,CAhHA,AAgHC,IAAA","file":"TableForeignKey.js","sourcesContent":["import {ForeignKeyMetadata} from \"../../metadata/ForeignKeyMetadata\";\nimport {TableForeignKeyOptions} from \"../options/TableForeignKeyOptions\";\nimport { Driver } from \"../../driver/Driver\";\n\n/**\n * Foreign key from the database stored in this class.\n */\nexport class TableForeignKey {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Name of the foreign key constraint.\n */\n name?: string;\n\n /**\n * Column names which included by this foreign key.\n */\n columnNames: string[] = [];\n\n /**\n * Database of Table referenced in the foreign key.\n */\n referencedDatabase?: string;\n\n /**\n * Database of Table referenced in the foreign key.\n */\n referencedSchema?: string;\n\n /**\n * Table referenced in the foreign key.\n */\n referencedTableName: string;\n\n /**\n * Column names which included by this foreign key.\n */\n referencedColumnNames: string[] = [];\n\n /**\n * \"ON DELETE\" of this foreign key, e.g. what action database should perform when\n * referenced stuff is being deleted.\n */\n onDelete?: string;\n\n /**\n * \"ON UPDATE\" of this foreign key, e.g. what action database should perform when\n * referenced stuff is being updated.\n */\n onUpdate?: string;\n\n /**\n * Set this foreign key constraint as \"DEFERRABLE\" e.g. check constraints at start\n * or at the end of a transaction\n */\n deferrable?: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableForeignKeyOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.referencedColumnNames = options.referencedColumnNames;\n this.referencedDatabase = options.referencedDatabase;\n this.referencedSchema = options.referencedSchema;\n this.referencedTableName = options.referencedTableName;\n this.onDelete = options.onDelete;\n this.onUpdate = options.onUpdate;\n this.deferrable = options.deferrable;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this foreign key with exactly same properties.\n */\n clone(): TableForeignKey {\n return new TableForeignKey(<TableForeignKeyOptions>{\n name: this.name,\n columnNames: [...this.columnNames],\n referencedColumnNames: [...this.referencedColumnNames],\n referencedDatabase: this.referencedDatabase,\n referencedSchema: this.referencedSchema,\n referencedTableName: this.referencedTableName,\n onDelete: this.onDelete,\n onUpdate: this.onUpdate,\n deferrable: this.deferrable,\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new table foreign key from the given foreign key metadata.\n */\n static create(metadata: ForeignKeyMetadata, driver: Driver): TableForeignKey {\n return new TableForeignKey(<TableForeignKeyOptions>{\n name: metadata.name,\n columnNames: metadata.columnNames,\n referencedColumnNames: metadata.referencedColumnNames,\n referencedDatabase: metadata.referencedEntityMetadata.database,\n referencedSchema: metadata.referencedEntityMetadata.schema,\n referencedTableName: metadata.referencedTablePath,\n onDelete: metadata.onDelete,\n onUpdate: metadata.onUpdate,\n deferrable: metadata.deferrable,\n });\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/schema-builder/table/TableForeignKey.ts"],"names":[],"mappings":";AAIA;;GAEG;AACH;IAsDI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,yBAAY,OAA+B;QA/C3C;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QAiB3B;;WAEG;QACH,0BAAqB,GAAa,EAAE,CAAC;QAyBjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAC3D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,+BAAK,GAAL;QACI,OAAO,IAAI,eAAe,CAAyB;YAC/C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,2BAAM,IAAI,CAAC,WAAW,SAAC;YAClC,qBAAqB,2BAAM,IAAI,CAAC,qBAAqB,SAAC;YACtD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,sBAAM,GAAb,UAAc,QAA4B,EAAE,MAAc;QACtD,OAAO,IAAI,eAAe,CAAyB;YAC/C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,kBAAkB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,QAAQ;YAC9D,gBAAgB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,MAAM;YAC1D,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;YACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAClC,CAAC,CAAC;IACP,CAAC;IAEL,sBAAC;AAAD,CAhHA,AAgHC,IAAA","file":"TableForeignKey.js","sourcesContent":["import {ForeignKeyMetadata} from \"../../metadata/ForeignKeyMetadata\";\nimport {TableForeignKeyOptions} from \"../options/TableForeignKeyOptions\";\nimport { Driver } from \"../../driver/Driver\";\n\n/**\n * Foreign key from the database stored in this class.\n */\nexport class TableForeignKey {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Name of the foreign key constraint.\n */\n name?: string;\n\n /**\n * Column names which included by this foreign key.\n */\n columnNames: string[] = [];\n\n /**\n * Database of Table referenced in the foreign key.\n */\n referencedDatabase?: string;\n\n /**\n * Database of Table referenced in the foreign key.\n */\n referencedSchema?: string;\n\n /**\n * Table referenced in the foreign key.\n */\n referencedTableName: string;\n\n /**\n * Column names which included by this foreign key.\n */\n referencedColumnNames: string[] = [];\n\n /**\n * \"ON DELETE\" of this foreign key, e.g. what action database should perform when\n * referenced stuff is being deleted.\n */\n onDelete?: string;\n\n /**\n * \"ON UPDATE\" of this foreign key, e.g. what action database should perform when\n * referenced stuff is being updated.\n */\n onUpdate?: string;\n\n /**\n * Set this foreign key constraint as \"DEFERRABLE\" e.g. check constraints at start\n * or at the end of a transaction\n */\n deferrable?: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableForeignKeyOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.referencedColumnNames = options.referencedColumnNames;\n this.referencedDatabase = options.referencedDatabase;\n this.referencedSchema = options.referencedSchema;\n this.referencedTableName = options.referencedTableName;\n this.onDelete = options.onDelete;\n this.onUpdate = options.onUpdate;\n this.deferrable = options.deferrable;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this foreign key with exactly same properties.\n */\n clone(): TableForeignKey {\n return new TableForeignKey(<TableForeignKeyOptions>{\n name: this.name,\n columnNames: [...this.columnNames],\n referencedColumnNames: [...this.referencedColumnNames],\n referencedDatabase: this.referencedDatabase,\n referencedSchema: this.referencedSchema,\n referencedTableName: this.referencedTableName,\n onDelete: this.onDelete,\n onUpdate: this.onUpdate,\n deferrable: this.deferrable,\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new table foreign key from the given foreign key metadata.\n */\n static create(metadata: ForeignKeyMetadata, driver: Driver): TableForeignKey {\n return new TableForeignKey(<TableForeignKeyOptions>{\n name: metadata.name,\n columnNames: metadata.columnNames,\n referencedColumnNames: metadata.referencedColumnNames,\n referencedDatabase: metadata.referencedEntityMetadata.database,\n referencedSchema: metadata.referencedEntityMetadata.schema,\n referencedTableName: metadata.referencedTablePath,\n onDelete: metadata.onDelete,\n onUpdate: metadata.onUpdate,\n deferrable: metadata.deferrable,\n });\n }\n\n}\n"],"sourceRoot":"../.."}
@@ -28,7 +28,7 @@ var TableIndex = /** @class */ (function () {
28
28
  TableIndex.prototype.clone = function () {
29
29
  return new TableIndex({
30
30
  name: this.name,
31
- columnNames: __spreadArray([], __read(this.columnNames)),
31
+ columnNames: __spreadArray([], __read(this.columnNames), false),
32
32
  isUnique: this.isUnique,
33
33
  isSpatial: this.isSpatial,
34
34
  isFulltext: this.isFulltext,
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/schema-builder/table/TableIndex.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH;IA4CI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,oBAAY,OAA0B;QArCtC;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QAmCvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,0BAAK,GAAL;QACI,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,2BAAM,IAAI,CAAC,WAAW,EAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,iBAAM,GAAb,UAAc,aAA4B;QACtC,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC;YACrE,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;SAC7B,CAAC,CAAC;IACP,CAAC;IAEL,iBAAC;AAAD,CAhGA,AAgGC,IAAA","file":"TableIndex.js","sourcesContent":["import {IndexMetadata} from \"../../metadata/IndexMetadata\";\nimport {TableIndexOptions} from \"../options/TableIndexOptions\";\n\n/**\n * Database's table index stored in this class.\n */\nexport class TableIndex {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Index name.\n */\n name?: string;\n\n /**\n * Columns included in this index.\n */\n columnNames: string[] = [];\n\n /**\n * Indicates if this index is unique.\n */\n isUnique: boolean;\n\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n isSpatial: boolean;\n\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Works only in MySQL.\n */\n isFulltext: boolean;\n\n /**\n * Fulltext parser.\n * Works only in MySQL.\n */\n parser?: string;\n\n /**\n * Index filter condition.\n */\n where: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableIndexOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.isUnique = !!options.isUnique;\n this.isSpatial = !!options.isSpatial;\n this.isFulltext = !!options.isFulltext;\n this.parser = options.parser;\n this.where = options.where ? options.where : \"\";\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this index with exactly same properties.\n */\n clone(): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: this.name,\n columnNames: [...this.columnNames],\n isUnique: this.isUnique,\n isSpatial: this.isSpatial,\n isFulltext: this.isFulltext,\n parser: this.parser,\n where: this.where\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates index from the index metadata object.\n */\n static create(indexMetadata: IndexMetadata): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: indexMetadata.name,\n columnNames: indexMetadata.columns.map(column => column.databaseName),\n isUnique: indexMetadata.isUnique,\n isSpatial: indexMetadata.isSpatial,\n isFulltext: indexMetadata.isFulltext,\n parser: indexMetadata.parser,\n where: indexMetadata.where\n });\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/schema-builder/table/TableIndex.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH;IA4CI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,oBAAY,OAA0B;QArCtC;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QAmCvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,0BAAK,GAAL;QACI,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,2BAAM,IAAI,CAAC,WAAW,SAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,iBAAM,GAAb,UAAc,aAA4B;QACtC,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC;YACrE,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;SAC7B,CAAC,CAAC;IACP,CAAC;IAEL,iBAAC;AAAD,CAhGA,AAgGC,IAAA","file":"TableIndex.js","sourcesContent":["import {IndexMetadata} from \"../../metadata/IndexMetadata\";\nimport {TableIndexOptions} from \"../options/TableIndexOptions\";\n\n/**\n * Database's table index stored in this class.\n */\nexport class TableIndex {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Index name.\n */\n name?: string;\n\n /**\n * Columns included in this index.\n */\n columnNames: string[] = [];\n\n /**\n * Indicates if this index is unique.\n */\n isUnique: boolean;\n\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n isSpatial: boolean;\n\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Works only in MySQL.\n */\n isFulltext: boolean;\n\n /**\n * Fulltext parser.\n * Works only in MySQL.\n */\n parser?: string;\n\n /**\n * Index filter condition.\n */\n where: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableIndexOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.isUnique = !!options.isUnique;\n this.isSpatial = !!options.isSpatial;\n this.isFulltext = !!options.isFulltext;\n this.parser = options.parser;\n this.where = options.where ? options.where : \"\";\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this index with exactly same properties.\n */\n clone(): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: this.name,\n columnNames: [...this.columnNames],\n isUnique: this.isUnique,\n isSpatial: this.isSpatial,\n isFulltext: this.isFulltext,\n parser: this.parser,\n where: this.where\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates index from the index metadata object.\n */\n static create(indexMetadata: IndexMetadata): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: indexMetadata.name,\n columnNames: indexMetadata.columns.map(column => column.databaseName),\n isUnique: indexMetadata.isUnique,\n isSpatial: indexMetadata.isSpatial,\n isFulltext: indexMetadata.isFulltext,\n parser: indexMetadata.parser,\n where: indexMetadata.where\n });\n }\n\n}\n"],"sourceRoot":"../.."}
@@ -23,7 +23,7 @@ var TableUnique = /** @class */ (function () {
23
23
  TableUnique.prototype.clone = function () {
24
24
  return new TableUnique({
25
25
  name: this.name,
26
- columnNames: __spreadArray([], __read(this.columnNames))
26
+ columnNames: __spreadArray([], __read(this.columnNames), false)
27
27
  });
28
28
  };
29
29
  // -------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/schema-builder/table/TableUnique.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH;IAgBI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,qBAAY,OAA2B;QATvC;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QAOvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,2BAAK,GAAL;QACI,OAAO,IAAI,WAAW,CAAqB;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,2BAAM,IAAI,CAAC,WAAW,EAAC;SACrC,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,kBAAM,GAAb,UAAc,cAA8B;QACxC,OAAO,IAAI,WAAW,CAAqB;YACvC,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;IAEL,kBAAC;AAAD,CArDA,AAqDC,IAAA","file":"TableUnique.js","sourcesContent":["import {TableUniqueOptions} from \"../options/TableUniqueOptions\";\nimport {UniqueMetadata} from \"../../metadata/UniqueMetadata\";\n\n/**\n * Database's table unique constraint stored in this class.\n */\nexport class TableUnique {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Constraint name.\n */\n name?: string;\n\n /**\n * Columns that contains this constraint.\n */\n columnNames: string[] = [];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableUniqueOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this constraint with exactly same properties.\n */\n clone(): TableUnique {\n return new TableUnique(<TableUniqueOptions>{\n name: this.name,\n columnNames: [...this.columnNames]\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates unique from the unique metadata object.\n */\n static create(uniqueMetadata: UniqueMetadata): TableUnique {\n return new TableUnique(<TableUniqueOptions>{\n name: uniqueMetadata.name,\n columnNames: uniqueMetadata.columns.map(column => column.databaseName)\n });\n }\n\n}"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/schema-builder/table/TableUnique.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH;IAgBI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,qBAAY,OAA2B;QATvC;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QAOvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,2BAAK,GAAL;QACI,OAAO,IAAI,WAAW,CAAqB;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,2BAAM,IAAI,CAAC,WAAW,SAAC;SACrC,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,kBAAM,GAAb,UAAc,cAA8B;QACxC,OAAO,IAAI,WAAW,CAAqB;YACvC,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;IAEL,kBAAC;AAAD,CArDA,AAqDC,IAAA","file":"TableUnique.js","sourcesContent":["import {TableUniqueOptions} from \"../options/TableUniqueOptions\";\nimport {UniqueMetadata} from \"../../metadata/UniqueMetadata\";\n\n/**\n * Database's table unique constraint stored in this class.\n */\nexport class TableUnique {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Constraint name.\n */\n name?: string;\n\n /**\n * Columns that contains this constraint.\n */\n columnNames: string[] = [];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableUniqueOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this constraint with exactly same properties.\n */\n clone(): TableUnique {\n return new TableUnique(<TableUniqueOptions>{\n name: this.name,\n columnNames: [...this.columnNames]\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates unique from the unique metadata object.\n */\n static create(uniqueMetadata: UniqueMetadata): TableUnique {\n return new TableUnique(<TableUniqueOptions>{\n name: uniqueMetadata.name,\n columnNames: uniqueMetadata.columns.map(column => column.databaseName)\n });\n }\n\n}"],"sourceRoot":"../.."}
@@ -5,12 +5,28 @@ import { EntityMetadata } from "../metadata/EntityMetadata";
5
5
  import { BroadcasterResult } from "./BroadcasterResult";
6
6
  import { ColumnMetadata } from "../metadata/ColumnMetadata";
7
7
  import { RelationMetadata } from "../metadata/RelationMetadata";
8
+ interface BroadcasterEvents {
9
+ "BeforeTransactionCommit": () => void;
10
+ "AfterTransactionCommit": () => void;
11
+ "BeforeTransactionStart": () => void;
12
+ "AfterTransactionStart": () => void;
13
+ "BeforeTransactionRollback": () => void;
14
+ "AfterTransactionRollback": () => void;
15
+ "BeforeUpdate": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]) => void;
16
+ "AfterUpdate": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]) => void;
17
+ "BeforeInsert": (metadata: EntityMetadata, entity: ObjectLiteral | undefined) => void;
18
+ "AfterInsert": (metadata: EntityMetadata, entity: ObjectLiteral | undefined) => void;
19
+ "BeforeRemove": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral) => void;
20
+ "AfterRemove": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral) => void;
21
+ "Load": (metadata: EntityMetadata, entities: ObjectLiteral[]) => void;
22
+ }
8
23
  /**
9
24
  * Broadcaster provides a helper methods to broadcast events to the subscribers.
10
25
  */
11
26
  export declare class Broadcaster {
12
27
  private queryRunner;
13
28
  constructor(queryRunner: QueryRunner);
29
+ broadcast<U extends keyof BroadcasterEvents>(event: U, ...args: Parameters<BroadcasterEvents[U]>): Promise<void>;
14
30
  /**
15
31
  * Broadcasts "BEFORE_INSERT" event.
16
32
  * Before insert event is executed before entity is being inserted to the database for the first time.
@@ -19,7 +35,7 @@ export declare class Broadcaster {
19
35
  *
20
36
  * Note: this method has a performance-optimized code organization, do not change code structure.
21
37
  */
22
- broadcastBeforeInsertEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral): void;
38
+ broadcastBeforeInsertEvent(result: BroadcasterResult, metadata: EntityMetadata, entity: undefined | ObjectLiteral): void;
23
39
  /**
24
40
  * Broadcasts "BEFORE_UPDATE" event.
25
41
  * Before update event is executed before entity is being updated in the database.
@@ -89,6 +105,10 @@ export declare class Broadcaster {
89
105
  * Note: this method has a performance-optimized code organization, do not change code structure.
90
106
  */
91
107
  broadcastAfterRemoveEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral): void;
108
+ /**
109
+ * @deprecated Use `broadcastLoadForAllEvent`
110
+ */
111
+ broadcastLoadEventsForAll(result: BroadcasterResult, metadata: EntityMetadata, entities: ObjectLiteral[]): void;
92
112
  /**
93
113
  * Broadcasts "AFTER_LOAD" event for all given entities, and their sub-entities.
94
114
  * After load event is executed after entity has been loaded from the database.
@@ -97,10 +117,11 @@ export declare class Broadcaster {
97
117
  *
98
118
  * Note: this method has a performance-optimized code organization, do not change code structure.
99
119
  */
100
- broadcastLoadEventsForAll(result: BroadcasterResult, metadata: EntityMetadata, entities: ObjectLiteral[]): void;
120
+ broadcastLoadEvent(result: BroadcasterResult, metadata: EntityMetadata, entities: ObjectLiteral[]): void;
101
121
  /**
102
122
  * Checks if subscriber's methods can be executed by checking if its don't listen to the particular entity,
103
123
  * or listens our entity.
104
124
  */
105
125
  protected isAllowedSubscriber(subscriber: EntitySubscriberInterface<any>, target: Function | string): boolean;
106
126
  }
127
+ export {};
@@ -1,3 +1,5 @@
1
+ import { __awaiter, __generator, __read, __spreadArray } from "tslib";
2
+ import { BroadcasterResult } from "./BroadcasterResult";
1
3
  /**
2
4
  * Broadcaster provides a helper methods to broadcast events to the subscribers.
3
5
  */
@@ -11,6 +13,31 @@ var Broadcaster = /** @class */ (function () {
11
13
  // -------------------------------------------------------------------------
12
14
  // Public Methods
13
15
  // -------------------------------------------------------------------------
16
+ Broadcaster.prototype.broadcast = function (event) {
17
+ var args = [];
18
+ for (var _i = 1; _i < arguments.length; _i++) {
19
+ args[_i - 1] = arguments[_i];
20
+ }
21
+ return __awaiter(this, void 0, void 0, function () {
22
+ var result, broadcastFunction;
23
+ var _a;
24
+ return __generator(this, function (_b) {
25
+ switch (_b.label) {
26
+ case 0:
27
+ result = new BroadcasterResult();
28
+ broadcastFunction = this["broadcast" + event + "Event"];
29
+ if (typeof broadcastFunction === "function") {
30
+ (_a = broadcastFunction).call.apply(_a, __spreadArray([this,
31
+ result], __read(args), false));
32
+ }
33
+ return [4 /*yield*/, result.wait()];
34
+ case 1:
35
+ _b.sent();
36
+ return [2 /*return*/];
37
+ }
38
+ });
39
+ });
40
+ };
14
41
  /**
15
42
  * Broadcasts "BEFORE_INSERT" event.
16
43
  * Before insert event is executed before entity is being inserted to the database for the first time.
@@ -363,6 +390,12 @@ var Broadcaster = /** @class */ (function () {
363
390
  });
364
391
  }
365
392
  };
393
+ /**
394
+ * @deprecated Use `broadcastLoadForAllEvent`
395
+ */
396
+ Broadcaster.prototype.broadcastLoadEventsForAll = function (result, metadata, entities) {
397
+ return this.broadcastLoadEvent(result, metadata, entities);
398
+ };
366
399
  /**
367
400
  * Broadcasts "AFTER_LOAD" event for all given entities, and their sub-entities.
368
401
  * After load event is executed after entity has been loaded from the database.
@@ -371,7 +404,7 @@ var Broadcaster = /** @class */ (function () {
371
404
  *
372
405
  * Note: this method has a performance-optimized code organization, do not change code structure.
373
406
  */
374
- Broadcaster.prototype.broadcastLoadEventsForAll = function (result, metadata, entities) {
407
+ Broadcaster.prototype.broadcastLoadEvent = function (result, metadata, entities) {
375
408
  var _this = this;
376
409
  entities.forEach(function (entity) {
377
410
  if (entity instanceof Promise) // todo: check why need this?
@@ -384,7 +417,7 @@ var Broadcaster = /** @class */ (function () {
384
417
  return;
385
418
  var value = relation.getEntityValue(entity);
386
419
  if (value instanceof Object)
387
- _this.broadcastLoadEventsForAll(result, relation.inverseEntityMetadata, Array.isArray(value) ? value : [value]);
420
+ _this.broadcastLoadEvent(result, relation.inverseEntityMetadata, Array.isArray(value) ? value : [value]);
388
421
  });
389
422
  }
390
423
  if (metadata.afterLoadListeners.length) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/Broadcaster.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH;IAEI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,qBAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;;;;;;OAOG;IACH,gDAA0B,GAA1B,UAA2B,MAAyB,EAAE,QAAwB,EAAE,MAAsB;QAAtG,iBA6BC;QA3BG,IAAI,MAAM,IAAI,QAAQ,CAAC,qBAAqB,CAAC,MAAM,EAAE;YACjD,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAA,QAAQ;gBAC3C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5B,IAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,YAAY,EAAE;oBAClF,IAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC;wBAC5C,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;wBACjC,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,QAAQ;qBACrB,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;OAOG;IACH,gDAA0B,GAA1B,UAA2B,MAAyB,EAAE,QAAwB,EAAE,MAAsB,EAAE,cAA8B,EAAE,cAAiC,EAAE,gBAAqC;QAAhN,iBA+BC;QA9BG,IAAI,MAAM,IAAI,QAAQ,CAAC,qBAAqB,CAAC,MAAM,EAAE;YACjD,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAA,QAAQ;gBAC3C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5B,IAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,YAAY,EAAE;oBAClF,IAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC;wBAC5C,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;wBACjC,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,QAAQ;wBAClB,cAAc,EAAE,cAAc;wBAC9B,cAAc,EAAE,cAAc,IAAI,EAAE;wBACpC,gBAAgB,EAAE,gBAAgB,IAAI,EAAE;qBAC3C,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;OAOG;IACH,gDAA0B,GAA1B,UAA2B,MAAyB,EAAE,QAAwB,EAAE,MAAsB,EAAE,cAA8B;QAAtI,iBA8BC;QA7BG,IAAI,MAAM,IAAI,QAAQ,CAAC,qBAAqB,CAAC,MAAM,EAAE;YACjD,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAA,QAAQ;gBAC3C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5B,IAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,YAAY,EAAE;oBAClF,IAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC;wBAC5C,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;wBACjC,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,QAAQ;wBAClB,cAAc,EAAE,cAAc;wBAC9B,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC;qBACzD,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;OAOG;IACH,+CAAyB,GAAzB,UAA0B,MAAyB,EAAE,QAAwB,EAAE,MAAsB;QAArG,iBA6BC;QA3BG,IAAI,MAAM,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;YAChD,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAA,QAAQ;gBAC1C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5B,IAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE;oBACjF,IAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC;wBAC3C,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;wBACjC,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,QAAQ;qBACrB,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,0DAAoC,GAApC,UAAqC,MAAyB;QAA9D,iBAeC;QAdG,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,UAAU,CAAC,sBAAsB,EAAE;oBACnC,IAAM,eAAe,GAAG,UAAU,CAAC,sBAAsB,CAAC;wBACtD,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;qBACpC,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,yDAAmC,GAAnC,UAAoC,MAAyB;QAA7D,iBAeC;QAdG,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,UAAU,CAAC,qBAAqB,EAAE;oBAClC,IAAM,eAAe,GAAG,UAAU,CAAC,qBAAqB,CAAC;wBACrD,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;qBACpC,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,2DAAqC,GAArC,UAAsC,MAAyB;QAA/D,iBAeC;QAdG,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,UAAU,CAAC,uBAAuB,EAAE;oBACpC,IAAM,eAAe,GAAG,UAAU,CAAC,uBAAuB,CAAC;wBACvD,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;qBACpC,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,0DAAoC,GAApC,UAAqC,MAAyB;QAA9D,iBAeC;QAdG,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,UAAU,CAAC,sBAAsB,EAAE;oBACnC,IAAM,eAAe,GAAG,UAAU,CAAC,sBAAsB,CAAC;wBACtD,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;qBACpC,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,6DAAuC,GAAvC,UAAwC,MAAyB;QAAjE,iBAeC;QAdG,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,UAAU,CAAC,yBAAyB,EAAE;oBACtC,IAAM,eAAe,GAAG,UAAU,CAAC,yBAAyB,CAAC;wBACzD,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;qBACpC,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,4DAAsC,GAAtC,UAAuC,MAAyB;QAAhE,iBAeC;QAdG,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,UAAU,CAAC,wBAAwB,EAAE;oBACrC,IAAM,eAAe,GAAG,UAAU,CAAC,wBAAwB,CAAC;wBACxD,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;qBACpC,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;OAOG;IACH,+CAAyB,GAAzB,UAA0B,MAAyB,EAAE,QAAwB,EAAE,MAAsB,EAAE,cAA8B,EAAE,cAAiC,EAAE,gBAAqC;QAA/M,iBAgCC;QA9BG,IAAI,MAAM,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;YAChD,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAA,QAAQ;gBAC1C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5B,IAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE;oBACjF,IAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC;wBAC3C,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;wBACjC,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,QAAQ;wBAClB,cAAc,EAAE,cAAc;wBAC9B,cAAc,EAAE,cAAc,IAAI,EAAE;wBACpC,gBAAgB,EAAE,gBAAgB,IAAI,EAAE;qBAC3C,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;OAOG;IACH,+CAAyB,GAAzB,UAA0B,MAAyB,EAAE,QAAwB,EAAE,MAAsB,EAAE,cAA8B;QAArI,iBA+BC;QA7BG,IAAI,MAAM,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;YAChD,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAA,QAAQ;gBAC1C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5B,IAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;gBACtD,IAAI,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE;oBACjF,IAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC;wBAC3C,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;wBACvC,WAAW,EAAE,KAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;wBACjC,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,QAAQ;wBAClB,cAAc,EAAE,cAAc;wBAC9B,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC;qBACzD,CAAC,CAAC;oBACH,IAAI,eAAe,YAAY,OAAO;wBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;OAOG;IACH,+CAAyB,GAAzB,UAA0B,MAAyB,EAAE,QAAwB,EAAE,QAAyB;QAAxG,iBA+CC;QA9CG,QAAQ,CAAC,OAAO,CAAC,UAAA,MAAM;YACnB,IAAI,MAAM,YAAY,OAAO,EAAE,6BAA6B;gBACxD,OAAO;YAEX,sFAAsF;YACtF,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;gBAC3B,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,QAAQ;oBAE/B,mHAAmH;oBACnH,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC;wBAChE,OAAO;oBAEX,IAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC9C,IAAI,KAAK,YAAY,MAAM;wBACvB,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvH,CAAC,CAAC,CAAC;aACN;YAED,IAAI,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBACpC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAA,QAAQ;oBACxC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBAC5B,IAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACjD,IAAI,eAAe,YAAY,OAAO;4BAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;qBAClB;gBACL,CAAC,CAAC,CAAC;aACN;YAED,IAAI,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;gBAChD,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,UAAU;oBACtD,IAAI,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE;wBAC/E,IAAM,eAAe,GAAG,UAAU,CAAC,SAAU,CAAC,MAAM,EAAE;4BAClD,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;4BACvC,WAAW,EAAE,KAAI,CAAC,WAAW;4BAC7B,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,OAAO;4BACjC,MAAM,EAAE,MAAM;4BACd,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAC;wBACH,IAAI,eAAe,YAAY,OAAO;4BAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;qBAClB;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;;OAGG;IACO,yCAAmB,GAA7B,UAA8B,UAA0C,EAAE,MAAuB;QAC7F,OAAQ,CAAC,UAAU,CAAC,QAAQ;YACxB,CAAC,UAAU,CAAC,QAAQ,EAAE;YACtB,UAAU,CAAC,QAAQ,EAAE,KAAK,MAAM;YAChC,UAAU,CAAC,QAAQ,EAAE,KAAK,MAAM;YAChC,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAEL,kBAAC;AAAD,CAhcA,AAgcC,IAAA","file":"Broadcaster.js","sourcesContent":["import {EntitySubscriberInterface} from \"./EntitySubscriberInterface\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {EntityMetadata} from \"../metadata/EntityMetadata\";\nimport {BroadcasterResult} from \"./BroadcasterResult\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {RelationMetadata} from \"../metadata/RelationMetadata\";\n\n/**\n * Broadcaster provides a helper methods to broadcast events to the subscribers.\n */\nexport class Broadcaster {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Broadcasts \"BEFORE_INSERT\" event.\n * Before insert event is executed before entity is being inserted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeInsertEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral): void {\n\n if (entity && metadata.beforeInsertListeners.length) {\n metadata.beforeInsertListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeInsert) {\n const executionResult = subscriber.beforeInsert({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_UPDATE\" event.\n * Before update event is executed before entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeUpdateEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]): void { // todo: send relations too?\n if (entity && metadata.beforeUpdateListeners.length) {\n metadata.beforeUpdateListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeUpdate) {\n const executionResult = subscriber.beforeUpdate({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || []\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_REMOVE\" event.\n * Before remove event is executed before entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeRemoveEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral): void {\n if (entity && metadata.beforeRemoveListeners.length) {\n metadata.beforeRemoveListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeRemove) {\n const executionResult = subscriber.beforeRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(databaseEntity)\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_INSERT\" event.\n * After insert event is executed after entity is being persisted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterInsertEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral): void {\n\n if (entity && metadata.afterInsertListeners.length) {\n metadata.afterInsertListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterInsert) {\n const executionResult = subscriber.afterInsert({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_START\" event.\n */\n broadcastBeforeTransactionStartEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.beforeTransactionStart) {\n const executionResult = subscriber.beforeTransactionStart({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_START\" event.\n */\n broadcastAfterTransactionStartEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.afterTransactionStart) {\n const executionResult = subscriber.afterTransactionStart({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_COMMIT\" event.\n */\n broadcastBeforeTransactionCommitEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.beforeTransactionCommit) {\n const executionResult = subscriber.beforeTransactionCommit({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_COMMIT\" event.\n */\n broadcastAfterTransactionCommitEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.afterTransactionCommit) {\n const executionResult = subscriber.afterTransactionCommit({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_ROLLBACK\" event.\n */\n broadcastBeforeTransactionRollbackEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.beforeTransactionRollback) {\n const executionResult = subscriber.beforeTransactionRollback({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_ROLLBACK\" event.\n */\n broadcastAfterTransactionRollbackEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.afterTransactionRollback) {\n const executionResult = subscriber.afterTransactionRollback({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_UPDATE\" event.\n * After update event is executed after entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterUpdateEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]): void {\n\n if (entity && metadata.afterUpdateListeners.length) {\n metadata.afterUpdateListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterUpdate) {\n const executionResult = subscriber.afterUpdate({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || []\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_REMOVE\" event.\n * After remove event is executed after entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterRemoveEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral): void {\n\n if (entity && metadata.afterRemoveListeners.length) {\n metadata.afterRemoveListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterRemove) {\n const executionResult = subscriber.afterRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(databaseEntity)\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_LOAD\" event for all given entities, and their sub-entities.\n * After load event is executed after entity has been loaded from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastLoadEventsForAll(result: BroadcasterResult, metadata: EntityMetadata, entities: ObjectLiteral[]): void {\n entities.forEach(entity => {\n if (entity instanceof Promise) // todo: check why need this?\n return;\n\n // collect load events for all children entities that were loaded with the main entity\n if (metadata.relations.length) {\n metadata.relations.forEach(relation => {\n\n // in lazy relations we cannot simply access to entity property because it will cause a getter and a database query\n if (relation.isLazy && !entity.hasOwnProperty(relation.propertyName))\n return;\n\n const value = relation.getEntityValue(entity);\n if (value instanceof Object)\n this.broadcastLoadEventsForAll(result, relation.inverseEntityMetadata, Array.isArray(value) ? value : [value]);\n });\n }\n\n if (metadata.afterLoadListeners.length) {\n metadata.afterLoadListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterLoad) {\n const executionResult = subscriber.afterLoad!(entity, {\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n });\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Checks if subscriber's methods can be executed by checking if its don't listen to the particular entity,\n * or listens our entity.\n */\n protected isAllowedSubscriber(subscriber: EntitySubscriberInterface<any>, target: Function|string): boolean {\n return !subscriber.listenTo ||\n !subscriber.listenTo() ||\n subscriber.listenTo() === Object ||\n subscriber.listenTo() === target ||\n subscriber.listenTo().isPrototypeOf(target);\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/subscriber/Broadcaster.ts"],"names":[],"mappings":"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","file":"Broadcaster.js","sourcesContent":["import {EntitySubscriberInterface} from \"./EntitySubscriberInterface\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {EntityMetadata} from \"../metadata/EntityMetadata\";\nimport {BroadcasterResult} from \"./BroadcasterResult\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {RelationMetadata} from \"../metadata/RelationMetadata\";\n\ninterface BroadcasterEvents {\n \"BeforeTransactionCommit\": () => void;\n \"AfterTransactionCommit\": () => void;\n \"BeforeTransactionStart\": () => void;\n \"AfterTransactionStart\": () => void;\n \"BeforeTransactionRollback\": () => void;\n \"AfterTransactionRollback\": () => void;\n\n \"BeforeUpdate\": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]) => void;\n \"AfterUpdate\": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]) => void;\n\n \"BeforeInsert\": (metadata: EntityMetadata, entity: ObjectLiteral | undefined) => void;\n \"AfterInsert\": (metadata: EntityMetadata, entity: ObjectLiteral | undefined) => void;\n\n \"BeforeRemove\": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral) => void;\n \"AfterRemove\": (metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral) => void;\n\n \"Load\": (metadata: EntityMetadata, entities: ObjectLiteral[]) => void;\n}\n\n\n/**\n * Broadcaster provides a helper methods to broadcast events to the subscribers.\n */\nexport class Broadcaster {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n async broadcast<U extends keyof BroadcasterEvents>(event: U, ...args: Parameters<BroadcasterEvents[U]>): Promise<void> {\n const result = new BroadcasterResult();\n\n const broadcastFunction = this[`broadcast${event}Event` as keyof this];\n\n if (typeof broadcastFunction === \"function\") {\n (broadcastFunction as any).call(\n this,\n result,\n ...args\n );\n }\n\n await result.wait();\n }\n\n /**\n * Broadcasts \"BEFORE_INSERT\" event.\n * Before insert event is executed before entity is being inserted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeInsertEvent(result: BroadcasterResult, metadata: EntityMetadata, entity: undefined | ObjectLiteral): void {\n\n if (entity && metadata.beforeInsertListeners.length) {\n metadata.beforeInsertListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeInsert) {\n const executionResult = subscriber.beforeInsert({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_UPDATE\" event.\n * Before update event is executed before entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeUpdateEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]): void { // todo: send relations too?\n if (entity && metadata.beforeUpdateListeners.length) {\n metadata.beforeUpdateListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeUpdate) {\n const executionResult = subscriber.beforeUpdate({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || []\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_REMOVE\" event.\n * Before remove event is executed before entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeRemoveEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral): void {\n if (entity && metadata.beforeRemoveListeners.length) {\n metadata.beforeRemoveListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeRemove) {\n const executionResult = subscriber.beforeRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(databaseEntity)\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_INSERT\" event.\n * After insert event is executed after entity is being persisted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterInsertEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral): void {\n\n if (entity && metadata.afterInsertListeners.length) {\n metadata.afterInsertListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterInsert) {\n const executionResult = subscriber.afterInsert({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_START\" event.\n */\n broadcastBeforeTransactionStartEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.beforeTransactionStart) {\n const executionResult = subscriber.beforeTransactionStart({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_START\" event.\n */\n broadcastAfterTransactionStartEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.afterTransactionStart) {\n const executionResult = subscriber.afterTransactionStart({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_COMMIT\" event.\n */\n broadcastBeforeTransactionCommitEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.beforeTransactionCommit) {\n const executionResult = subscriber.beforeTransactionCommit({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_COMMIT\" event.\n */\n broadcastAfterTransactionCommitEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.afterTransactionCommit) {\n const executionResult = subscriber.afterTransactionCommit({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_ROLLBACK\" event.\n */\n broadcastBeforeTransactionRollbackEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.beforeTransactionRollback) {\n const executionResult = subscriber.beforeTransactionRollback({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_ROLLBACK\" event.\n */\n broadcastAfterTransactionRollbackEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (subscriber.afterTransactionRollback) {\n const executionResult = subscriber.afterTransactionRollback({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_UPDATE\" event.\n * After update event is executed after entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterUpdateEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral, updatedColumns?: ColumnMetadata[], updatedRelations?: RelationMetadata[]): void {\n\n if (entity && metadata.afterUpdateListeners.length) {\n metadata.afterUpdateListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterUpdate) {\n const executionResult = subscriber.afterUpdate({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || []\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * Broadcasts \"AFTER_REMOVE\" event.\n * After remove event is executed after entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterRemoveEvent(result: BroadcasterResult, metadata: EntityMetadata, entity?: ObjectLiteral, databaseEntity?: ObjectLiteral): void {\n\n if (entity && metadata.afterRemoveListeners.length) {\n metadata.afterRemoveListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterRemove) {\n const executionResult = subscriber.afterRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(databaseEntity)\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n }\n\n /**\n * @deprecated Use `broadcastLoadForAllEvent`\n */\n broadcastLoadEventsForAll(result: BroadcasterResult, metadata: EntityMetadata, entities: ObjectLiteral[]): void {\n return this.broadcastLoadEvent(result, metadata, entities);\n }\n\n /**\n * Broadcasts \"AFTER_LOAD\" event for all given entities, and their sub-entities.\n * After load event is executed after entity has been loaded from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastLoadEvent(result: BroadcasterResult, metadata: EntityMetadata, entities: ObjectLiteral[]): void {\n entities.forEach(entity => {\n if (entity instanceof Promise) // todo: check why need this?\n return;\n\n // collect load events for all children entities that were loaded with the main entity\n if (metadata.relations.length) {\n metadata.relations.forEach(relation => {\n\n // in lazy relations we cannot simply access to entity property because it will cause a getter and a database query\n if (relation.isLazy && !entity.hasOwnProperty(relation.propertyName))\n return;\n\n const value = relation.getEntityValue(entity);\n if (value instanceof Object)\n this.broadcastLoadEvent(result, relation.inverseEntityMetadata, Array.isArray(value) ? value : [value]);\n });\n }\n\n if (metadata.afterLoadListeners.length) {\n metadata.afterLoadListeners.forEach(listener => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(subscriber => {\n if (this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterLoad) {\n const executionResult = subscriber.afterLoad!(entity, {\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n });\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Checks if subscriber's methods can be executed by checking if its don't listen to the particular entity,\n * or listens our entity.\n */\n protected isAllowedSubscriber(subscriber: EntitySubscriberInterface<any>, target: Function|string): boolean {\n return !subscriber.listenTo ||\n !subscriber.listenTo() ||\n subscriber.listenTo() === Object ||\n subscriber.listenTo() === target ||\n subscriber.listenTo().isPrototypeOf(target);\n }\n\n}\n"],"sourceRoot":".."}
@@ -10,4 +10,8 @@ export declare class BroadcasterResult {
10
10
  * Promises returned by listeners and subscribers which needs to be awaited.
11
11
  */
12
12
  promises: Promise<any>[];
13
+ /**
14
+ * Wait for all promises to settle
15
+ */
16
+ wait(): Promise<BroadcasterResult>;
13
17
  }
@@ -1,3 +1,4 @@
1
+ import { __awaiter, __generator } from "tslib";
1
2
  /**
2
3
  * Broadcaster execution result - promises executed by operations and number of executed listeners and subscribers.
3
4
  */
@@ -12,6 +13,24 @@ var BroadcasterResult = /** @class */ (function () {
12
13
  */
13
14
  this.promises = [];
14
15
  }
16
+ /**
17
+ * Wait for all promises to settle
18
+ */
19
+ BroadcasterResult.prototype.wait = function () {
20
+ return __awaiter(this, void 0, void 0, function () {
21
+ return __generator(this, function (_a) {
22
+ switch (_a.label) {
23
+ case 0:
24
+ if (!(this.promises.length > 0)) return [3 /*break*/, 2];
25
+ return [4 /*yield*/, Promise.all(this.promises)];
26
+ case 1:
27
+ _a.sent();
28
+ _a.label = 2;
29
+ case 2: return [2 /*return*/, this];
30
+ }
31
+ });
32
+ });
33
+ };
15
34
  return BroadcasterResult;
16
35
  }());
17
36
  export { BroadcasterResult };