typeorm 0.2.38 → 0.2.39-dev.2c861af

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 (677) 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/entity-view/ViewEntity.js +1 -0
  9. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  10. package/browser/decorator/options/ViewEntityOptions.d.ts +5 -0
  11. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  12. package/browser/decorator/transaction/Transaction.js +3 -3
  13. package/browser/decorator/transaction/Transaction.js.map +1 -1
  14. package/browser/driver/DriverUtils.js +1 -1
  15. package/browser/driver/DriverUtils.js.map +1 -1
  16. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  17. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  18. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +6 -5
  19. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  20. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +19 -48
  21. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  22. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  23. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  24. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +2 -1
  25. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  26. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +17 -46
  27. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  28. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  29. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  30. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -3
  31. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  32. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  33. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  34. package/browser/driver/cockroachdb/CockroachDriver.js +5 -4
  35. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  36. package/browser/driver/cockroachdb/CockroachQueryRunner.js +46 -77
  37. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  38. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  39. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  40. package/browser/driver/cordova/CordovaDriver.js +2 -1
  41. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  42. package/browser/driver/expo/ExpoQueryRunner.js +12 -43
  43. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  44. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  45. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  46. package/browser/driver/mongodb/MongoDriver.js +2 -1
  47. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  48. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  49. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  50. package/browser/driver/mysql/MysqlDriver.js +4 -2
  51. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  52. package/browser/driver/mysql/MysqlQueryRunner.js +24 -54
  53. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  54. package/browser/driver/nativescript/NativescriptQueryRunner.js +45 -37
  55. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  56. package/browser/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  57. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  58. package/browser/driver/oracle/OracleDriver.js +5 -4
  59. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  60. package/browser/driver/oracle/OracleQueryRunner.js +20 -48
  61. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  62. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  63. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  64. package/browser/driver/postgres/PostgresDriver.js +6 -5
  65. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  66. package/browser/driver/postgres/PostgresQueryRunner.js +21 -51
  67. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  68. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  69. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  70. package/browser/driver/react-native/ReactNativeDriver.js +2 -1
  71. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  72. package/browser/driver/sap/SapConnectionOptions.d.ts +16 -6
  73. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  74. package/browser/driver/sap/SapDriver.js +6 -3
  75. package/browser/driver/sap/SapDriver.js.map +1 -1
  76. package/browser/driver/sap/SapQueryRunner.js +20 -50
  77. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  78. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  79. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  80. package/browser/driver/sqlite/SqliteDriver.js +4 -3
  81. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  82. package/browser/driver/sqlite/SqliteQueryRunner.js +16 -8
  83. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  84. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +19 -49
  85. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  86. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  87. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  88. package/browser/driver/sqljs/SqljsDriver.js +4 -2
  89. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  90. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  91. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  92. package/browser/driver/sqlserver/SqlServerDriver.js +7 -6
  93. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  94. package/browser/driver/sqlserver/SqlServerQueryRunner.js +84 -116
  95. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  96. package/browser/entity-manager/MongoEntityManager.js +8 -13
  97. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  98. package/browser/find-options/FindOptionsUtils.js +1 -1
  99. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  100. package/browser/metadata/ColumnMetadata.js +4 -4
  101. package/browser/metadata/ColumnMetadata.js.map +1 -1
  102. package/browser/metadata/EmbeddedMetadata.js +1 -1
  103. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  104. package/browser/metadata/EntityMetadata.d.ts +5 -0
  105. package/browser/metadata/EntityMetadata.js +2 -1
  106. package/browser/metadata/EntityMetadata.js.map +1 -1
  107. package/browser/metadata/RelationMetadata.js +4 -4
  108. package/browser/metadata/RelationMetadata.js.map +1 -1
  109. package/browser/metadata-args/TableMetadataArgs.d.ts +4 -0
  110. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  111. package/browser/metadata-builder/EntityMetadataBuilder.js +5 -5
  112. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  113. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  114. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  115. package/browser/naming-strategy/DefaultNamingStrategy.js +5 -5
  116. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  117. package/browser/persistence/Subject.js +1 -1
  118. package/browser/persistence/Subject.js.map +1 -1
  119. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  120. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  121. package/browser/persistence/SubjectExecutor.js +1 -1
  122. package/browser/persistence/SubjectExecutor.js.map +1 -1
  123. package/browser/persistence/SubjectTopoligicalSorter.js +5 -5
  124. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  125. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  126. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  127. package/browser/query-builder/DeleteQueryBuilder.js +3 -10
  128. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  129. package/browser/query-builder/InsertQueryBuilder.js +4 -6
  130. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  131. package/browser/query-builder/QueryBuilder.js +9 -9
  132. package/browser/query-builder/QueryBuilder.js.map +1 -1
  133. package/browser/query-builder/RelationLoader.js +2 -2
  134. package/browser/query-builder/RelationLoader.js.map +1 -1
  135. package/browser/query-builder/RelationRemover.js +6 -6
  136. package/browser/query-builder/RelationRemover.js.map +1 -1
  137. package/browser/query-builder/SelectQueryBuilder.js +14 -14
  138. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  139. package/browser/query-builder/SoftDeleteQueryBuilder.js +3 -10
  140. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  141. package/browser/query-builder/UpdateQueryBuilder.js +5 -12
  142. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  143. package/browser/query-builder/relation-id/RelationIdLoader.js +1 -1
  144. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  145. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  146. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  147. package/browser/query-runner/BaseQueryRunner.js +2 -2
  148. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  149. package/browser/query-runner/QueryLock.js +1 -1
  150. package/browser/query-runner/QueryLock.js.map +1 -1
  151. package/browser/repository/BaseEntity.js +1 -1
  152. package/browser/repository/BaseEntity.js.map +1 -1
  153. package/browser/repository/Repository.js +1 -1
  154. package/browser/repository/Repository.js.map +1 -1
  155. package/browser/repository/TreeRepository.js +2 -2
  156. package/browser/repository/TreeRepository.js.map +1 -1
  157. package/browser/schema-builder/RdbmsSchemaBuilder.js +223 -148
  158. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  159. package/browser/schema-builder/table/TableCheck.js +1 -1
  160. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  161. package/browser/schema-builder/table/TableForeignKey.js +2 -2
  162. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  163. package/browser/schema-builder/table/TableIndex.js +1 -1
  164. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  165. package/browser/schema-builder/table/TableUnique.js +1 -1
  166. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  167. package/browser/schema-builder/util/ViewUtils.d.ts +7 -0
  168. package/browser/schema-builder/util/ViewUtils.js +25 -0
  169. package/browser/schema-builder/util/ViewUtils.js.map +1 -0
  170. package/browser/subscriber/Broadcaster.d.ts +23 -2
  171. package/browser/subscriber/Broadcaster.js +35 -2
  172. package/browser/subscriber/Broadcaster.js.map +1 -1
  173. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  174. package/browser/subscriber/BroadcasterResult.js +19 -0
  175. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  176. package/cache/DbQueryResultCache.js +12 -12
  177. package/cache/RedisQueryResultCache.js +12 -12
  178. package/cli.js +1 -6
  179. package/cli.js.map +1 -1
  180. package/commands/CacheClearCommand.js +4 -4
  181. package/commands/CacheClearCommand.js.map +1 -1
  182. package/commands/CommandUtils.js +10 -10
  183. package/commands/CommandUtils.js.map +1 -1
  184. package/commands/EntityCreateCommand.js +3 -3
  185. package/commands/EntityCreateCommand.js.map +1 -1
  186. package/commands/InitCommand.js +5 -5
  187. package/commands/InitCommand.js.map +1 -1
  188. package/commands/MigrationCreateCommand.js +5 -5
  189. package/commands/MigrationCreateCommand.js.map +1 -1
  190. package/commands/MigrationGenerateCommand.js +7 -7
  191. package/commands/MigrationGenerateCommand.js.map +1 -1
  192. package/commands/MigrationRevertCommand.js +4 -4
  193. package/commands/MigrationRevertCommand.js.map +1 -1
  194. package/commands/MigrationRunCommand.js +5 -5
  195. package/commands/MigrationRunCommand.js.map +1 -1
  196. package/commands/MigrationShowCommand.js +5 -5
  197. package/commands/MigrationShowCommand.js.map +1 -1
  198. package/commands/QueryCommand.js +4 -4
  199. package/commands/QueryCommand.js.map +1 -1
  200. package/commands/SchemaDropCommand.js +4 -4
  201. package/commands/SchemaDropCommand.js.map +1 -1
  202. package/commands/SchemaLogCommand.js +5 -5
  203. package/commands/SchemaLogCommand.js.map +1 -1
  204. package/commands/SchemaSyncCommand.js +4 -4
  205. package/commands/SchemaSyncCommand.js.map +1 -1
  206. package/commands/SubscriberCreateCommand.js +3 -3
  207. package/commands/SubscriberCreateCommand.js.map +1 -1
  208. package/commands/VersionCommand.js +3 -3
  209. package/commands/VersionCommand.js.map +1 -1
  210. package/connection/Connection.js +19 -19
  211. package/connection/Connection.js.map +1 -1
  212. package/connection/ConnectionMetadataBuilder.js +11 -11
  213. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  214. package/connection/ConnectionOptionsReader.js +11 -10
  215. package/connection/ConnectionOptionsReader.js.map +1 -1
  216. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -2
  217. package/connection/options-reader/ConnectionOptionsXmlReader.js +3 -3
  218. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  219. package/connection/options-reader/ConnectionOptionsYmlReader.js +4 -4
  220. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  221. package/decorator/Check.js +1 -1
  222. package/decorator/Check.js.map +1 -1
  223. package/decorator/EntityRepository.js +1 -1
  224. package/decorator/EntityRepository.js.map +1 -1
  225. package/decorator/Exclusion.js +1 -1
  226. package/decorator/Exclusion.js.map +1 -1
  227. package/decorator/Generated.js +1 -1
  228. package/decorator/Generated.js.map +1 -1
  229. package/decorator/Index.js +1 -1
  230. package/decorator/Index.js.map +1 -1
  231. package/decorator/Unique.js +1 -1
  232. package/decorator/Unique.js.map +1 -1
  233. package/decorator/columns/Column.js +4 -4
  234. package/decorator/columns/Column.js.map +1 -1
  235. package/decorator/columns/CreateDateColumn.js +1 -1
  236. package/decorator/columns/CreateDateColumn.js.map +1 -1
  237. package/decorator/columns/DeleteDateColumn.js +1 -1
  238. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  239. package/decorator/columns/ObjectIdColumn.js +1 -1
  240. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  241. package/decorator/columns/PrimaryColumn.js +2 -2
  242. package/decorator/columns/PrimaryColumn.js.map +1 -1
  243. package/decorator/columns/PrimaryGeneratedColumn.js +2 -2
  244. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  245. package/decorator/columns/UpdateDateColumn.js +1 -1
  246. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  247. package/decorator/columns/VersionColumn.js +1 -1
  248. package/decorator/columns/VersionColumn.js.map +1 -1
  249. package/decorator/columns/ViewColumn.js +1 -1
  250. package/decorator/columns/ViewColumn.js.map +1 -1
  251. package/decorator/entity/ChildEntity.js +2 -2
  252. package/decorator/entity/ChildEntity.js.map +1 -1
  253. package/decorator/entity/Entity.js +1 -1
  254. package/decorator/entity/Entity.js.map +1 -1
  255. package/decorator/entity/TableInheritance.js +1 -1
  256. package/decorator/entity/TableInheritance.js.map +1 -1
  257. package/decorator/entity-view/ViewEntity.js +2 -1
  258. package/decorator/entity-view/ViewEntity.js.map +1 -1
  259. package/decorator/listeners/AfterInsert.js +1 -1
  260. package/decorator/listeners/AfterInsert.js.map +1 -1
  261. package/decorator/listeners/AfterLoad.js +1 -1
  262. package/decorator/listeners/AfterLoad.js.map +1 -1
  263. package/decorator/listeners/AfterRemove.js +1 -1
  264. package/decorator/listeners/AfterRemove.js.map +1 -1
  265. package/decorator/listeners/AfterUpdate.js +1 -1
  266. package/decorator/listeners/AfterUpdate.js.map +1 -1
  267. package/decorator/listeners/BeforeInsert.js +1 -1
  268. package/decorator/listeners/BeforeInsert.js.map +1 -1
  269. package/decorator/listeners/BeforeRemove.js +1 -1
  270. package/decorator/listeners/BeforeRemove.js.map +1 -1
  271. package/decorator/listeners/BeforeUpdate.js +1 -1
  272. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  273. package/decorator/listeners/EventSubscriber.js +1 -1
  274. package/decorator/listeners/EventSubscriber.js.map +1 -1
  275. package/decorator/options/ViewEntityOptions.d.ts +5 -0
  276. package/decorator/options/ViewEntityOptions.js.map +1 -1
  277. package/decorator/relations/JoinColumn.js +1 -1
  278. package/decorator/relations/JoinColumn.js.map +1 -1
  279. package/decorator/relations/JoinTable.js +1 -1
  280. package/decorator/relations/JoinTable.js.map +1 -1
  281. package/decorator/relations/ManyToMany.js +1 -1
  282. package/decorator/relations/ManyToMany.js.map +1 -1
  283. package/decorator/relations/ManyToOne.js +1 -1
  284. package/decorator/relations/ManyToOne.js.map +1 -1
  285. package/decorator/relations/OneToMany.js +1 -1
  286. package/decorator/relations/OneToMany.js.map +1 -1
  287. package/decorator/relations/OneToOne.js +1 -1
  288. package/decorator/relations/OneToOne.js.map +1 -1
  289. package/decorator/relations/RelationCount.js +1 -1
  290. package/decorator/relations/RelationCount.js.map +1 -1
  291. package/decorator/relations/RelationId.js +1 -1
  292. package/decorator/relations/RelationId.js.map +1 -1
  293. package/decorator/transaction/Transaction.js +7 -7
  294. package/decorator/transaction/Transaction.js.map +1 -1
  295. package/decorator/transaction/TransactionManager.js +1 -1
  296. package/decorator/transaction/TransactionManager.js.map +1 -1
  297. package/decorator/transaction/TransactionRepository.js +1 -1
  298. package/decorator/transaction/TransactionRepository.js.map +1 -1
  299. package/decorator/tree/Tree.js +1 -1
  300. package/decorator/tree/Tree.js.map +1 -1
  301. package/decorator/tree/TreeChildren.js +1 -1
  302. package/decorator/tree/TreeChildren.js.map +1 -1
  303. package/decorator/tree/TreeLevelColumn.js +1 -1
  304. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  305. package/decorator/tree/TreeParent.js +1 -1
  306. package/decorator/tree/TreeParent.js.map +1 -1
  307. package/driver/DriverUtils.js +9 -9
  308. package/driver/DriverUtils.js.map +1 -1
  309. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -1
  310. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  311. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  312. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  313. package/driver/aurora-data-api/AuroraDataApiDriver.js +12 -11
  314. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  315. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +146 -175
  316. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  317. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  318. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  319. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +10 -9
  320. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  321. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +29 -58
  322. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  323. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  324. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  325. package/driver/better-sqlite3/BetterSqlite3Driver.js +12 -11
  326. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  327. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +5 -5
  328. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  329. package/driver/capacitor/CapacitorDriver.js +7 -7
  330. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  331. package/driver/capacitor/CapacitorQueryRunner.js +5 -5
  332. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  333. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  334. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  335. package/driver/cockroachdb/CockroachDriver.js +15 -14
  336. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  337. package/driver/cockroachdb/CockroachQueryRunner.js +180 -211
  338. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  339. package/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  340. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  341. package/driver/cordova/CordovaDriver.js +5 -4
  342. package/driver/cordova/CordovaDriver.js.map +1 -1
  343. package/driver/cordova/CordovaQueryRunner.js +13 -13
  344. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  345. package/driver/expo/ExpoDriver.js +3 -3
  346. package/driver/expo/ExpoDriver.js.map +1 -1
  347. package/driver/expo/ExpoQueryRunner.js +23 -54
  348. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  349. package/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  350. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  351. package/driver/mongodb/MongoDriver.js +4 -3
  352. package/driver/mongodb/MongoDriver.js.map +1 -1
  353. package/driver/mongodb/MongoQueryRunner.js +178 -178
  354. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  355. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  356. package/driver/mysql/MysqlDriver.js +9 -7
  357. package/driver/mysql/MysqlDriver.js.map +1 -1
  358. package/driver/mysql/MysqlQueryRunner.js +152 -182
  359. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  360. package/driver/nativescript/NativescriptDriver.js +3 -3
  361. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  362. package/driver/nativescript/NativescriptQueryRunner.js +48 -40
  363. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  364. package/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  365. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  366. package/driver/oracle/OracleDriver.js +13 -12
  367. package/driver/oracle/OracleDriver.js.map +1 -1
  368. package/driver/oracle/OracleQueryRunner.js +143 -171
  369. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  370. package/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  371. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  372. package/driver/postgres/PostgresDriver.js +24 -23
  373. package/driver/postgres/PostgresDriver.js.map +1 -1
  374. package/driver/postgres/PostgresQueryRunner.js +169 -199
  375. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  376. package/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  377. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  378. package/driver/react-native/ReactNativeDriver.js +5 -4
  379. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  380. package/driver/react-native/ReactNativeQueryRunner.js +3 -3
  381. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  382. package/driver/sap/SapConnectionOptions.d.ts +16 -6
  383. package/driver/sap/SapConnectionOptions.js.map +1 -1
  384. package/driver/sap/SapDriver.js +11 -8
  385. package/driver/sap/SapDriver.js.map +1 -1
  386. package/driver/sap/SapQueryRunner.js +153 -183
  387. package/driver/sap/SapQueryRunner.js.map +1 -1
  388. package/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  389. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  390. package/driver/sqlite/SqliteDriver.js +12 -11
  391. package/driver/sqlite/SqliteDriver.js.map +1 -1
  392. package/driver/sqlite/SqliteQueryRunner.js +21 -13
  393. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  394. package/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -4
  395. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +138 -168
  396. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  397. package/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  398. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  399. package/driver/sqljs/SqljsDriver.js +17 -15
  400. package/driver/sqljs/SqljsDriver.js.map +1 -1
  401. package/driver/sqljs/SqljsQueryRunner.js +9 -9
  402. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  403. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  404. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  405. package/driver/sqlserver/SqlServerDriver.js +13 -12
  406. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  407. package/driver/sqlserver/SqlServerQueryRunner.js +220 -252
  408. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  409. package/entity-manager/EntityManager.js +30 -30
  410. package/entity-manager/EntityManager.js.map +1 -1
  411. package/entity-manager/MongoEntityManager.js +23 -28
  412. package/entity-manager/MongoEntityManager.js.map +1 -1
  413. package/entity-manager/SqljsEntityManager.js +5 -5
  414. package/entity-manager/SqljsEntityManager.js.map +1 -1
  415. package/entity-schema/EntitySchemaTransformer.js +1 -1
  416. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  417. package/error/AlreadyHasActiveConnectionError.js +1 -1
  418. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  419. package/error/CannotAttachTreeChildrenEntityError.js +1 -1
  420. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  421. package/error/CannotConnectAlreadyConnectedError.js +1 -1
  422. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  423. package/error/CannotCreateEntityIdMapError.js +1 -1
  424. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  425. package/error/CannotDetermineEntityError.js +1 -1
  426. package/error/CannotDetermineEntityError.js.map +1 -1
  427. package/error/CannotExecuteNotConnectedError.js +1 -1
  428. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  429. package/error/CannotGetEntityManagerNotConnectedError.js +1 -1
  430. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  431. package/error/CannotReflectMethodParameterTypeError.js +1 -1
  432. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  433. package/error/CircularRelationsError.js +1 -1
  434. package/error/CircularRelationsError.js.map +1 -1
  435. package/error/ColumnTypeUndefinedError.js +1 -1
  436. package/error/ColumnTypeUndefinedError.js.map +1 -1
  437. package/error/ConnectionIsNotSetError.js +1 -1
  438. package/error/ConnectionIsNotSetError.js.map +1 -1
  439. package/error/ConnectionNotFoundError.js +1 -1
  440. package/error/ConnectionNotFoundError.js.map +1 -1
  441. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
  442. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  443. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
  444. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  445. package/error/CustomRepositoryNotFoundError.js +1 -1
  446. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  447. package/error/DataTypeNotSupportedError.js +1 -1
  448. package/error/DataTypeNotSupportedError.js.map +1 -1
  449. package/error/DriverOptionNotSetError.js +1 -1
  450. package/error/DriverOptionNotSetError.js.map +1 -1
  451. package/error/DriverPackageNotInstalledError.js +1 -1
  452. package/error/DriverPackageNotInstalledError.js.map +1 -1
  453. package/error/EntityColumnNotFound.js +1 -1
  454. package/error/EntityColumnNotFound.js.map +1 -1
  455. package/error/EntityMetadataNotFoundError.js +1 -1
  456. package/error/EntityMetadataNotFoundError.js.map +1 -1
  457. package/error/EntityNotFoundError.js +1 -1
  458. package/error/EntityNotFoundError.js.map +1 -1
  459. package/error/FindRelationsNotFoundError.js +1 -1
  460. package/error/FindRelationsNotFoundError.js.map +1 -1
  461. package/error/InitializedRelationError.js +1 -1
  462. package/error/InitializedRelationError.js.map +1 -1
  463. package/error/InsertValuesMissingError.js +1 -1
  464. package/error/InsertValuesMissingError.js.map +1 -1
  465. package/error/LimitOnUpdateNotSupportedError.js +1 -1
  466. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  467. package/error/LockNotSupportedOnGivenDriverError.js +1 -1
  468. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  469. package/error/MetadataAlreadyExistsError.js +1 -1
  470. package/error/MetadataAlreadyExistsError.js.map +1 -1
  471. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -1
  472. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  473. package/error/MissingDeleteDateColumnError.js +1 -1
  474. package/error/MissingDeleteDateColumnError.js.map +1 -1
  475. package/error/MissingDriverError.js +1 -1
  476. package/error/MissingDriverError.js.map +1 -1
  477. package/error/MissingJoinColumnError.js +1 -1
  478. package/error/MissingJoinColumnError.js.map +1 -1
  479. package/error/MissingJoinTableError.js +1 -1
  480. package/error/MissingJoinTableError.js.map +1 -1
  481. package/error/MissingPrimaryColumnError.js +1 -1
  482. package/error/MissingPrimaryColumnError.js.map +1 -1
  483. package/error/MustBeEntityError.js +1 -1
  484. package/error/MustBeEntityError.js.map +1 -1
  485. package/error/NamingStrategyNotFoundError.js +1 -1
  486. package/error/NamingStrategyNotFoundError.js.map +1 -1
  487. package/error/NestedSetMultipleRootError.js +1 -1
  488. package/error/NestedSetMultipleRootError.js.map +1 -1
  489. package/error/NoConnectionForRepositoryError.js +1 -1
  490. package/error/NoConnectionForRepositoryError.js.map +1 -1
  491. package/error/NoConnectionOptionError.js +1 -1
  492. package/error/NoConnectionOptionError.js.map +1 -1
  493. package/error/NoNeedToReleaseEntityManagerError.js +1 -1
  494. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  495. package/error/NoVersionOrUpdateDateColumnError.js +1 -1
  496. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  497. package/error/OffsetWithoutLimitNotSupportedError.js +1 -1
  498. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  499. package/error/OptimisticLockCanNotBeUsedError.js +1 -1
  500. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  501. package/error/OptimisticLockVersionMismatchError.js +1 -1
  502. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  503. package/error/PersistedEntityNotFoundError.js +1 -1
  504. package/error/PersistedEntityNotFoundError.js.map +1 -1
  505. package/error/PessimisticLockTransactionRequiredError.js +1 -1
  506. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  507. package/error/PrimaryColumnCannotBeNullableError.js +1 -1
  508. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  509. package/error/QueryFailedError.js +3 -3
  510. package/error/QueryFailedError.js.map +1 -1
  511. package/error/QueryRunnerAlreadyReleasedError.js +1 -1
  512. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  513. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -1
  514. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  515. package/error/RepositoryNotFoundError.js +1 -1
  516. package/error/RepositoryNotFoundError.js.map +1 -1
  517. package/error/RepositoryNotTreeError.js +1 -1
  518. package/error/RepositoryNotTreeError.js.map +1 -1
  519. package/error/ReturningStatementNotSupportedError.js +1 -1
  520. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  521. package/error/SubjectRemovedAndUpdatedError.js +1 -1
  522. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  523. package/error/SubjectWithoutIdentifierError.js +1 -1
  524. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  525. package/error/TransactionAlreadyStartedError.js +1 -1
  526. package/error/TransactionAlreadyStartedError.js.map +1 -1
  527. package/error/TransactionNotStartedError.js +1 -1
  528. package/error/TransactionNotStartedError.js.map +1 -1
  529. package/error/TreeRepositoryNotSupportedError.js +1 -1
  530. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  531. package/error/TypeORMError.js +1 -1
  532. package/error/TypeORMError.js.map +1 -1
  533. package/error/UpdateValuesMissingError.js +1 -1
  534. package/error/UpdateValuesMissingError.js.map +1 -1
  535. package/error/UsingJoinColumnIsNotAllowedError.js +1 -1
  536. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  537. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
  538. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  539. package/error/UsingJoinTableIsNotAllowedError.js +1 -1
  540. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  541. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
  542. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  543. package/error/index.js +62 -62
  544. package/error/index.js.map +1 -1
  545. package/find-options/FindOptionsUtils.js +4 -4
  546. package/find-options/FindOptionsUtils.js.map +1 -1
  547. package/globals.js +7 -7
  548. package/globals.js.map +1 -1
  549. package/index.js +102 -102
  550. package/index.js.map +1 -1
  551. package/logger/DebugLogger.js +9 -9
  552. package/logger/DebugLogger.js.map +1 -1
  553. package/logger/FileLogger.js +1 -1
  554. package/logger/FileLogger.js.map +1 -1
  555. package/metadata/ColumnMetadata.js +4 -4
  556. package/metadata/ColumnMetadata.js.map +1 -1
  557. package/metadata/EmbeddedMetadata.js +1 -1
  558. package/metadata/EmbeddedMetadata.js.map +1 -1
  559. package/metadata/EntityMetadata.d.ts +5 -0
  560. package/metadata/EntityMetadata.js +3 -2
  561. package/metadata/EntityMetadata.js.map +1 -1
  562. package/metadata/RelationMetadata.js +4 -4
  563. package/metadata/RelationMetadata.js.map +1 -1
  564. package/metadata-args/TableMetadataArgs.d.ts +4 -0
  565. package/metadata-args/TableMetadataArgs.js.map +1 -1
  566. package/metadata-builder/EntityMetadataBuilder.js +5 -5
  567. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  568. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  569. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  570. package/migration/MigrationExecutor.js +33 -33
  571. package/migration/MigrationExecutor.js.map +1 -1
  572. package/naming-strategy/DefaultNamingStrategy.js +10 -10
  573. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  574. package/package.json +1 -239
  575. package/persistence/EntityPersistExecutor.js +5 -5
  576. package/persistence/EntityPersistExecutor.js.map +1 -1
  577. package/persistence/Subject.js +1 -1
  578. package/persistence/Subject.js.map +1 -1
  579. package/persistence/SubjectDatabaseEntityLoader.js +6 -6
  580. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  581. package/persistence/SubjectExecutor.js +31 -31
  582. package/persistence/SubjectExecutor.js.map +1 -1
  583. package/persistence/SubjectTopoligicalSorter.js +5 -5
  584. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  585. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
  586. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  587. package/persistence/tree/ClosureSubjectExecutor.js +13 -13
  588. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  589. package/persistence/tree/MaterializedPathSubjectExecutor.js +5 -5
  590. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  591. package/persistence/tree/NestedSetSubjectExecutor.js +14 -14
  592. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  593. package/platform/PlatformTools.js +8 -8
  594. package/platform/PlatformTools.js.map +1 -1
  595. package/query-builder/DeleteQueryBuilder.js +7 -14
  596. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  597. package/query-builder/InsertQueryBuilder.js +9 -11
  598. package/query-builder/InsertQueryBuilder.js.map +1 -1
  599. package/query-builder/JoinAttribute.js +1 -1
  600. package/query-builder/JoinAttribute.js.map +1 -1
  601. package/query-builder/QueryBuilder.js +37 -37
  602. package/query-builder/QueryBuilder.js.map +1 -1
  603. package/query-builder/QueryBuilderUtils.js +1 -1
  604. package/query-builder/QueryBuilderUtils.js.map +1 -1
  605. package/query-builder/QueryExpressionMap.js +3 -3
  606. package/query-builder/QueryExpressionMap.js.map +1 -1
  607. package/query-builder/RelationLoader.js +2 -2
  608. package/query-builder/RelationLoader.js.map +1 -1
  609. package/query-builder/RelationQueryBuilder.js +13 -13
  610. package/query-builder/RelationQueryBuilder.js.map +1 -1
  611. package/query-builder/RelationRemover.js +12 -12
  612. package/query-builder/RelationRemover.js.map +1 -1
  613. package/query-builder/RelationUpdater.js +2 -2
  614. package/query-builder/ReturningResultsEntityUpdator.js +6 -6
  615. package/query-builder/SelectQueryBuilder.js +43 -43
  616. package/query-builder/SelectQueryBuilder.js.map +1 -1
  617. package/query-builder/SoftDeleteQueryBuilder.js +7 -14
  618. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  619. package/query-builder/UpdateQueryBuilder.js +10 -17
  620. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  621. package/query-builder/relation-count/RelationCountAttribute.js +2 -2
  622. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  623. package/query-builder/relation-count/RelationCountLoader.js +4 -4
  624. package/query-builder/relation-id/RelationIdAttribute.js +1 -1
  625. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  626. package/query-builder/relation-id/RelationIdLoader.js +5 -5
  627. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  628. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  629. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  630. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  631. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  632. package/query-runner/BaseQueryRunner.js +25 -25
  633. package/query-runner/BaseQueryRunner.js.map +1 -1
  634. package/query-runner/QueryLock.js +3 -3
  635. package/query-runner/QueryLock.js.map +1 -1
  636. package/repository/AbstractRepository.js +1 -1
  637. package/repository/AbstractRepository.js.map +1 -1
  638. package/repository/BaseEntity.js +4 -4
  639. package/repository/BaseEntity.js.map +1 -1
  640. package/repository/MongoRepository.js +1 -1
  641. package/repository/MongoRepository.js.map +1 -1
  642. package/repository/Repository.js +1 -1
  643. package/repository/Repository.js.map +1 -1
  644. package/repository/TreeRepository.js +7 -7
  645. package/repository/TreeRepository.js.map +1 -1
  646. package/schema-builder/MongoSchemaBuilder.js +2 -2
  647. package/schema-builder/RdbmsSchemaBuilder.js +311 -236
  648. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  649. package/schema-builder/table/Table.js +1 -1
  650. package/schema-builder/table/Table.js.map +1 -1
  651. package/schema-builder/table/TableCheck.js +1 -1
  652. package/schema-builder/table/TableCheck.js.map +1 -1
  653. package/schema-builder/table/TableForeignKey.js +2 -2
  654. package/schema-builder/table/TableForeignKey.js.map +1 -1
  655. package/schema-builder/table/TableIndex.js +1 -1
  656. package/schema-builder/table/TableIndex.js.map +1 -1
  657. package/schema-builder/table/TableUnique.js +1 -1
  658. package/schema-builder/table/TableUnique.js.map +1 -1
  659. package/schema-builder/util/ViewUtils.d.ts +7 -0
  660. package/schema-builder/util/ViewUtils.js +28 -0
  661. package/schema-builder/util/ViewUtils.js.map +1 -0
  662. package/subscriber/Broadcaster.d.ts +23 -2
  663. package/subscriber/Broadcaster.js +35 -2
  664. package/subscriber/Broadcaster.js.map +1 -1
  665. package/subscriber/BroadcasterResult.d.ts +4 -0
  666. package/subscriber/BroadcasterResult.js +19 -0
  667. package/subscriber/BroadcasterResult.js.map +1 -1
  668. package/util/DateUtils.js +1 -1
  669. package/util/DateUtils.js.map +1 -1
  670. package/util/DirectoryExportedClassesLoader.js +1 -1
  671. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  672. package/util/ObjectUtils.js +2 -2
  673. package/util/ObjectUtils.js.map +1 -1
  674. package/util/OrmUtils.js +2 -2
  675. package/util/OrmUtils.js.map +1 -1
  676. package/util/StringUtils.js +2 -2
  677. package/util/StringUtils.js.map +1 -1
@@ -11,6 +11,11 @@ export interface CordovaConnectionOptions extends BaseConnectionOptions {
11
11
  * Database name.
12
12
  */
13
13
  readonly database: string;
14
+ /**
15
+ * The driver object
16
+ * This defaults to `window.sqlitePlugin`
17
+ */
18
+ readonly driver?: any;
14
19
  /**
15
20
  * Storage Location
16
21
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/cordova/CordovaConnectionOptions.ts"],"names":[],"mappings":"","file":"CordovaConnectionOptions.js","sourcesContent":["import {BaseConnectionOptions} from \"../../connection/BaseConnectionOptions\";\n\n/**\n * Sqlite-specific connection options.\n */\nexport interface CordovaConnectionOptions extends BaseConnectionOptions {\n\n /**\n * Database type.\n */\n readonly type: \"cordova\";\n\n /**\n * Database name.\n */\n readonly database: string;\n\n /**\n * Storage Location\n */\n readonly location: string;\n}"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/cordova/CordovaConnectionOptions.ts"],"names":[],"mappings":"","file":"CordovaConnectionOptions.js","sourcesContent":["import {BaseConnectionOptions} from \"../../connection/BaseConnectionOptions\";\n\n/**\n * Sqlite-specific connection options.\n */\nexport interface CordovaConnectionOptions extends BaseConnectionOptions {\n\n /**\n * Database type.\n */\n readonly type: \"cordova\";\n\n /**\n * Database name.\n */\n readonly database: string;\n\n /**\n * The driver object\n * This defaults to `window.sqlitePlugin`\n */\n readonly driver?: any;\n\n /**\n * Storage Location\n */\n readonly location: string;\n}"],"sourceRoot":"../.."}
@@ -7,7 +7,7 @@ var CordovaQueryRunner_1 = require("./CordovaQueryRunner");
7
7
  var DriverOptionNotSetError_1 = require("../../error/DriverOptionNotSetError");
8
8
  var DriverPackageNotInstalledError_1 = require("../../error/DriverPackageNotInstalledError");
9
9
  var CordovaDriver = /** @class */ (function (_super) {
10
- tslib_1.__extends(CordovaDriver, _super);
10
+ (0, tslib_1.__extends)(CordovaDriver, _super);
11
11
  // -------------------------------------------------------------------------
12
12
  // Constructor
13
13
  // -------------------------------------------------------------------------
@@ -32,9 +32,9 @@ var CordovaDriver = /** @class */ (function (_super) {
32
32
  * Closes connection with database.
33
33
  */
34
34
  CordovaDriver.prototype.disconnect = function () {
35
- return tslib_1.__awaiter(this, void 0, void 0, function () {
35
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
36
36
  var _this = this;
37
- return tslib_1.__generator(this, function (_a) {
37
+ return (0, tslib_1.__generator)(this, function (_a) {
38
38
  return [2 /*return*/, new Promise(function (ok, fail) {
39
39
  _this.queryRunner = undefined;
40
40
  _this.databaseConnection.close(ok, fail);
@@ -82,7 +82,8 @@ var CordovaDriver = /** @class */ (function (_super) {
82
82
  */
83
83
  CordovaDriver.prototype.loadDependencies = function () {
84
84
  try {
85
- this.sqlite = window.sqlitePlugin;
85
+ var sqlite = this.options.driver || window.sqlitePlugin;
86
+ this.sqlite = sqlite;
86
87
  }
87
88
  catch (e) {
88
89
  throw new DriverPackageNotInstalledError_1.DriverPackageNotInstalledError("Cordova-SQLite", "cordova-sqlite-storage");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/cordova/CordovaDriver.ts"],"names":[],"mappings":";;;;AAAA,gFAA6E;AAE7E,2DAAwD;AAGxD,+EAA4E;AAC5E,6FAA0F;AAU1F;IAAmC,yCAAoB;IAGnD,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,uBAAY,UAAsB;QAAlC,YACI,kBAAM,UAAU,CAAC,SAepB;QAbG,gCAAgC;QAChC,iEAAiE;QACjE,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtC,kDAAkD;QAClD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,sBAAsB;QACtB,KAAI,CAAC,gBAAgB,EAAE,CAAC;;IAC5B,CAAC;IAGD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,kCAAU,GAAhB;;;;gBACI,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;wBAC9B,KAAI,CAAC,WAAW,GAAG,SAAS,CAAC;wBAC7B,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC5C,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACH,yCAAiB,GAAjB,UAAkB,IAAqB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,gDAAwB,GAAlC;QAAA,iBAqBC;QApBG,OAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;YAC9B,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC9B,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;aAClC,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAE7B,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAC,EAAO;gBACtC,IAAM,kBAAkB,GAAG,EAAE,CAAC;gBAE9B,yFAAyF;gBACzF,kEAAkE;gBAClE,kBAAkB,CAAC,UAAU,CAAC,2BAA2B,EAAE,EAAE,EAAE,UAAC,MAAW;oBACvE,EAAE,CAAC,kBAAkB,CAAC,CAAC;gBAC3B,CAAC,EAAE,UAAC,KAAU;oBACV,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACP,CAAC,EAAE,UAAC,KAAU;gBACV,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACO,wCAAgB,GAA1B;QACI,IAAI;YACA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;SAErC;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,+DAA8B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;SACxF;IACL,CAAC;IACL,oBAAC;AAAD,CA3FA,AA2FC,CA3FkC,2CAAoB,GA2FtD;AA3FY,sCAAa","file":"CordovaDriver.js","sourcesContent":["import {AbstractSqliteDriver} from \"../sqlite-abstract/AbstractSqliteDriver\";\nimport {CordovaConnectionOptions} from \"./CordovaConnectionOptions\";\nimport {CordovaQueryRunner} from \"./CordovaQueryRunner\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {Connection} from \"../../connection/Connection\";\nimport {DriverOptionNotSetError} from \"../../error/DriverOptionNotSetError\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\n\n// needed for typescript compiler\ninterface Window {\n sqlitePlugin: any;\n}\n\ndeclare var window: Window;\n\nexport class CordovaDriver extends AbstractSqliteDriver {\n options: CordovaConnectionOptions;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n\n // this.connection = connection;\n // this.options = connection.options as CordovaConnectionOptions;\n this.database = this.options.database;\n\n // validate options to make sure everything is set\n if (!this.options.database)\n throw new DriverOptionNotSetError(\"database\");\n\n if (!this.options.location)\n throw new DriverOptionNotSetError(\"location\");\n\n // load sqlite package\n this.loadDependencies();\n }\n\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Closes connection with database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.queryRunner = undefined;\n this.databaseConnection.close(ok, fail);\n });\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode): QueryRunner {\n if (!this.queryRunner)\n this.queryRunner = new CordovaQueryRunner(this);\n\n return this.queryRunner;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates connection with the database.\n */\n protected createDatabaseConnection() {\n return new Promise<void>((ok, fail) => {\n const options = Object.assign({}, {\n name: this.options.database,\n location: this.options.location,\n }, this.options.extra || {});\n\n this.sqlite.openDatabase(options, (db: any) => {\n const databaseConnection = db;\n\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete to work with sqlite.\n databaseConnection.executeSql(`PRAGMA foreign_keys = ON;`, [], (result: any) => {\n ok(databaseConnection);\n }, (error: any) => {\n fail(error);\n });\n }, (error: any) => {\n fail(error);\n });\n });\n }\n\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n protected loadDependencies(): void {\n try {\n this.sqlite = window.sqlitePlugin;\n\n } catch (e) {\n throw new DriverPackageNotInstalledError(\"Cordova-SQLite\", \"cordova-sqlite-storage\");\n }\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/cordova/CordovaDriver.ts"],"names":[],"mappings":";;;;AAAA,gFAA6E;AAE7E,2DAAwD;AAGxD,+EAA4E;AAC5E,6FAA0F;AAU1F;IAAmC,8CAAoB;IAGnD,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,uBAAY,UAAsB;QAAlC,YACI,kBAAM,UAAU,CAAC,SAepB;QAbG,gCAAgC;QAChC,iEAAiE;QACjE,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtC,kDAAkD;QAClD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,sBAAsB;QACtB,KAAI,CAAC,gBAAgB,EAAE,CAAC;;IAC5B,CAAC;IAGD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,kCAAU,GAAhB;;;;gBACI,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;wBAC9B,KAAI,CAAC,WAAW,GAAG,SAAS,CAAC;wBAC7B,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC5C,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACH,yCAAiB,GAAjB,UAAkB,IAAqB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,gDAAwB,GAAlC;QAAA,iBAqBC;QApBG,OAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;YAC9B,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC9B,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;aAClC,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAE7B,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAC,EAAO;gBACtC,IAAM,kBAAkB,GAAG,EAAE,CAAC;gBAE9B,yFAAyF;gBACzF,kEAAkE;gBAClE,kBAAkB,CAAC,UAAU,CAAC,2BAA2B,EAAE,EAAE,EAAE,UAAC,MAAW;oBACvE,EAAE,CAAC,kBAAkB,CAAC,CAAC;gBAC3B,CAAC,EAAE,UAAC,KAAU;oBACV,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACP,CAAC,EAAE,UAAC,KAAU;gBACV,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACO,wCAAgB,GAA1B;QACI,IAAI;YACA,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;YAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAExB;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,+DAA8B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;SACxF;IACL,CAAC;IACL,oBAAC;AAAD,CA5FA,AA4FC,CA5FkC,2CAAoB,GA4FtD;AA5FY,sCAAa","file":"CordovaDriver.js","sourcesContent":["import {AbstractSqliteDriver} from \"../sqlite-abstract/AbstractSqliteDriver\";\nimport {CordovaConnectionOptions} from \"./CordovaConnectionOptions\";\nimport {CordovaQueryRunner} from \"./CordovaQueryRunner\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {Connection} from \"../../connection/Connection\";\nimport {DriverOptionNotSetError} from \"../../error/DriverOptionNotSetError\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\n\n// needed for typescript compiler\ninterface Window {\n sqlitePlugin: any;\n}\n\ndeclare let window: Window;\n\nexport class CordovaDriver extends AbstractSqliteDriver {\n options: CordovaConnectionOptions;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n\n // this.connection = connection;\n // this.options = connection.options as CordovaConnectionOptions;\n this.database = this.options.database;\n\n // validate options to make sure everything is set\n if (!this.options.database)\n throw new DriverOptionNotSetError(\"database\");\n\n if (!this.options.location)\n throw new DriverOptionNotSetError(\"location\");\n\n // load sqlite package\n this.loadDependencies();\n }\n\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Closes connection with database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.queryRunner = undefined;\n this.databaseConnection.close(ok, fail);\n });\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode): QueryRunner {\n if (!this.queryRunner)\n this.queryRunner = new CordovaQueryRunner(this);\n\n return this.queryRunner;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates connection with the database.\n */\n protected createDatabaseConnection() {\n return new Promise<void>((ok, fail) => {\n const options = Object.assign({}, {\n name: this.options.database,\n location: this.options.location,\n }, this.options.extra || {});\n\n this.sqlite.openDatabase(options, (db: any) => {\n const databaseConnection = db;\n\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete to work with sqlite.\n databaseConnection.executeSql(`PRAGMA foreign_keys = ON;`, [], (result: any) => {\n ok(databaseConnection);\n }, (error: any) => {\n fail(error);\n });\n }, (error: any) => {\n fail(error);\n });\n });\n }\n\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n protected loadDependencies(): void {\n try {\n const sqlite = this.options.driver || window.sqlitePlugin;\n this.sqlite = sqlite;\n\n } catch (e) {\n throw new DriverPackageNotInstalledError(\"Cordova-SQLite\", \"cordova-sqlite-storage\");\n }\n }\n}\n"],"sourceRoot":"../.."}
@@ -12,7 +12,7 @@ var QueryResult_1 = require("../../query-runner/QueryResult");
12
12
  * Runs queries on a single sqlite database connection.
13
13
  */
14
14
  var CordovaQueryRunner = /** @class */ (function (_super) {
15
- tslib_1.__extends(CordovaQueryRunner, _super);
15
+ (0, tslib_1.__extends)(CordovaQueryRunner, _super);
16
16
  // -------------------------------------------------------------------------
17
17
  // Constructor
18
18
  // -------------------------------------------------------------------------
@@ -28,15 +28,15 @@ var CordovaQueryRunner = /** @class */ (function (_super) {
28
28
  */
29
29
  CordovaQueryRunner.prototype.query = function (query, parameters, useStructuredResult) {
30
30
  if (useStructuredResult === void 0) { useStructuredResult = false; }
31
- return tslib_1.__awaiter(this, void 0, void 0, function () {
31
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
32
32
  var _this = this;
33
- return tslib_1.__generator(this, function (_a) {
33
+ return (0, tslib_1.__generator)(this, function (_a) {
34
34
  if (this.isReleased)
35
35
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
36
- return [2 /*return*/, new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
36
+ return [2 /*return*/, new Promise(function (ok, fail) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
37
37
  var databaseConnection, queryStartTime;
38
38
  var _this = this;
39
- return tslib_1.__generator(this, function (_a) {
39
+ return (0, tslib_1.__generator)(this, function (_a) {
40
40
  switch (_a.label) {
41
41
  case 0: return [4 /*yield*/, this.connect()];
42
42
  case 1:
@@ -116,8 +116,8 @@ var CordovaQueryRunner = /** @class */ (function (_super) {
116
116
  * Would start a transaction but this driver does not support transactions.
117
117
  */
118
118
  CordovaQueryRunner.prototype.startTransaction = function () {
119
- return tslib_1.__awaiter(this, void 0, void 0, function () {
120
- return tslib_1.__generator(this, function (_a) {
119
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
120
+ return (0, tslib_1.__generator)(this, function (_a) {
121
121
  throw new error_1.TypeORMError('Transactions are not supported by the Cordova driver');
122
122
  });
123
123
  });
@@ -126,8 +126,8 @@ var CordovaQueryRunner = /** @class */ (function (_super) {
126
126
  * Would start a transaction but this driver does not support transactions.
127
127
  */
128
128
  CordovaQueryRunner.prototype.commitTransaction = function () {
129
- return tslib_1.__awaiter(this, void 0, void 0, function () {
130
- return tslib_1.__generator(this, function (_a) {
129
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
130
+ return (0, tslib_1.__generator)(this, function (_a) {
131
131
  throw new error_1.TypeORMError('Transactions are not supported by the Cordova driver');
132
132
  });
133
133
  });
@@ -136,8 +136,8 @@ var CordovaQueryRunner = /** @class */ (function (_super) {
136
136
  * Would start a transaction but this driver does not support transactions.
137
137
  */
138
138
  CordovaQueryRunner.prototype.rollbackTransaction = function () {
139
- return tslib_1.__awaiter(this, void 0, void 0, function () {
140
- return tslib_1.__generator(this, function (_a) {
139
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
140
+ return (0, tslib_1.__generator)(this, function (_a) {
141
141
  throw new error_1.TypeORMError('Transactions are not supported by the Cordova driver');
142
142
  });
143
143
  });
@@ -148,10 +148,10 @@ var CordovaQueryRunner = /** @class */ (function (_super) {
148
148
  * (because it can clear all your database).
149
149
  */
150
150
  CordovaQueryRunner.prototype.clearDatabase = function () {
151
- return tslib_1.__awaiter(this, void 0, void 0, function () {
151
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
152
152
  var selectViewDropsQuery, dropViewQueries, selectTableDropsQuery, dropTableQueries;
153
153
  var _this = this;
154
- return tslib_1.__generator(this, function (_a) {
154
+ return (0, tslib_1.__generator)(this, function (_a) {
155
155
  switch (_a.label) {
156
156
  case 0: return [4 /*yield*/, this.query("PRAGMA foreign_keys = OFF;")];
157
157
  case 1:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/cordova/CordovaQueryRunner.ts"],"names":[],"mappings":"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","file":"CordovaQueryRunner.js","sourcesContent":["import {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {QueryRunnerAlreadyReleasedError} from \"../../error/QueryRunnerAlreadyReleasedError\";\nimport {QueryFailedError} from \"../../error/QueryFailedError\";\nimport {AbstractSqliteQueryRunner} from \"../sqlite-abstract/AbstractSqliteQueryRunner\";\nimport {CordovaDriver} from \"./CordovaDriver\";\nimport {Broadcaster} from \"../../subscriber/Broadcaster\";\nimport { TypeORMError } from \"../../error\";\nimport { QueryResult } from \"../../query-runner/QueryResult\";\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class CordovaQueryRunner extends AbstractSqliteQueryRunner {\n\n /**\n * Database driver used by connection.\n */\n driver: CordovaDriver;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: CordovaDriver) {\n super();\n this.driver = driver;\n this.connection = driver.connection;\n this.broadcaster = new Broadcaster(this);\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(query: string, parameters?: any[], useStructuredResult = false): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n return new Promise(async (ok, fail) => {\n const databaseConnection = await this.connect();\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n databaseConnection.executeSql(query, parameters, (raw: any) => {\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n\n const result = new QueryResult();\n\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId;\n } else {\n let resultSet = [];\n for (let i = 0; i < raw.rows.length; i++) {\n resultSet.push(raw.rows.item(i));\n }\n\n result.records = resultSet;\n result.raw = resultSet;\n }\n\n if (useStructuredResult) {\n ok(result);\n } else {\n ok(result.raw);\n }\n }, (err: any) => {\n this.driver.connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n });\n });\n }\n\n /**\n * Insert a new row with given values into the given table.\n * Returns value of the generated column if given and generate column exist in the table.\n // todo: implement new syntax\n async insert(tableName: string, keyValues: ObjectLiteral): Promise<InsertResult> {\n const keys = Object.keys(keyValues);\n const columns = keys.map(key => `\"${key}\"`).join(\", \");\n const values = keys.map(key => \"?\").join(\",\");\n const generatedColumns = this.connection.hasMetadata(tableName) ? this.connection.getMetadata(tableName).generatedColumns : [];\n const sql = columns.length > 0 ? (`INSERT INTO \"${tableName}\"(${columns}) VALUES (${values})`) : `INSERT INTO \"${tableName}\" DEFAULT VALUES`;\n const parameters = keys.map(key => keyValues[key]);\n\n return new Promise<InsertResult>(async (ok, fail) => {\n this.driver.connection.logger.logQuery(sql, parameters, this);\n const __this = this;\n const databaseConnection = await this.connect();\n databaseConnection.executeSql(sql, parameters, (resultSet: any) => {\n const generatedMap = generatedColumns.reduce((map, generatedColumn) => {\n const value = generatedColumn.isPrimary && generatedColumn.generationStrategy === \"increment\" && resultSet.insertId ? resultSet.insertId : keyValues[generatedColumn.databaseName];\n if (!value) return map;\n return OrmUtils.mergeDeep(map, generatedColumn.createValueMap(value));\n }, {} as ObjectLiteral);\n\n ok({\n result: undefined,\n generatedMap: Object.keys(generatedMap).length > 0 ? generatedMap : undefined\n });\n }, (err: any) => {\n __this.driver.connection.logger.logQueryError(err, sql, parameters, this);\n fail(err);\n });\n });\n }*/\n\n /**\n * Would start a transaction but this driver does not support transactions.\n */\n async startTransaction(): Promise<void> {\n throw new TypeORMError('Transactions are not supported by the Cordova driver')\n }\n\n /**\n * Would start a transaction but this driver does not support transactions.\n */\n async commitTransaction(): Promise<void> {\n throw new TypeORMError('Transactions are not supported by the Cordova driver')\n }\n\n /**\n * Would start a transaction but this driver does not support transactions.\n */\n async rollbackTransaction(): Promise<void> {\n throw new TypeORMError('Transactions are not supported by the Cordova driver')\n }\n\n /**\n * Removes all tables from the currently connected database.\n * Be careful with using this method and avoid using it in production or migrations\n * (because it can clear all your database).\n */\n async clearDatabase(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = OFF;`);\n try {\n const selectViewDropsQuery = `SELECT 'DROP VIEW \"' || name || '\";' as query FROM \"sqlite_master\" WHERE \"type\" = 'view'`;\n const dropViewQueries: ObjectLiteral[] = await this.query(selectViewDropsQuery);\n\n const selectTableDropsQuery = `SELECT 'DROP TABLE \"' || name || '\";' as query FROM \"sqlite_master\" WHERE \"type\" = 'table' AND \"name\" != 'sqlite_sequence'`;\n const dropTableQueries: ObjectLiteral[] = await this.query(selectTableDropsQuery);\n\n await Promise.all(dropViewQueries.map(q => this.query(q[\"query\"])));\n await Promise.all(dropTableQueries.map(q => this.query(q[\"query\"])));\n } finally {\n await this.query(`PRAGMA foreign_keys = ON;`);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(objectLiteral: ObjectLiteral, startIndex: number = 0): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\");\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/cordova/CordovaQueryRunner.ts"],"names":[],"mappings":"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","file":"CordovaQueryRunner.js","sourcesContent":["import {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {QueryRunnerAlreadyReleasedError} from \"../../error/QueryRunnerAlreadyReleasedError\";\nimport {QueryFailedError} from \"../../error/QueryFailedError\";\nimport {AbstractSqliteQueryRunner} from \"../sqlite-abstract/AbstractSqliteQueryRunner\";\nimport {CordovaDriver} from \"./CordovaDriver\";\nimport {Broadcaster} from \"../../subscriber/Broadcaster\";\nimport { TypeORMError } from \"../../error\";\nimport { QueryResult } from \"../../query-runner/QueryResult\";\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class CordovaQueryRunner extends AbstractSqliteQueryRunner {\n\n /**\n * Database driver used by connection.\n */\n driver: CordovaDriver;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: CordovaDriver) {\n super();\n this.driver = driver;\n this.connection = driver.connection;\n this.broadcaster = new Broadcaster(this);\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(query: string, parameters?: any[], useStructuredResult = false): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n return new Promise(async (ok, fail) => {\n const databaseConnection = await this.connect();\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n databaseConnection.executeSql(query, parameters, (raw: any) => {\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n\n const result = new QueryResult();\n\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId;\n } else {\n let resultSet = [];\n for (let i = 0; i < raw.rows.length; i++) {\n resultSet.push(raw.rows.item(i));\n }\n\n result.records = resultSet;\n result.raw = resultSet;\n }\n\n if (useStructuredResult) {\n ok(result);\n } else {\n ok(result.raw);\n }\n }, (err: any) => {\n this.driver.connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n });\n });\n }\n\n /**\n * Insert a new row with given values into the given table.\n * Returns value of the generated column if given and generate column exist in the table.\n // todo: implement new syntax\n async insert(tableName: string, keyValues: ObjectLiteral): Promise<InsertResult> {\n const keys = Object.keys(keyValues);\n const columns = keys.map(key => `\"${key}\"`).join(\", \");\n const values = keys.map(key => \"?\").join(\",\");\n const generatedColumns = this.connection.hasMetadata(tableName) ? this.connection.getMetadata(tableName).generatedColumns : [];\n const sql = columns.length > 0 ? (`INSERT INTO \"${tableName}\"(${columns}) VALUES (${values})`) : `INSERT INTO \"${tableName}\" DEFAULT VALUES`;\n const parameters = keys.map(key => keyValues[key]);\n\n return new Promise<InsertResult>(async (ok, fail) => {\n this.driver.connection.logger.logQuery(sql, parameters, this);\n const __this = this;\n const databaseConnection = await this.connect();\n databaseConnection.executeSql(sql, parameters, (resultSet: any) => {\n const generatedMap = generatedColumns.reduce((map, generatedColumn) => {\n const value = generatedColumn.isPrimary && generatedColumn.generationStrategy === \"increment\" && resultSet.insertId ? resultSet.insertId : keyValues[generatedColumn.databaseName];\n if (!value) return map;\n return OrmUtils.mergeDeep(map, generatedColumn.createValueMap(value));\n }, {} as ObjectLiteral);\n\n ok({\n result: undefined,\n generatedMap: Object.keys(generatedMap).length > 0 ? generatedMap : undefined\n });\n }, (err: any) => {\n __this.driver.connection.logger.logQueryError(err, sql, parameters, this);\n fail(err);\n });\n });\n }*/\n\n /**\n * Would start a transaction but this driver does not support transactions.\n */\n async startTransaction(): Promise<void> {\n throw new TypeORMError('Transactions are not supported by the Cordova driver')\n }\n\n /**\n * Would start a transaction but this driver does not support transactions.\n */\n async commitTransaction(): Promise<void> {\n throw new TypeORMError('Transactions are not supported by the Cordova driver')\n }\n\n /**\n * Would start a transaction but this driver does not support transactions.\n */\n async rollbackTransaction(): Promise<void> {\n throw new TypeORMError('Transactions are not supported by the Cordova driver')\n }\n\n /**\n * Removes all tables from the currently connected database.\n * Be careful with using this method and avoid using it in production or migrations\n * (because it can clear all your database).\n */\n async clearDatabase(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = OFF;`);\n try {\n const selectViewDropsQuery = `SELECT 'DROP VIEW \"' || name || '\";' as query FROM \"sqlite_master\" WHERE \"type\" = 'view'`;\n const dropViewQueries: ObjectLiteral[] = await this.query(selectViewDropsQuery);\n\n const selectTableDropsQuery = `SELECT 'DROP TABLE \"' || name || '\";' as query FROM \"sqlite_master\" WHERE \"type\" = 'table' AND \"name\" != 'sqlite_sequence'`;\n const dropTableQueries: ObjectLiteral[] = await this.query(selectTableDropsQuery);\n\n await Promise.all(dropViewQueries.map(q => this.query(q[\"query\"])));\n await Promise.all(dropTableQueries.map(q => this.query(q[\"query\"])));\n } finally {\n await this.query(`PRAGMA foreign_keys = ON;`);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(objectLiteral: ObjectLiteral, startIndex: number = 0): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\");\n }\n}\n"],"sourceRoot":"../.."}
@@ -6,7 +6,7 @@ var AbstractSqliteDriver_1 = require("../sqlite-abstract/AbstractSqliteDriver");
6
6
  var ExpoQueryRunner_1 = require("./ExpoQueryRunner");
7
7
  var DriverOptionNotSetError_1 = require("../../error/DriverOptionNotSetError");
8
8
  var ExpoDriver = /** @class */ (function (_super) {
9
- tslib_1.__extends(ExpoDriver, _super);
9
+ (0, tslib_1.__extends)(ExpoDriver, _super);
10
10
  // -------------------------------------------------------------------------
11
11
  // Constructor
12
12
  // -------------------------------------------------------------------------
@@ -29,9 +29,9 @@ var ExpoDriver = /** @class */ (function (_super) {
29
29
  * Closes connection with database.
30
30
  */
31
31
  ExpoDriver.prototype.disconnect = function () {
32
- return tslib_1.__awaiter(this, void 0, void 0, function () {
32
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
33
33
  var _this = this;
34
- return tslib_1.__generator(this, function (_a) {
34
+ return (0, tslib_1.__generator)(this, function (_a) {
35
35
  return [2 /*return*/, new Promise(function (ok, fail) {
36
36
  try {
37
37
  _this.queryRunner = undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/expo/ExpoDriver.ts"],"names":[],"mappings":";;;;AAAA,gFAA6E;AAE7E,qDAAkD;AAGlD,+EAA4E;AAG5E;IAAgC,sCAAoB;IAGhD,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,oBAAY,UAAsB;QAAlC,YACI,kBAAM,UAAU,CAAC,SAapB;QAXG,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtC,kDAAkD;QAClD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,MAAM;YACpB,MAAM,IAAI,iDAAuB,CAAC,QAAQ,CAAC,CAAC;QAEhD,sBAAsB;QACtB,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;IACtC,CAAC;IAGD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,+BAAU,GAAhB;;;;gBACI,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;wBAC9B,IAAI;4BACA,KAAI,CAAC,WAAW,GAAG,SAAS,CAAC;4BAC7B,KAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;4BACpC,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;4BACpC,EAAE,EAAE,CAAC;yBACR;wBAAC,OAAO,KAAK,EAAE;4BACZ,IAAI,CAAC,KAAK,CAAC,CAAC;yBACf;oBACL,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACH,sCAAiB,GAAjB,UAAkB,IAAqB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,6CAAwB,GAAlC;QAAA,iBAqBC;QApBG,OAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;YAC9B,IAAI;gBACA,IAAM,oBAAkB,GAAG,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3E;;;kBAGE;gBACF,oBAAkB,CAAC,WAAW,CAAC,UAAC,GAAQ;oBACpC,GAAG,CAAC,UAAU,CAAC,2BAA2B,EAAE,EAAE,EAAE,UAAC,CAAM,EAAE,MAAW;wBAChE,EAAE,CAAC,oBAAkB,CAAC,CAAC;oBAC3B,CAAC,EAAE,UAAC,CAAM,EAAE,GAAQ;wBAChB,IAAI,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;oBACvC,CAAC,CAAC,CAAC;gBACP,CAAC,EAAE,UAAC,GAAQ;oBACR,IAAI,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,CAAC;aACf;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACL,iBAAC;AAAD,CAnFA,AAmFC,CAnF+B,2CAAoB,GAmFnD;AAnFY,gCAAU","file":"ExpoDriver.js","sourcesContent":["import {AbstractSqliteDriver} from \"../sqlite-abstract/AbstractSqliteDriver\";\nimport {ExpoConnectionOptions} from \"./ExpoConnectionOptions\";\nimport {ExpoQueryRunner} from \"./ExpoQueryRunner\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {Connection} from \"../../connection/Connection\";\nimport {DriverOptionNotSetError} from \"../../error/DriverOptionNotSetError\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\n\nexport class ExpoDriver extends AbstractSqliteDriver {\n options: ExpoConnectionOptions;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n\n this.database = this.options.database;\n\n // validate options to make sure everything is set\n if (!this.options.database)\n throw new DriverOptionNotSetError(\"database\");\n\n if (!this.options.driver)\n throw new DriverOptionNotSetError(\"driver\");\n\n // load sqlite package\n this.sqlite = this.options.driver;\n }\n\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Closes connection with database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n try {\n this.queryRunner = undefined;\n this.databaseConnection._db.close();\n this.databaseConnection = undefined;\n ok();\n } catch (error) {\n fail(error);\n }\n });\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode): QueryRunner {\n if (!this.queryRunner)\n this.queryRunner = new ExpoQueryRunner(this);\n\n return this.queryRunner;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates connection with the database.\n */\n protected createDatabaseConnection() {\n return new Promise<void>((ok, fail) => {\n try {\n const databaseConnection = this.sqlite.openDatabase(this.options.database);\n /*\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete work with sqlite.\n */\n databaseConnection.transaction((tsx: any) => {\n tsx.executeSql(`PRAGMA foreign_keys = ON;`, [], (t: any, result: any) => {\n ok(databaseConnection);\n }, (t: any, err: any) => {\n fail({transaction: t, error: err});\n });\n }, (err: any) => {\n fail(err);\n });\n } catch (error) {\n fail(error);\n }\n });\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/expo/ExpoDriver.ts"],"names":[],"mappings":";;;;AAAA,gFAA6E;AAE7E,qDAAkD;AAGlD,+EAA4E;AAG5E;IAAgC,2CAAoB;IAGhD,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,oBAAY,UAAsB;QAAlC,YACI,kBAAM,UAAU,CAAC,SAapB;QAXG,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtC,kDAAkD;QAClD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,MAAM;YACpB,MAAM,IAAI,iDAAuB,CAAC,QAAQ,CAAC,CAAC;QAEhD,sBAAsB;QACtB,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;IACtC,CAAC;IAGD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,+BAAU,GAAhB;;;;gBACI,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;wBAC9B,IAAI;4BACA,KAAI,CAAC,WAAW,GAAG,SAAS,CAAC;4BAC7B,KAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;4BACpC,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;4BACpC,EAAE,EAAE,CAAC;yBACR;wBAAC,OAAO,KAAK,EAAE;4BACZ,IAAI,CAAC,KAAK,CAAC,CAAC;yBACf;oBACL,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACH,sCAAiB,GAAjB,UAAkB,IAAqB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,6CAAwB,GAAlC;QAAA,iBAqBC;QApBG,OAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;YAC9B,IAAI;gBACA,IAAM,oBAAkB,GAAG,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3E;;;kBAGE;gBACF,oBAAkB,CAAC,WAAW,CAAC,UAAC,GAAQ;oBACpC,GAAG,CAAC,UAAU,CAAC,2BAA2B,EAAE,EAAE,EAAE,UAAC,CAAM,EAAE,MAAW;wBAChE,EAAE,CAAC,oBAAkB,CAAC,CAAC;oBAC3B,CAAC,EAAE,UAAC,CAAM,EAAE,GAAQ;wBAChB,IAAI,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;oBACvC,CAAC,CAAC,CAAC;gBACP,CAAC,EAAE,UAAC,GAAQ;oBACR,IAAI,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,CAAC;aACf;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACL,iBAAC;AAAD,CAnFA,AAmFC,CAnF+B,2CAAoB,GAmFnD;AAnFY,gCAAU","file":"ExpoDriver.js","sourcesContent":["import {AbstractSqliteDriver} from \"../sqlite-abstract/AbstractSqliteDriver\";\nimport {ExpoConnectionOptions} from \"./ExpoConnectionOptions\";\nimport {ExpoQueryRunner} from \"./ExpoQueryRunner\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {Connection} from \"../../connection/Connection\";\nimport {DriverOptionNotSetError} from \"../../error/DriverOptionNotSetError\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\n\nexport class ExpoDriver extends AbstractSqliteDriver {\n options: ExpoConnectionOptions;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n\n this.database = this.options.database;\n\n // validate options to make sure everything is set\n if (!this.options.database)\n throw new DriverOptionNotSetError(\"database\");\n\n if (!this.options.driver)\n throw new DriverOptionNotSetError(\"driver\");\n\n // load sqlite package\n this.sqlite = this.options.driver;\n }\n\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Closes connection with database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n try {\n this.queryRunner = undefined;\n this.databaseConnection._db.close();\n this.databaseConnection = undefined;\n ok();\n } catch (error) {\n fail(error);\n }\n });\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode): QueryRunner {\n if (!this.queryRunner)\n this.queryRunner = new ExpoQueryRunner(this);\n\n return this.queryRunner;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates connection with the database.\n */\n protected createDatabaseConnection() {\n return new Promise<void>((ok, fail) => {\n try {\n const databaseConnection = this.sqlite.openDatabase(this.options.database);\n /*\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete work with sqlite.\n */\n databaseConnection.transaction((tsx: any) => {\n tsx.executeSql(`PRAGMA foreign_keys = ON;`, [], (t: any, result: any) => {\n ok(databaseConnection);\n }, (t: any, err: any) => {\n fail({transaction: t, error: err});\n });\n }, (err: any) => {\n fail(err);\n });\n } catch (error) {\n fail(error);\n }\n });\n }\n}\n"],"sourceRoot":"../.."}
@@ -8,13 +8,12 @@ var AbstractSqliteQueryRunner_1 = require("../sqlite-abstract/AbstractSqliteQuer
8
8
  var TransactionAlreadyStartedError_1 = require("../../error/TransactionAlreadyStartedError");
9
9
  var TransactionNotStartedError_1 = require("../../error/TransactionNotStartedError");
10
10
  var Broadcaster_1 = require("../../subscriber/Broadcaster");
11
- var BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
12
11
  var QueryResult_1 = require("../../query-runner/QueryResult");
13
12
  /**
14
13
  * Runs queries on a single sqlite database connection.
15
14
  */
16
15
  var ExpoQueryRunner = /** @class */ (function (_super) {
17
- tslib_1.__extends(ExpoQueryRunner, _super);
16
+ (0, tslib_1.__extends)(ExpoQueryRunner, _super);
18
17
  // -------------------------------------------------------------------------
19
18
  // Constructor
20
19
  // -------------------------------------------------------------------------
@@ -37,30 +36,20 @@ var ExpoQueryRunner = /** @class */ (function (_super) {
37
36
  * transaction.
38
37
  */
39
38
  ExpoQueryRunner.prototype.startTransaction = function () {
40
- return tslib_1.__awaiter(this, void 0, void 0, function () {
41
- var beforeBroadcastResult, afterBroadcastResult;
42
- return tslib_1.__generator(this, function (_a) {
39
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
40
+ return (0, tslib_1.__generator)(this, function (_a) {
43
41
  switch (_a.label) {
44
42
  case 0:
45
43
  if (this.isTransactionActive && typeof this.transaction !== "undefined")
46
44
  throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
47
- beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
48
- this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
49
- if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
50
- return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
45
+ return [4 /*yield*/, this.broadcaster.broadcast('BeforeTransactionStart')];
51
46
  case 1:
52
47
  _a.sent();
53
- _a.label = 2;
54
- case 2:
55
48
  this.isTransactionActive = true;
56
- afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
57
- this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
58
- if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];
59
- return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
60
- case 3:
49
+ return [4 /*yield*/, this.broadcaster.broadcast('AfterTransactionStart')];
50
+ case 2:
61
51
  _a.sent();
62
- _a.label = 4;
63
- case 4: return [2 /*return*/];
52
+ return [2 /*return*/];
64
53
  }
65
54
  });
66
55
  });
@@ -74,31 +63,21 @@ var ExpoQueryRunner = /** @class */ (function (_super) {
74
63
  * object and set the stage for the next transaction.
75
64
  */
76
65
  ExpoQueryRunner.prototype.commitTransaction = function () {
77
- return tslib_1.__awaiter(this, void 0, void 0, function () {
78
- var beforeBroadcastResult, afterBroadcastResult;
79
- return tslib_1.__generator(this, function (_a) {
66
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
67
+ return (0, tslib_1.__generator)(this, function (_a) {
80
68
  switch (_a.label) {
81
69
  case 0:
82
70
  if (!this.isTransactionActive && typeof this.transaction === "undefined")
83
71
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
84
- beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
85
- this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
86
- if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
87
- return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
72
+ return [4 /*yield*/, this.broadcaster.broadcast('BeforeTransactionCommit')];
88
73
  case 1:
89
74
  _a.sent();
90
- _a.label = 2;
91
- case 2:
92
75
  this.isTransactionActive = false;
93
76
  this.transaction = undefined;
94
- afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
95
- this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
96
- if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];
97
- return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
98
- case 3:
77
+ return [4 /*yield*/, this.broadcaster.broadcast('AfterTransactionCommit')];
78
+ case 2:
99
79
  _a.sent();
100
- _a.label = 4;
101
- case 4: return [2 /*return*/];
80
+ return [2 /*return*/];
102
81
  }
103
82
  });
104
83
  });
@@ -111,31 +90,21 @@ var ExpoQueryRunner = /** @class */ (function (_super) {
111
90
  * Issuing separate statements for `COMMIT` or `ROLLBACK` aren't necessary.
112
91
  */
113
92
  ExpoQueryRunner.prototype.rollbackTransaction = function () {
114
- return tslib_1.__awaiter(this, void 0, void 0, function () {
115
- var beforeBroadcastResult, afterBroadcastResult;
116
- return tslib_1.__generator(this, function (_a) {
93
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
94
+ return (0, tslib_1.__generator)(this, function (_a) {
117
95
  switch (_a.label) {
118
96
  case 0:
119
97
  if (!this.isTransactionActive && typeof this.transaction === "undefined")
120
98
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
121
- beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
122
- this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
123
- if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
124
- return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
99
+ return [4 /*yield*/, this.broadcaster.broadcast('BeforeTransactionRollback')];
125
100
  case 1:
126
101
  _a.sent();
127
- _a.label = 2;
128
- case 2:
129
102
  this.isTransactionActive = false;
130
103
  this.transaction = undefined;
131
- afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
132
- this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
133
- if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];
134
- return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
135
- case 3:
104
+ return [4 /*yield*/, this.broadcaster.broadcast('AfterTransactionRollback')];
105
+ case 2:
136
106
  _a.sent();
137
- _a.label = 4;
138
- case 4: return [2 /*return*/];
107
+ return [2 /*return*/];
139
108
  }
140
109
  });
141
110
  });
@@ -145,15 +114,15 @@ var ExpoQueryRunner = /** @class */ (function (_super) {
145
114
  */
146
115
  ExpoQueryRunner.prototype.query = function (query, parameters, useStructuredResult) {
147
116
  if (useStructuredResult === void 0) { useStructuredResult = false; }
148
- return tslib_1.__awaiter(this, void 0, void 0, function () {
117
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
149
118
  var _this = this;
150
- return tslib_1.__generator(this, function (_a) {
119
+ return (0, tslib_1.__generator)(this, function (_a) {
151
120
  if (this.isReleased)
152
121
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
153
- return [2 /*return*/, new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
122
+ return [2 /*return*/, new Promise(function (ok, fail) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
154
123
  var databaseConnection, queryStartTime;
155
124
  var _this = this;
156
- return tslib_1.__generator(this, function (_a) {
125
+ return (0, tslib_1.__generator)(this, function (_a) {
157
126
  switch (_a.label) {
158
127
  case 0: return [4 /*yield*/, this.connect()];
159
128
  case 1:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/expo/ExpoQueryRunner.ts"],"names":[],"mappings":";;;;AAAA,+FAA4F;AAC5F,iEAA8D;AAC9D,0FAAuF;AACvF,6FAA0F;AAC1F,qFAAkF;AAElF,4DAAyD;AACzD,wEAAqE;AACrE,8DAA6D;AAqB7D;;GAEG;AACH;IAAqC,2CAAyB;IAY1D,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,yBAAY,MAAkB;QAA9B,YACI,iBAAO,SAIV;QAHG,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,KAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,KAAI,CAAC,CAAC;;IAC7C,CAAC;IAED;;;;;;;;;;OAUG;IACG,0CAAgB,GAAtB;;;;;;wBACI,IAAI,IAAI,CAAC,mBAAmB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW;4BACnE,MAAM,IAAI,+DAA8B,EAAE,CAAC;wBAEzC,qBAAqB,GAAG,IAAI,qCAAiB,EAAE,CAAC;wBACtD,IAAI,CAAC,WAAW,CAAC,oCAAoC,CAAC,qBAAqB,CAAC,CAAC;6BACzE,CAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,EAAzC,wBAAyC;wBAAE,qBAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAA;;wBAAjD,SAAiD,CAAC;;;wBAEjG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;wBAE1B,oBAAoB,GAAG,IAAI,qCAAiB,EAAE,CAAC;wBACrD,IAAI,CAAC,WAAW,CAAC,mCAAmC,CAAC,oBAAoB,CAAC,CAAC;6BACvE,CAAA,oBAAoB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,EAAxC,wBAAwC;wBAAE,qBAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAA;;wBAAhD,SAAgD,CAAC;;;;;;KAClG;IAED;;;;;;;OAOG;IACG,2CAAiB,GAAvB;;;;;;wBACI,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW;4BACpE,MAAM,IAAI,uDAA0B,EAAE,CAAC;wBAErC,qBAAqB,GAAG,IAAI,qCAAiB,EAAE,CAAC;wBACtD,IAAI,CAAC,WAAW,CAAC,qCAAqC,CAAC,qBAAqB,CAAC,CAAC;6BAC1E,CAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,EAAzC,wBAAyC;wBAAE,qBAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAA;;wBAAjD,SAAiD,CAAC;;;wBAEjG,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;wBACjC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;wBAEvB,oBAAoB,GAAG,IAAI,qCAAiB,EAAE,CAAC;wBACrD,IAAI,CAAC,WAAW,CAAC,oCAAoC,CAAC,oBAAoB,CAAC,CAAC;6BACxE,CAAA,oBAAoB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,EAAxC,wBAAwC;wBAAE,qBAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAA;;wBAAhD,SAAgD,CAAC;;;;;;KAClG;IAED;;;;;;OAMG;IACG,6CAAmB,GAAzB;;;;;;wBACI,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW;4BACpE,MAAM,IAAI,uDAA0B,EAAE,CAAC;wBAErC,qBAAqB,GAAG,IAAI,qCAAiB,EAAE,CAAC;wBACtD,IAAI,CAAC,WAAW,CAAC,uCAAuC,CAAC,qBAAqB,CAAC,CAAC;6BAC5E,CAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,EAAzC,wBAAyC;wBAAE,qBAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAA;;wBAAjD,SAAiD,CAAC;;;wBAEjG,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;wBACjC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;wBAEvB,oBAAoB,GAAG,IAAI,qCAAiB,EAAE,CAAC;wBACrD,IAAI,CAAC,WAAW,CAAC,sCAAsC,CAAC,oBAAoB,CAAC,CAAC;6BAC1E,CAAA,oBAAoB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,EAAxC,wBAAwC;wBAAE,qBAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAA;;wBAAhD,SAAgD,CAAC;;;;;;KAClG;IAED;;OAEG;IACG,+BAAK,GAAX,UAAY,KAAa,EAAE,UAAkB,EAAE,mBAA2B;QAA3B,oCAAA,EAAA,2BAA2B;;;;gBACtE,IAAI,IAAI,CAAC,UAAU;oBACf,MAAM,IAAI,iEAA+B,EAAE,CAAC;gBAEhD,sBAAO,IAAI,OAAO,CAAM,UAAO,EAAE,EAAE,IAAI;;;;;wCACR,qBAAM,IAAI,CAAC,OAAO,EAAE,EAAA;;oCAAzC,kBAAkB,GAAG,SAAoB;oCAC/C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;oCAC1D,cAAc,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;oCACnC,6DAA6D;oCAC7D,kBAAkB,CAAC,WAAW,CAAC,UAAC,WAAyB;wCACrD,IAAI,OAAO,KAAI,CAAC,WAAW,KAAK,WAAW,EAAE;4CACzC,KAAI,CAAC,gBAAgB,EAAE,CAAC;4CACxB,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;yCAClC;wCACD,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,UAAC,CAAe,EAAE,GAAe;4CAC5E,oDAAoD;4CACpD,IAAM,qBAAqB,GAAG,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC;4CACxE,IAAM,YAAY,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;4CACjC,IAAM,kBAAkB,GAAG,YAAY,GAAG,cAAc,CAAC;4CACzD,IAAI,qBAAqB,IAAI,kBAAkB,GAAG,qBAAqB,EAAE;gDACrE,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAI,CAAC,CAAC;6CAC3F;4CAED,IAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;4CAEjC,4DAA4D;4CAC5D,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,aAAa,EAAE;gDACvC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;6CAC7B;4CAED,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,CAAC,cAAc,CAAC,EAAE;gDACrC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC;6CACtC;4CAED,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,CAAC,MAAM,CAAC,EAAE;gDAC7B,IAAI,SAAS,GAAG,EAAE,CAAC;gDACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oDACtC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iDACpC;gDAED,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;gDACvB,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;6CAC9B;4CAED,IAAI,mBAAmB,EAAE;gDACrB,EAAE,CAAC,MAAM,CAAC,CAAC;6CACd;iDAAM;gDACH,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;6CAClB;wCACL,CAAC,EAAE,UAAC,CAAe,EAAE,GAAQ;4CACzB,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAI,CAAC,CAAC;4CAC1E,IAAI,CAAC,IAAI,mCAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;wCACvD,CAAC,CAAC,CAAC;oCACP,CAAC,EAAE,UAAC,GAAQ;wCACR,KAAI,CAAC,mBAAmB,EAAE,CAAC;oCAC/B,CAAC,EAAE;wCACC,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;wCACjC,KAAI,CAAC,WAAW,GAAG,SAAS,CAAC;oCACjC,CAAC,CAAC,CAAC;;;;yBACN,CAAC,EAAC;;;KACN;IACL,sBAAC;AAAD,CAhKA,AAgKC,CAhKoC,qDAAyB,GAgK7D;AAhKY,0CAAe","file":"ExpoQueryRunner.js","sourcesContent":["import {QueryRunnerAlreadyReleasedError} from \"../../error/QueryRunnerAlreadyReleasedError\";\nimport {QueryFailedError} from \"../../error/QueryFailedError\";\nimport {AbstractSqliteQueryRunner} from \"../sqlite-abstract/AbstractSqliteQueryRunner\";\nimport {TransactionAlreadyStartedError} from \"../../error/TransactionAlreadyStartedError\";\nimport {TransactionNotStartedError} from \"../../error/TransactionNotStartedError\";\nimport {ExpoDriver} from \"./ExpoDriver\";\nimport {Broadcaster} from \"../../subscriber/Broadcaster\";\nimport {BroadcasterResult} from \"../../subscriber/BroadcasterResult\";\nimport { QueryResult } from \"../../query-runner/QueryResult\";\n\n// Needed to satisfy the Typescript compiler\ninterface IResultSet {\n insertId: number | undefined;\n rowsAffected: number;\n rows: {\n length: number;\n item: (idx: number) => any;\n _array: any[];\n };\n}\ninterface ITransaction {\n executeSql: (\n sql: string,\n args: any[] | undefined,\n ok: (tsx: ITransaction, resultSet: IResultSet) => void,\n fail: (tsx: ITransaction, err: any) => void\n ) => void;\n}\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class ExpoQueryRunner extends AbstractSqliteQueryRunner {\n\n /**\n * Database driver used by connection.\n */\n driver: ExpoDriver;\n\n /**\n * Database transaction object\n */\n private transaction?: ITransaction;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: ExpoDriver) {\n super();\n this.driver = driver;\n this.connection = driver.connection;\n this.broadcaster = new Broadcaster(this);\n }\n\n /**\n * Starts transaction. Within Expo, all database operations happen in a\n * transaction context, so issuing a `BEGIN TRANSACTION` command is\n * redundant and will result in the following error:\n *\n * `Error: Error code 1: cannot start a transaction within a transaction`\n *\n * Instead, we keep track of a `Transaction` object in `this.transaction`\n * and continue using the same object until we wish to commit the\n * transaction.\n */\n async startTransaction(): Promise<void> {\n if (this.isTransactionActive && typeof this.transaction !== \"undefined\")\n throw new TransactionAlreadyStartedError();\n\n const beforeBroadcastResult = new BroadcasterResult();\n this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);\n if (beforeBroadcastResult.promises.length > 0) await Promise.all(beforeBroadcastResult.promises);\n\n this.isTransactionActive = true;\n\n const afterBroadcastResult = new BroadcasterResult();\n this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);\n if (afterBroadcastResult.promises.length > 0) await Promise.all(afterBroadcastResult.promises);\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n * Since Expo will automatically commit the transaction once all the\n * callbacks of the transaction object have been completed, \"committing\" a\n * transaction in this driver's context means that we delete the transaction\n * object and set the stage for the next transaction.\n */\n async commitTransaction(): Promise<void> {\n if (!this.isTransactionActive && typeof this.transaction === \"undefined\")\n throw new TransactionNotStartedError();\n\n const beforeBroadcastResult = new BroadcasterResult();\n this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);\n if (beforeBroadcastResult.promises.length > 0) await Promise.all(beforeBroadcastResult.promises);\n\n this.isTransactionActive = false;\n this.transaction = undefined;\n\n const afterBroadcastResult = new BroadcasterResult();\n this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);\n if (afterBroadcastResult.promises.length > 0) await Promise.all(afterBroadcastResult.promises);\n }\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n * This method's functionality is identical to `commitTransaction()` because\n * the transaction lifecycle is handled within the Expo transaction object.\n * Issuing separate statements for `COMMIT` or `ROLLBACK` aren't necessary.\n */\n async rollbackTransaction(): Promise<void> {\n if (!this.isTransactionActive && typeof this.transaction === \"undefined\")\n throw new TransactionNotStartedError();\n\n const beforeBroadcastResult = new BroadcasterResult();\n this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);\n if (beforeBroadcastResult.promises.length > 0) await Promise.all(beforeBroadcastResult.promises);\n\n this.isTransactionActive = false;\n this.transaction = undefined;\n\n const afterBroadcastResult = new BroadcasterResult();\n this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);\n if (afterBroadcastResult.promises.length > 0) await Promise.all(afterBroadcastResult.promises);\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(query: string, parameters?: any[], useStructuredResult = false): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n return new Promise<any>(async (ok, fail) => {\n const databaseConnection = await this.connect();\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n // All Expo SQL queries are executed in a transaction context\n databaseConnection.transaction((transaction: ITransaction) => {\n if (typeof this.transaction === \"undefined\") {\n this.startTransaction();\n this.transaction = transaction;\n }\n this.transaction.executeSql(query, parameters, (t: ITransaction, raw: IResultSet) => {\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) {\n this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n }\n\n const result = new QueryResult();\n\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId;\n }\n\n if (raw?.hasOwnProperty('rowsAffected')) {\n result.affected = raw.rowsAffected;\n }\n\n if (raw?.hasOwnProperty('rows')) {\n let resultSet = [];\n for (let i = 0; i < raw.rows.length; i++) {\n resultSet.push(raw.rows.item(i));\n }\n\n result.raw = resultSet;\n result.records = resultSet;\n }\n\n if (useStructuredResult) {\n ok(result);\n } else {\n ok(result.raw);\n }\n }, (t: ITransaction, err: any) => {\n this.driver.connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n });\n }, (err: any) => {\n this.rollbackTransaction();\n }, () => {\n this.isTransactionActive = false;\n this.transaction = undefined;\n });\n });\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/expo/ExpoQueryRunner.ts"],"names":[],"mappings":"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","file":"ExpoQueryRunner.js","sourcesContent":["import {QueryRunnerAlreadyReleasedError} from \"../../error/QueryRunnerAlreadyReleasedError\";\nimport {QueryFailedError} from \"../../error/QueryFailedError\";\nimport {AbstractSqliteQueryRunner} from \"../sqlite-abstract/AbstractSqliteQueryRunner\";\nimport {TransactionAlreadyStartedError} from \"../../error/TransactionAlreadyStartedError\";\nimport {TransactionNotStartedError} from \"../../error/TransactionNotStartedError\";\nimport {ExpoDriver} from \"./ExpoDriver\";\nimport {Broadcaster} from \"../../subscriber/Broadcaster\";\nimport { QueryResult } from \"../../query-runner/QueryResult\";\n\n// Needed to satisfy the Typescript compiler\ninterface IResultSet {\n insertId: number | undefined;\n rowsAffected: number;\n rows: {\n length: number;\n item: (idx: number) => any;\n _array: any[];\n };\n}\ninterface ITransaction {\n executeSql: (\n sql: string,\n args: any[] | undefined,\n ok: (tsx: ITransaction, resultSet: IResultSet) => void,\n fail: (tsx: ITransaction, err: any) => void\n ) => void;\n}\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class ExpoQueryRunner extends AbstractSqliteQueryRunner {\n\n /**\n * Database driver used by connection.\n */\n driver: ExpoDriver;\n\n /**\n * Database transaction object\n */\n private transaction?: ITransaction;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: ExpoDriver) {\n super();\n this.driver = driver;\n this.connection = driver.connection;\n this.broadcaster = new Broadcaster(this);\n }\n\n /**\n * Starts transaction. Within Expo, all database operations happen in a\n * transaction context, so issuing a `BEGIN TRANSACTION` command is\n * redundant and will result in the following error:\n *\n * `Error: Error code 1: cannot start a transaction within a transaction`\n *\n * Instead, we keep track of a `Transaction` object in `this.transaction`\n * and continue using the same object until we wish to commit the\n * transaction.\n */\n async startTransaction(): Promise<void> {\n if (this.isTransactionActive && typeof this.transaction !== \"undefined\")\n throw new TransactionAlreadyStartedError();\n\n await this.broadcaster.broadcast('BeforeTransactionStart');\n\n this.isTransactionActive = true;\n\n await this.broadcaster.broadcast('AfterTransactionStart');\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n * Since Expo will automatically commit the transaction once all the\n * callbacks of the transaction object have been completed, \"committing\" a\n * transaction in this driver's context means that we delete the transaction\n * object and set the stage for the next transaction.\n */\n async commitTransaction(): Promise<void> {\n if (!this.isTransactionActive && typeof this.transaction === \"undefined\")\n throw new TransactionNotStartedError();\n\n await this.broadcaster.broadcast('BeforeTransactionCommit');\n\n this.isTransactionActive = false;\n this.transaction = undefined;\n\n await this.broadcaster.broadcast('AfterTransactionCommit');\n }\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n * This method's functionality is identical to `commitTransaction()` because\n * the transaction lifecycle is handled within the Expo transaction object.\n * Issuing separate statements for `COMMIT` or `ROLLBACK` aren't necessary.\n */\n async rollbackTransaction(): Promise<void> {\n if (!this.isTransactionActive && typeof this.transaction === \"undefined\")\n throw new TransactionNotStartedError();\n\n await this.broadcaster.broadcast('BeforeTransactionRollback');\n\n this.isTransactionActive = false;\n this.transaction = undefined;\n\n await this.broadcaster.broadcast('AfterTransactionRollback');\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(query: string, parameters?: any[], useStructuredResult = false): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n return new Promise<any>(async (ok, fail) => {\n const databaseConnection = await this.connect();\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n // All Expo SQL queries are executed in a transaction context\n databaseConnection.transaction((transaction: ITransaction) => {\n if (typeof this.transaction === \"undefined\") {\n this.startTransaction();\n this.transaction = transaction;\n }\n this.transaction.executeSql(query, parameters, (t: ITransaction, raw: IResultSet) => {\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) {\n this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n }\n\n const result = new QueryResult();\n\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId;\n }\n\n if (raw?.hasOwnProperty('rowsAffected')) {\n result.affected = raw.rowsAffected;\n }\n\n if (raw?.hasOwnProperty('rows')) {\n let resultSet = [];\n for (let i = 0; i < raw.rows.length; i++) {\n resultSet.push(raw.rows.item(i));\n }\n\n result.raw = resultSet;\n result.records = resultSet;\n }\n\n if (useStructuredResult) {\n ok(result);\n } else {\n ok(result.raw);\n }\n }, (t: ITransaction, err: any) => {\n this.driver.connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n });\n }, (err: any) => {\n this.rollbackTransaction();\n }, () => {\n this.isTransactionActive = false;\n this.transaction = undefined;\n });\n });\n }\n}\n"],"sourceRoot":"../.."}
@@ -38,6 +38,11 @@ export interface MongoConnectionOptions extends BaseConnectionOptions {
38
38
  * Database name to connect to.
39
39
  */
40
40
  readonly database?: string;
41
+ /**
42
+ * The driver object
43
+ * This defaults to require("mongodb")
44
+ */
45
+ readonly driver?: any;
41
46
  /**
42
47
  * Set the maximum poolSize for each individual server or proxy connection.
43
48
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/mongodb/MongoConnectionOptions.ts"],"names":[],"mappings":"","file":"MongoConnectionOptions.js","sourcesContent":["import {BaseConnectionOptions} from \"../../connection/BaseConnectionOptions\";\nimport {ReadPreference} from \"./typings\";\n\n/**\n * MongoDB specific connection options.\n * Synced with http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html\n */\nexport interface MongoConnectionOptions extends BaseConnectionOptions {\n\n /**\n * Database type.\n */\n readonly type: \"mongodb\";\n\n /**\n * Connection url where perform connection to.\n */\n readonly url?: string;\n\n /**\n * Database host.\n */\n readonly host?: string;\n \n /**\n * Database host replica set.\n */\n readonly hostReplicaSet?: string;\n\n /**\n * Database host port.\n */\n readonly port?: number;\n\n /**\n * Database username.\n */\n readonly username?: string;\n\n /**\n * Database password.\n */\n readonly password?: string;\n\n /**\n * Database name to connect to.\n */\n readonly database?: string;\n\n /**\n * Set the maximum poolSize for each individual server or proxy connection.\n */\n readonly poolSize?: number;\n\n /**\n * Use ssl connection (needs to have a mongod server with ssl support). Default: false\n */\n readonly ssl?: boolean;\n\n /**\n * Validate mongod server certificate against ca (needs to have a mongod server with ssl support, 2.4 or higher).\n * Default: true\n */\n readonly sslValidate?: boolean;\n\n /**\n * Array of valid certificates either as Buffers or Strings\n * (needs to have a mongod server with ssl support, 2.4 or higher).\n */\n readonly sslCA?: string[]|Buffer[];\n\n /**\n * String or buffer containing the certificate we wish to present\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslCert?: string|Buffer;\n\n /**\n * String or buffer containing the certificate private key we wish to present\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslKey?: string;\n\n /**\n * String or buffer containing the certificate password\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslPass?: string|Buffer;\n\n /**\n * SSL Certificate revocation list binary buffer\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslCRL?: string|Buffer;\n\n /**\n * Reconnect on error. Default: true\n */\n readonly autoReconnect?: boolean;\n\n /**\n * TCP Socket NoDelay option. Default: true\n */\n readonly noDelay?: boolean;\n\n /**\n * The number of milliseconds to wait before initiating keepAlive on the TCP socket. Default: 30000\n */\n readonly keepAlive?: number;\n\n /**\n * TCP Connection timeout setting. Default: 30000\n */\n readonly connectTimeoutMS?: number;\n\n /**\n * Version of IP stack. Can be 4, 6.\n * If undefined, will attempt to connect with IPv6, and will fall back to IPv4 on failure\n */\n readonly family?: number;\n\n /**\n * TCP Socket timeout setting. Default: 360000\n */\n readonly socketTimeoutMS?: number;\n\n /**\n * Server attempt to reconnect #times. Default 30\n */\n readonly reconnectTries?: number;\n\n /**\n * Server will wait #milliseconds between retries. Default 1000\n */\n readonly reconnectInterval?: number;\n\n /**\n * Control if high availability monitoring runs for Replicaset or Mongos proxies. Default true\n */\n readonly ha?: boolean;\n\n /**\n * The High availability period for replicaset inquiry. Default: 10000\n */\n readonly haInterval?: number;\n\n /**\n * The name of the replicaset to connect to\n */\n readonly replicaSet?: string;\n\n /**\n * Sets the range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms).\n * Default: 15\n */\n readonly acceptableLatencyMS?: number;\n\n /**\n * Sets the range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms).\n * Default: 15\n */\n readonly secondaryAcceptableLatencyMS?: number;\n\n /**\n * Sets if the driver should connect even if no primary is available. Default: false\n */\n readonly connectWithNoPrimary?: boolean;\n\n /**\n * If the database authentication is dependent on another databaseName.\n */\n readonly authSource?: string;\n\n /**\n * The write concern.\n */\n readonly w?: string|number;\n\n /**\n * The write concern timeout value.\n */\n readonly wtimeout?: number;\n\n /**\n * Specify a journal write concern. Default: false\n */\n readonly j?: boolean;\n\n /**\n * Force server to assign _id values instead of driver. Default: false\n */\n readonly forceServerObjectId?: boolean;\n\n /**\n * Serialize functions on any object. Default: false\n */\n readonly serializeFunctions?: boolean;\n\n /**\n * Specify if the BSON serializer should ignore undefined fields. Default: false\n */\n readonly ignoreUndefined?: boolean;\n\n /**\n * Return document results as raw BSON buffers. Default: false\n */\n readonly raw?: boolean;\n\n /**\n * Promotes Long values to number if they fit inside the 53 bits resolution. Default: true\n */\n readonly promoteLongs?: boolean;\n\n /**\n * Promotes Binary BSON values to native Node Buffers. Default: false\n */\n readonly promoteBuffers?: boolean;\n\n /**\n * Promotes BSON values to native types where possible, set to false to only receive wrapper types. Default: true\n */\n readonly promoteValues?: boolean;\n\n /**\n * Enable the wrapping of the callback in the current domain, disabled by default to avoid perf hit. Default: false\n */\n readonly domainsEnabled?: boolean;\n\n /**\n * Sets a cap on how many operations the driver will buffer up before giving up on getting a working connection,\n * default is -1 which is unlimited.\n */\n readonly bufferMaxEntries?: number;\n\n /**\n * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY,\n * ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).\n */\n readonly readPreference?: ReadPreference|string;\n\n /**\n * A primary key factory object for generation of custom _id keys.\n */\n readonly pkFactory?: any;\n\n /**\n * A Promise library class the application wishes to use such as Bluebird, must be ES6 compatible.\n */\n readonly promiseLibrary?: any;\n\n /**\n * Specify a read concern for the collection. (only MongoDB 3.2 or higher supported).\n */\n readonly readConcern?: any;\n\n /**\n * Specify a maxStalenessSeconds value for secondary reads, minimum is 90 seconds\n */\n readonly maxStalenessSeconds?: number;\n\n /**\n * Specify the log level used by the driver logger (error/warn/info/debug).\n */\n readonly loggerLevel?: \"error\"|\"warn\"|\"info\"|\"debug\";\n\n // Do not overwrite BaseConnectionOptions.logger\n // readonly logger?: any;\n\n /**\n * Ensure we check server identify during SSL, set to false to disable checking. Only works for Node 0.12.x or higher. You can pass in a boolean or your own checkServerIdentity override function\n * Default: true\n */\n readonly checkServerIdentity?: boolean|Function;\n\n /**\n * Validate MongoClient passed in options for correctness. Default: false\n */\n readonly validateOptions?: boolean|any;\n\n /**\n * The name of the application that created this MongoClient instance. MongoDB 3.4 and newer will print this value in the server log upon establishing each connection. It is also recorded in the slow query log and profile collections\n */\n readonly appname?: string;\n\n /**\n * Sets the authentication mechanism that MongoDB will use to authenticate the connection\n */\n readonly authMechanism?: string;\n\n /**\n * Type of compression to use: snappy or zlib\n */\n readonly compression?: any;\n\n /**\n * Specify a file sync write concern. Default: false\n */\n readonly fsync?: boolean;\n\n /**\n * Read preference tags\n */\n readonly readPreferenceTags?: any[];\n\n /**\n * The number of retries for a tailable cursor. Default: 5\n */\n readonly numberOfRetries?: number;\n\n /**\n * Enable auto reconnecting for single server instances. Default: true\n */\n readonly auto_reconnect?: boolean;\n\n /**\n * Enable command monitoring for this client. Default: false\n */\n readonly monitorCommands?: boolean;\n\n /**\n * If present, the connection pool will be initialized with minSize connections, and will never dip below minSize connections\n */\n readonly minSize?: number;\n\n /**\n * Determines whether or not to use the new url parser. Default: false\n */\n readonly useNewUrlParser?: boolean;\n\n /**\n * Determines whether or not to use the new Server Discovery and Monitoring engine. Default: false\n * https://github.com/mongodb/node-mongodb-native/releases/tag/v3.2.1\n */\n readonly useUnifiedTopology?: boolean;\n \n /**\n * Automatic Client-Side Field Level Encryption configuration.\n */\n readonly autoEncryption?: any;\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/mongodb/MongoConnectionOptions.ts"],"names":[],"mappings":"","file":"MongoConnectionOptions.js","sourcesContent":["import {BaseConnectionOptions} from \"../../connection/BaseConnectionOptions\";\nimport {ReadPreference} from \"./typings\";\n\n/**\n * MongoDB specific connection options.\n * Synced with http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html\n */\nexport interface MongoConnectionOptions extends BaseConnectionOptions {\n\n /**\n * Database type.\n */\n readonly type: \"mongodb\";\n\n /**\n * Connection url where perform connection to.\n */\n readonly url?: string;\n\n /**\n * Database host.\n */\n readonly host?: string;\n\n /**\n * Database host replica set.\n */\n readonly hostReplicaSet?: string;\n\n /**\n * Database host port.\n */\n readonly port?: number;\n\n /**\n * Database username.\n */\n readonly username?: string;\n\n /**\n * Database password.\n */\n readonly password?: string;\n\n /**\n * Database name to connect to.\n */\n readonly database?: string;\n\n /**\n * The driver object\n * This defaults to require(\"mongodb\")\n */\n readonly driver?: any;\n\n /**\n * Set the maximum poolSize for each individual server or proxy connection.\n */\n readonly poolSize?: number;\n\n /**\n * Use ssl connection (needs to have a mongod server with ssl support). Default: false\n */\n readonly ssl?: boolean;\n\n /**\n * Validate mongod server certificate against ca (needs to have a mongod server with ssl support, 2.4 or higher).\n * Default: true\n */\n readonly sslValidate?: boolean;\n\n /**\n * Array of valid certificates either as Buffers or Strings\n * (needs to have a mongod server with ssl support, 2.4 or higher).\n */\n readonly sslCA?: string[]|Buffer[];\n\n /**\n * String or buffer containing the certificate we wish to present\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslCert?: string|Buffer;\n\n /**\n * String or buffer containing the certificate private key we wish to present\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslKey?: string;\n\n /**\n * String or buffer containing the certificate password\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslPass?: string|Buffer;\n\n /**\n * SSL Certificate revocation list binary buffer\n * (needs to have a mongod server with ssl support, 2.4 or higher)\n */\n readonly sslCRL?: string|Buffer;\n\n /**\n * Reconnect on error. Default: true\n */\n readonly autoReconnect?: boolean;\n\n /**\n * TCP Socket NoDelay option. Default: true\n */\n readonly noDelay?: boolean;\n\n /**\n * The number of milliseconds to wait before initiating keepAlive on the TCP socket. Default: 30000\n */\n readonly keepAlive?: number;\n\n /**\n * TCP Connection timeout setting. Default: 30000\n */\n readonly connectTimeoutMS?: number;\n\n /**\n * Version of IP stack. Can be 4, 6.\n * If undefined, will attempt to connect with IPv6, and will fall back to IPv4 on failure\n */\n readonly family?: number;\n\n /**\n * TCP Socket timeout setting. Default: 360000\n */\n readonly socketTimeoutMS?: number;\n\n /**\n * Server attempt to reconnect #times. Default 30\n */\n readonly reconnectTries?: number;\n\n /**\n * Server will wait #milliseconds between retries. Default 1000\n */\n readonly reconnectInterval?: number;\n\n /**\n * Control if high availability monitoring runs for Replicaset or Mongos proxies. Default true\n */\n readonly ha?: boolean;\n\n /**\n * The High availability period for replicaset inquiry. Default: 10000\n */\n readonly haInterval?: number;\n\n /**\n * The name of the replicaset to connect to\n */\n readonly replicaSet?: string;\n\n /**\n * Sets the range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms).\n * Default: 15\n */\n readonly acceptableLatencyMS?: number;\n\n /**\n * Sets the range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms).\n * Default: 15\n */\n readonly secondaryAcceptableLatencyMS?: number;\n\n /**\n * Sets if the driver should connect even if no primary is available. Default: false\n */\n readonly connectWithNoPrimary?: boolean;\n\n /**\n * If the database authentication is dependent on another databaseName.\n */\n readonly authSource?: string;\n\n /**\n * The write concern.\n */\n readonly w?: string|number;\n\n /**\n * The write concern timeout value.\n */\n readonly wtimeout?: number;\n\n /**\n * Specify a journal write concern. Default: false\n */\n readonly j?: boolean;\n\n /**\n * Force server to assign _id values instead of driver. Default: false\n */\n readonly forceServerObjectId?: boolean;\n\n /**\n * Serialize functions on any object. Default: false\n */\n readonly serializeFunctions?: boolean;\n\n /**\n * Specify if the BSON serializer should ignore undefined fields. Default: false\n */\n readonly ignoreUndefined?: boolean;\n\n /**\n * Return document results as raw BSON buffers. Default: false\n */\n readonly raw?: boolean;\n\n /**\n * Promotes Long values to number if they fit inside the 53 bits resolution. Default: true\n */\n readonly promoteLongs?: boolean;\n\n /**\n * Promotes Binary BSON values to native Node Buffers. Default: false\n */\n readonly promoteBuffers?: boolean;\n\n /**\n * Promotes BSON values to native types where possible, set to false to only receive wrapper types. Default: true\n */\n readonly promoteValues?: boolean;\n\n /**\n * Enable the wrapping of the callback in the current domain, disabled by default to avoid perf hit. Default: false\n */\n readonly domainsEnabled?: boolean;\n\n /**\n * Sets a cap on how many operations the driver will buffer up before giving up on getting a working connection,\n * default is -1 which is unlimited.\n */\n readonly bufferMaxEntries?: number;\n\n /**\n * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY,\n * ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).\n */\n readonly readPreference?: ReadPreference|string;\n\n /**\n * A primary key factory object for generation of custom _id keys.\n */\n readonly pkFactory?: any;\n\n /**\n * A Promise library class the application wishes to use such as Bluebird, must be ES6 compatible.\n */\n readonly promiseLibrary?: any;\n\n /**\n * Specify a read concern for the collection. (only MongoDB 3.2 or higher supported).\n */\n readonly readConcern?: any;\n\n /**\n * Specify a maxStalenessSeconds value for secondary reads, minimum is 90 seconds\n */\n readonly maxStalenessSeconds?: number;\n\n /**\n * Specify the log level used by the driver logger (error/warn/info/debug).\n */\n readonly loggerLevel?: \"error\"|\"warn\"|\"info\"|\"debug\";\n\n // Do not overwrite BaseConnectionOptions.logger\n // readonly logger?: any;\n\n /**\n * Ensure we check server identify during SSL, set to false to disable checking. Only works for Node 0.12.x or higher. You can pass in a boolean or your own checkServerIdentity override function\n * Default: true\n */\n readonly checkServerIdentity?: boolean|Function;\n\n /**\n * Validate MongoClient passed in options for correctness. Default: false\n */\n readonly validateOptions?: boolean|any;\n\n /**\n * The name of the application that created this MongoClient instance. MongoDB 3.4 and newer will print this value in the server log upon establishing each connection. It is also recorded in the slow query log and profile collections\n */\n readonly appname?: string;\n\n /**\n * Sets the authentication mechanism that MongoDB will use to authenticate the connection\n */\n readonly authMechanism?: string;\n\n /**\n * Type of compression to use: snappy or zlib\n */\n readonly compression?: any;\n\n /**\n * Specify a file sync write concern. Default: false\n */\n readonly fsync?: boolean;\n\n /**\n * Read preference tags\n */\n readonly readPreferenceTags?: any[];\n\n /**\n * The number of retries for a tailable cursor. Default: 5\n */\n readonly numberOfRetries?: number;\n\n /**\n * Enable auto reconnecting for single server instances. Default: true\n */\n readonly auto_reconnect?: boolean;\n\n /**\n * Enable command monitoring for this client. Default: false\n */\n readonly monitorCommands?: boolean;\n\n /**\n * If present, the connection pool will be initialized with minSize connections, and will never dip below minSize connections\n */\n readonly minSize?: number;\n\n /**\n * Determines whether or not to use the new url parser. Default: false\n */\n readonly useNewUrlParser?: boolean;\n\n /**\n * Determines whether or not to use the new Server Discovery and Monitoring engine. Default: false\n * https://github.com/mongodb/node-mongodb-native/releases/tag/v3.2.1\n */\n readonly useUnifiedTopology?: boolean;\n\n /**\n * Automatic Client-Side Field Level Encryption configuration.\n */\n readonly autoEncryption?: any;\n}\n"],"sourceRoot":"../.."}
@@ -185,9 +185,9 @@ var MongoDriver = /** @class */ (function () {
185
185
  * Closes connection with the database.
186
186
  */
187
187
  MongoDriver.prototype.disconnect = function () {
188
- return tslib_1.__awaiter(this, void 0, void 0, function () {
188
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
189
189
  var _this = this;
190
- return tslib_1.__generator(this, function (_a) {
190
+ return (0, tslib_1.__generator)(this, function (_a) {
191
191
  return [2 /*return*/, new Promise(function (ok, fail) {
192
192
  if (!_this.queryRunner)
193
193
  return fail(new ConnectionIsNotSetError_1.ConnectionIsNotSetError("mongodb"));
@@ -369,7 +369,8 @@ var MongoDriver = /** @class */ (function () {
369
369
  */
370
370
  MongoDriver.prototype.loadDependencies = function () {
371
371
  try {
372
- this.mongodb = PlatformTools_1.PlatformTools.load("mongodb"); // try to load native driver dynamically
372
+ var mongodb = this.options.driver || PlatformTools_1.PlatformTools.load("mongodb");
373
+ this.mongodb = mongodb;
373
374
  }
374
375
  catch (e) {
375
376
  throw new DriverPackageNotInstalledError_1.DriverPackageNotInstalledError("MongoDB", "mongodb");