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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (657) hide show
  1. package/README.md +60 -59
  2. package/browser/connection/ConnectionMetadataBuilder.js +4 -4
  3. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  4. package/browser/connection/ConnectionOptionsReader.js +2 -1
  5. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  6. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +1 -1
  7. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  8. package/browser/decorator/transaction/Transaction.js +3 -3
  9. package/browser/decorator/transaction/Transaction.js.map +1 -1
  10. package/browser/driver/DriverUtils.js +1 -1
  11. package/browser/driver/DriverUtils.js.map +1 -1
  12. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  13. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  14. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +6 -5
  15. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  16. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +19 -48
  17. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  18. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  19. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  20. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +2 -1
  21. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  22. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +17 -46
  23. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  24. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  25. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  26. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -3
  27. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  28. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  29. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  30. package/browser/driver/cockroachdb/CockroachDriver.js +5 -4
  31. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  32. package/browser/driver/cockroachdb/CockroachQueryRunner.js +46 -77
  33. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  34. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  35. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  36. package/browser/driver/cordova/CordovaDriver.js +2 -1
  37. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  38. package/browser/driver/expo/ExpoQueryRunner.js +12 -43
  39. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  40. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  41. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  42. package/browser/driver/mongodb/MongoDriver.js +2 -1
  43. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  44. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  45. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  46. package/browser/driver/mysql/MysqlDriver.js +4 -2
  47. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  48. package/browser/driver/mysql/MysqlQueryRunner.js +24 -54
  49. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  50. package/browser/driver/nativescript/NativescriptQueryRunner.js +45 -37
  51. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  52. package/browser/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  53. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  54. package/browser/driver/oracle/OracleDriver.js +5 -4
  55. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  56. package/browser/driver/oracle/OracleQueryRunner.js +20 -48
  57. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  58. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  59. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  60. package/browser/driver/postgres/PostgresDriver.js +6 -5
  61. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  62. package/browser/driver/postgres/PostgresQueryRunner.js +21 -51
  63. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  64. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  65. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  66. package/browser/driver/react-native/ReactNativeDriver.js +2 -1
  67. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  68. package/browser/driver/sap/SapConnectionOptions.d.ts +16 -6
  69. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  70. package/browser/driver/sap/SapDriver.js +6 -3
  71. package/browser/driver/sap/SapDriver.js.map +1 -1
  72. package/browser/driver/sap/SapQueryRunner.js +20 -50
  73. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  74. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  75. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  76. package/browser/driver/sqlite/SqliteDriver.js +4 -3
  77. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  78. package/browser/driver/sqlite/SqliteQueryRunner.js +16 -8
  79. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  80. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +19 -49
  81. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  82. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  83. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  84. package/browser/driver/sqljs/SqljsDriver.js +4 -2
  85. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  86. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  87. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  88. package/browser/driver/sqlserver/SqlServerDriver.js +7 -6
  89. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  90. package/browser/driver/sqlserver/SqlServerQueryRunner.js +84 -116
  91. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  92. package/browser/entity-manager/MongoEntityManager.js +8 -13
  93. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  94. package/browser/find-options/FindOptionsUtils.js +1 -1
  95. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  96. package/browser/metadata/ColumnMetadata.js +4 -4
  97. package/browser/metadata/ColumnMetadata.js.map +1 -1
  98. package/browser/metadata/EmbeddedMetadata.js +1 -1
  99. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  100. package/browser/metadata/EntityMetadata.js +1 -1
  101. package/browser/metadata/EntityMetadata.js.map +1 -1
  102. package/browser/metadata/RelationMetadata.js +4 -4
  103. package/browser/metadata/RelationMetadata.js.map +1 -1
  104. package/browser/metadata-builder/EntityMetadataBuilder.js +5 -5
  105. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  106. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  107. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  108. package/browser/naming-strategy/DefaultNamingStrategy.js +5 -5
  109. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  110. package/browser/persistence/Subject.js +1 -1
  111. package/browser/persistence/Subject.js.map +1 -1
  112. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  113. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  114. package/browser/persistence/SubjectExecutor.js +1 -1
  115. package/browser/persistence/SubjectExecutor.js.map +1 -1
  116. package/browser/persistence/SubjectTopoligicalSorter.js +5 -5
  117. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  118. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  119. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  120. package/browser/query-builder/DeleteQueryBuilder.js +3 -10
  121. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  122. package/browser/query-builder/InsertQueryBuilder.js +4 -6
  123. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  124. package/browser/query-builder/QueryBuilder.js +9 -9
  125. package/browser/query-builder/QueryBuilder.js.map +1 -1
  126. package/browser/query-builder/RelationLoader.js +2 -2
  127. package/browser/query-builder/RelationLoader.js.map +1 -1
  128. package/browser/query-builder/RelationRemover.js +6 -6
  129. package/browser/query-builder/RelationRemover.js.map +1 -1
  130. package/browser/query-builder/SelectQueryBuilder.js +14 -14
  131. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  132. package/browser/query-builder/SoftDeleteQueryBuilder.js +3 -10
  133. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  134. package/browser/query-builder/UpdateQueryBuilder.js +5 -12
  135. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  136. package/browser/query-builder/relation-id/RelationIdLoader.js +1 -1
  137. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  138. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  139. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  140. package/browser/query-runner/BaseQueryRunner.js +2 -2
  141. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  142. package/browser/query-runner/QueryLock.js +1 -1
  143. package/browser/query-runner/QueryLock.js.map +1 -1
  144. package/browser/repository/BaseEntity.js +1 -1
  145. package/browser/repository/BaseEntity.js.map +1 -1
  146. package/browser/repository/Repository.js +1 -1
  147. package/browser/repository/Repository.js.map +1 -1
  148. package/browser/repository/TreeRepository.js +2 -2
  149. package/browser/repository/TreeRepository.js.map +1 -1
  150. package/browser/schema-builder/table/TableCheck.js +1 -1
  151. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  152. package/browser/schema-builder/table/TableForeignKey.js +2 -2
  153. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  154. package/browser/schema-builder/table/TableIndex.js +1 -1
  155. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  156. package/browser/schema-builder/table/TableUnique.js +1 -1
  157. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  158. package/browser/subscriber/Broadcaster.d.ts +23 -2
  159. package/browser/subscriber/Broadcaster.js +35 -2
  160. package/browser/subscriber/Broadcaster.js.map +1 -1
  161. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  162. package/browser/subscriber/BroadcasterResult.js +19 -0
  163. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  164. package/cache/DbQueryResultCache.js +12 -12
  165. package/cache/RedisQueryResultCache.js +12 -12
  166. package/cli.js +1 -6
  167. package/cli.js.map +1 -1
  168. package/commands/CacheClearCommand.js +4 -4
  169. package/commands/CacheClearCommand.js.map +1 -1
  170. package/commands/CommandUtils.js +10 -10
  171. package/commands/CommandUtils.js.map +1 -1
  172. package/commands/EntityCreateCommand.js +3 -3
  173. package/commands/EntityCreateCommand.js.map +1 -1
  174. package/commands/InitCommand.js +5 -5
  175. package/commands/InitCommand.js.map +1 -1
  176. package/commands/MigrationCreateCommand.js +5 -5
  177. package/commands/MigrationCreateCommand.js.map +1 -1
  178. package/commands/MigrationGenerateCommand.js +7 -7
  179. package/commands/MigrationGenerateCommand.js.map +1 -1
  180. package/commands/MigrationRevertCommand.js +4 -4
  181. package/commands/MigrationRevertCommand.js.map +1 -1
  182. package/commands/MigrationRunCommand.js +5 -5
  183. package/commands/MigrationRunCommand.js.map +1 -1
  184. package/commands/MigrationShowCommand.js +5 -5
  185. package/commands/MigrationShowCommand.js.map +1 -1
  186. package/commands/QueryCommand.js +4 -4
  187. package/commands/QueryCommand.js.map +1 -1
  188. package/commands/SchemaDropCommand.js +4 -4
  189. package/commands/SchemaDropCommand.js.map +1 -1
  190. package/commands/SchemaLogCommand.js +5 -5
  191. package/commands/SchemaLogCommand.js.map +1 -1
  192. package/commands/SchemaSyncCommand.js +4 -4
  193. package/commands/SchemaSyncCommand.js.map +1 -1
  194. package/commands/SubscriberCreateCommand.js +3 -3
  195. package/commands/SubscriberCreateCommand.js.map +1 -1
  196. package/commands/VersionCommand.js +3 -3
  197. package/commands/VersionCommand.js.map +1 -1
  198. package/connection/Connection.js +19 -19
  199. package/connection/Connection.js.map +1 -1
  200. package/connection/ConnectionMetadataBuilder.js +11 -11
  201. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  202. package/connection/ConnectionOptionsReader.js +11 -10
  203. package/connection/ConnectionOptionsReader.js.map +1 -1
  204. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -2
  205. package/connection/options-reader/ConnectionOptionsXmlReader.js +3 -3
  206. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  207. package/connection/options-reader/ConnectionOptionsYmlReader.js +4 -4
  208. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  209. package/decorator/Check.js +1 -1
  210. package/decorator/Check.js.map +1 -1
  211. package/decorator/EntityRepository.js +1 -1
  212. package/decorator/EntityRepository.js.map +1 -1
  213. package/decorator/Exclusion.js +1 -1
  214. package/decorator/Exclusion.js.map +1 -1
  215. package/decorator/Generated.js +1 -1
  216. package/decorator/Generated.js.map +1 -1
  217. package/decorator/Index.js +1 -1
  218. package/decorator/Index.js.map +1 -1
  219. package/decorator/Unique.js +1 -1
  220. package/decorator/Unique.js.map +1 -1
  221. package/decorator/columns/Column.js +4 -4
  222. package/decorator/columns/Column.js.map +1 -1
  223. package/decorator/columns/CreateDateColumn.js +1 -1
  224. package/decorator/columns/CreateDateColumn.js.map +1 -1
  225. package/decorator/columns/DeleteDateColumn.js +1 -1
  226. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  227. package/decorator/columns/ObjectIdColumn.js +1 -1
  228. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  229. package/decorator/columns/PrimaryColumn.js +2 -2
  230. package/decorator/columns/PrimaryColumn.js.map +1 -1
  231. package/decorator/columns/PrimaryGeneratedColumn.js +2 -2
  232. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  233. package/decorator/columns/UpdateDateColumn.js +1 -1
  234. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  235. package/decorator/columns/VersionColumn.js +1 -1
  236. package/decorator/columns/VersionColumn.js.map +1 -1
  237. package/decorator/columns/ViewColumn.js +1 -1
  238. package/decorator/columns/ViewColumn.js.map +1 -1
  239. package/decorator/entity/ChildEntity.js +2 -2
  240. package/decorator/entity/ChildEntity.js.map +1 -1
  241. package/decorator/entity/Entity.js +1 -1
  242. package/decorator/entity/Entity.js.map +1 -1
  243. package/decorator/entity/TableInheritance.js +1 -1
  244. package/decorator/entity/TableInheritance.js.map +1 -1
  245. package/decorator/entity-view/ViewEntity.js +1 -1
  246. package/decorator/entity-view/ViewEntity.js.map +1 -1
  247. package/decorator/listeners/AfterInsert.js +1 -1
  248. package/decorator/listeners/AfterInsert.js.map +1 -1
  249. package/decorator/listeners/AfterLoad.js +1 -1
  250. package/decorator/listeners/AfterLoad.js.map +1 -1
  251. package/decorator/listeners/AfterRemove.js +1 -1
  252. package/decorator/listeners/AfterRemove.js.map +1 -1
  253. package/decorator/listeners/AfterUpdate.js +1 -1
  254. package/decorator/listeners/AfterUpdate.js.map +1 -1
  255. package/decorator/listeners/BeforeInsert.js +1 -1
  256. package/decorator/listeners/BeforeInsert.js.map +1 -1
  257. package/decorator/listeners/BeforeRemove.js +1 -1
  258. package/decorator/listeners/BeforeRemove.js.map +1 -1
  259. package/decorator/listeners/BeforeUpdate.js +1 -1
  260. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  261. package/decorator/listeners/EventSubscriber.js +1 -1
  262. package/decorator/listeners/EventSubscriber.js.map +1 -1
  263. package/decorator/relations/JoinColumn.js +1 -1
  264. package/decorator/relations/JoinColumn.js.map +1 -1
  265. package/decorator/relations/JoinTable.js +1 -1
  266. package/decorator/relations/JoinTable.js.map +1 -1
  267. package/decorator/relations/ManyToMany.js +1 -1
  268. package/decorator/relations/ManyToMany.js.map +1 -1
  269. package/decorator/relations/ManyToOne.js +1 -1
  270. package/decorator/relations/ManyToOne.js.map +1 -1
  271. package/decorator/relations/OneToMany.js +1 -1
  272. package/decorator/relations/OneToMany.js.map +1 -1
  273. package/decorator/relations/OneToOne.js +1 -1
  274. package/decorator/relations/OneToOne.js.map +1 -1
  275. package/decorator/relations/RelationCount.js +1 -1
  276. package/decorator/relations/RelationCount.js.map +1 -1
  277. package/decorator/relations/RelationId.js +1 -1
  278. package/decorator/relations/RelationId.js.map +1 -1
  279. package/decorator/transaction/Transaction.js +7 -7
  280. package/decorator/transaction/Transaction.js.map +1 -1
  281. package/decorator/transaction/TransactionManager.js +1 -1
  282. package/decorator/transaction/TransactionManager.js.map +1 -1
  283. package/decorator/transaction/TransactionRepository.js +1 -1
  284. package/decorator/transaction/TransactionRepository.js.map +1 -1
  285. package/decorator/tree/Tree.js +1 -1
  286. package/decorator/tree/Tree.js.map +1 -1
  287. package/decorator/tree/TreeChildren.js +1 -1
  288. package/decorator/tree/TreeChildren.js.map +1 -1
  289. package/decorator/tree/TreeLevelColumn.js +1 -1
  290. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  291. package/decorator/tree/TreeParent.js +1 -1
  292. package/decorator/tree/TreeParent.js.map +1 -1
  293. package/driver/DriverUtils.js +9 -9
  294. package/driver/DriverUtils.js.map +1 -1
  295. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -1
  296. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  297. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  298. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  299. package/driver/aurora-data-api/AuroraDataApiDriver.js +12 -11
  300. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  301. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +146 -175
  302. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  303. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  304. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  305. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +10 -9
  306. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  307. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +29 -58
  308. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  309. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  310. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  311. package/driver/better-sqlite3/BetterSqlite3Driver.js +12 -11
  312. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  313. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +5 -5
  314. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  315. package/driver/capacitor/CapacitorDriver.js +7 -7
  316. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  317. package/driver/capacitor/CapacitorQueryRunner.js +5 -5
  318. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  319. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  320. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  321. package/driver/cockroachdb/CockroachDriver.js +15 -14
  322. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  323. package/driver/cockroachdb/CockroachQueryRunner.js +180 -211
  324. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  325. package/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  326. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  327. package/driver/cordova/CordovaDriver.js +5 -4
  328. package/driver/cordova/CordovaDriver.js.map +1 -1
  329. package/driver/cordova/CordovaQueryRunner.js +13 -13
  330. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  331. package/driver/expo/ExpoDriver.js +3 -3
  332. package/driver/expo/ExpoDriver.js.map +1 -1
  333. package/driver/expo/ExpoQueryRunner.js +23 -54
  334. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  335. package/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  336. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  337. package/driver/mongodb/MongoDriver.js +4 -3
  338. package/driver/mongodb/MongoDriver.js.map +1 -1
  339. package/driver/mongodb/MongoQueryRunner.js +178 -178
  340. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  341. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  342. package/driver/mysql/MysqlDriver.js +9 -7
  343. package/driver/mysql/MysqlDriver.js.map +1 -1
  344. package/driver/mysql/MysqlQueryRunner.js +152 -182
  345. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  346. package/driver/nativescript/NativescriptDriver.js +3 -3
  347. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  348. package/driver/nativescript/NativescriptQueryRunner.js +48 -40
  349. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  350. package/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  351. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  352. package/driver/oracle/OracleDriver.js +13 -12
  353. package/driver/oracle/OracleDriver.js.map +1 -1
  354. package/driver/oracle/OracleQueryRunner.js +143 -171
  355. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  356. package/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  357. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  358. package/driver/postgres/PostgresDriver.js +24 -23
  359. package/driver/postgres/PostgresDriver.js.map +1 -1
  360. package/driver/postgres/PostgresQueryRunner.js +169 -199
  361. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  362. package/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  363. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  364. package/driver/react-native/ReactNativeDriver.js +5 -4
  365. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  366. package/driver/react-native/ReactNativeQueryRunner.js +3 -3
  367. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  368. package/driver/sap/SapConnectionOptions.d.ts +16 -6
  369. package/driver/sap/SapConnectionOptions.js.map +1 -1
  370. package/driver/sap/SapDriver.js +11 -8
  371. package/driver/sap/SapDriver.js.map +1 -1
  372. package/driver/sap/SapQueryRunner.js +153 -183
  373. package/driver/sap/SapQueryRunner.js.map +1 -1
  374. package/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  375. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  376. package/driver/sqlite/SqliteDriver.js +12 -11
  377. package/driver/sqlite/SqliteDriver.js.map +1 -1
  378. package/driver/sqlite/SqliteQueryRunner.js +21 -13
  379. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  380. package/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -4
  381. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +138 -168
  382. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  383. package/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  384. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  385. package/driver/sqljs/SqljsDriver.js +17 -15
  386. package/driver/sqljs/SqljsDriver.js.map +1 -1
  387. package/driver/sqljs/SqljsQueryRunner.js +9 -9
  388. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  389. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  390. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  391. package/driver/sqlserver/SqlServerDriver.js +13 -12
  392. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  393. package/driver/sqlserver/SqlServerQueryRunner.js +220 -252
  394. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  395. package/entity-manager/EntityManager.js +30 -30
  396. package/entity-manager/EntityManager.js.map +1 -1
  397. package/entity-manager/MongoEntityManager.js +23 -28
  398. package/entity-manager/MongoEntityManager.js.map +1 -1
  399. package/entity-manager/SqljsEntityManager.js +5 -5
  400. package/entity-manager/SqljsEntityManager.js.map +1 -1
  401. package/entity-schema/EntitySchemaTransformer.js +1 -1
  402. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  403. package/error/AlreadyHasActiveConnectionError.js +1 -1
  404. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  405. package/error/CannotAttachTreeChildrenEntityError.js +1 -1
  406. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  407. package/error/CannotConnectAlreadyConnectedError.js +1 -1
  408. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  409. package/error/CannotCreateEntityIdMapError.js +1 -1
  410. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  411. package/error/CannotDetermineEntityError.js +1 -1
  412. package/error/CannotDetermineEntityError.js.map +1 -1
  413. package/error/CannotExecuteNotConnectedError.js +1 -1
  414. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  415. package/error/CannotGetEntityManagerNotConnectedError.js +1 -1
  416. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  417. package/error/CannotReflectMethodParameterTypeError.js +1 -1
  418. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  419. package/error/CircularRelationsError.js +1 -1
  420. package/error/CircularRelationsError.js.map +1 -1
  421. package/error/ColumnTypeUndefinedError.js +1 -1
  422. package/error/ColumnTypeUndefinedError.js.map +1 -1
  423. package/error/ConnectionIsNotSetError.js +1 -1
  424. package/error/ConnectionIsNotSetError.js.map +1 -1
  425. package/error/ConnectionNotFoundError.js +1 -1
  426. package/error/ConnectionNotFoundError.js.map +1 -1
  427. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
  428. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  429. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
  430. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  431. package/error/CustomRepositoryNotFoundError.js +1 -1
  432. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  433. package/error/DataTypeNotSupportedError.js +1 -1
  434. package/error/DataTypeNotSupportedError.js.map +1 -1
  435. package/error/DriverOptionNotSetError.js +1 -1
  436. package/error/DriverOptionNotSetError.js.map +1 -1
  437. package/error/DriverPackageNotInstalledError.js +1 -1
  438. package/error/DriverPackageNotInstalledError.js.map +1 -1
  439. package/error/EntityColumnNotFound.js +1 -1
  440. package/error/EntityColumnNotFound.js.map +1 -1
  441. package/error/EntityMetadataNotFoundError.js +1 -1
  442. package/error/EntityMetadataNotFoundError.js.map +1 -1
  443. package/error/EntityNotFoundError.js +1 -1
  444. package/error/EntityNotFoundError.js.map +1 -1
  445. package/error/FindRelationsNotFoundError.js +1 -1
  446. package/error/FindRelationsNotFoundError.js.map +1 -1
  447. package/error/InitializedRelationError.js +1 -1
  448. package/error/InitializedRelationError.js.map +1 -1
  449. package/error/InsertValuesMissingError.js +1 -1
  450. package/error/InsertValuesMissingError.js.map +1 -1
  451. package/error/LimitOnUpdateNotSupportedError.js +1 -1
  452. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  453. package/error/LockNotSupportedOnGivenDriverError.js +1 -1
  454. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  455. package/error/MetadataAlreadyExistsError.js +1 -1
  456. package/error/MetadataAlreadyExistsError.js.map +1 -1
  457. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -1
  458. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  459. package/error/MissingDeleteDateColumnError.js +1 -1
  460. package/error/MissingDeleteDateColumnError.js.map +1 -1
  461. package/error/MissingDriverError.js +1 -1
  462. package/error/MissingDriverError.js.map +1 -1
  463. package/error/MissingJoinColumnError.js +1 -1
  464. package/error/MissingJoinColumnError.js.map +1 -1
  465. package/error/MissingJoinTableError.js +1 -1
  466. package/error/MissingJoinTableError.js.map +1 -1
  467. package/error/MissingPrimaryColumnError.js +1 -1
  468. package/error/MissingPrimaryColumnError.js.map +1 -1
  469. package/error/MustBeEntityError.js +1 -1
  470. package/error/MustBeEntityError.js.map +1 -1
  471. package/error/NamingStrategyNotFoundError.js +1 -1
  472. package/error/NamingStrategyNotFoundError.js.map +1 -1
  473. package/error/NestedSetMultipleRootError.js +1 -1
  474. package/error/NestedSetMultipleRootError.js.map +1 -1
  475. package/error/NoConnectionForRepositoryError.js +1 -1
  476. package/error/NoConnectionForRepositoryError.js.map +1 -1
  477. package/error/NoConnectionOptionError.js +1 -1
  478. package/error/NoConnectionOptionError.js.map +1 -1
  479. package/error/NoNeedToReleaseEntityManagerError.js +1 -1
  480. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  481. package/error/NoVersionOrUpdateDateColumnError.js +1 -1
  482. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  483. package/error/OffsetWithoutLimitNotSupportedError.js +1 -1
  484. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  485. package/error/OptimisticLockCanNotBeUsedError.js +1 -1
  486. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  487. package/error/OptimisticLockVersionMismatchError.js +1 -1
  488. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  489. package/error/PersistedEntityNotFoundError.js +1 -1
  490. package/error/PersistedEntityNotFoundError.js.map +1 -1
  491. package/error/PessimisticLockTransactionRequiredError.js +1 -1
  492. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  493. package/error/PrimaryColumnCannotBeNullableError.js +1 -1
  494. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  495. package/error/QueryFailedError.js +3 -3
  496. package/error/QueryFailedError.js.map +1 -1
  497. package/error/QueryRunnerAlreadyReleasedError.js +1 -1
  498. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  499. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -1
  500. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  501. package/error/RepositoryNotFoundError.js +1 -1
  502. package/error/RepositoryNotFoundError.js.map +1 -1
  503. package/error/RepositoryNotTreeError.js +1 -1
  504. package/error/RepositoryNotTreeError.js.map +1 -1
  505. package/error/ReturningStatementNotSupportedError.js +1 -1
  506. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  507. package/error/SubjectRemovedAndUpdatedError.js +1 -1
  508. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  509. package/error/SubjectWithoutIdentifierError.js +1 -1
  510. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  511. package/error/TransactionAlreadyStartedError.js +1 -1
  512. package/error/TransactionAlreadyStartedError.js.map +1 -1
  513. package/error/TransactionNotStartedError.js +1 -1
  514. package/error/TransactionNotStartedError.js.map +1 -1
  515. package/error/TreeRepositoryNotSupportedError.js +1 -1
  516. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  517. package/error/TypeORMError.js +1 -1
  518. package/error/TypeORMError.js.map +1 -1
  519. package/error/UpdateValuesMissingError.js +1 -1
  520. package/error/UpdateValuesMissingError.js.map +1 -1
  521. package/error/UsingJoinColumnIsNotAllowedError.js +1 -1
  522. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  523. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
  524. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  525. package/error/UsingJoinTableIsNotAllowedError.js +1 -1
  526. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  527. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
  528. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  529. package/error/index.js +62 -62
  530. package/error/index.js.map +1 -1
  531. package/find-options/FindOptionsUtils.js +4 -4
  532. package/find-options/FindOptionsUtils.js.map +1 -1
  533. package/globals.js +7 -7
  534. package/globals.js.map +1 -1
  535. package/index.js +102 -102
  536. package/index.js.map +1 -1
  537. package/logger/DebugLogger.js +9 -9
  538. package/logger/DebugLogger.js.map +1 -1
  539. package/logger/FileLogger.js +1 -1
  540. package/logger/FileLogger.js.map +1 -1
  541. package/metadata/ColumnMetadata.js +4 -4
  542. package/metadata/ColumnMetadata.js.map +1 -1
  543. package/metadata/EmbeddedMetadata.js +1 -1
  544. package/metadata/EmbeddedMetadata.js.map +1 -1
  545. package/metadata/EntityMetadata.js +2 -2
  546. package/metadata/EntityMetadata.js.map +1 -1
  547. package/metadata/RelationMetadata.js +4 -4
  548. package/metadata/RelationMetadata.js.map +1 -1
  549. package/metadata-builder/EntityMetadataBuilder.js +5 -5
  550. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  551. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  552. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  553. package/migration/MigrationExecutor.js +33 -33
  554. package/migration/MigrationExecutor.js.map +1 -1
  555. package/naming-strategy/DefaultNamingStrategy.js +10 -10
  556. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  557. package/package.json +1 -1
  558. package/persistence/EntityPersistExecutor.js +5 -5
  559. package/persistence/EntityPersistExecutor.js.map +1 -1
  560. package/persistence/Subject.js +1 -1
  561. package/persistence/Subject.js.map +1 -1
  562. package/persistence/SubjectDatabaseEntityLoader.js +6 -6
  563. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  564. package/persistence/SubjectExecutor.js +31 -31
  565. package/persistence/SubjectExecutor.js.map +1 -1
  566. package/persistence/SubjectTopoligicalSorter.js +5 -5
  567. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  568. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
  569. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  570. package/persistence/tree/ClosureSubjectExecutor.js +13 -13
  571. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  572. package/persistence/tree/MaterializedPathSubjectExecutor.js +5 -5
  573. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  574. package/persistence/tree/NestedSetSubjectExecutor.js +14 -14
  575. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  576. package/platform/PlatformTools.js +8 -8
  577. package/platform/PlatformTools.js.map +1 -1
  578. package/query-builder/DeleteQueryBuilder.js +7 -14
  579. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  580. package/query-builder/InsertQueryBuilder.js +9 -11
  581. package/query-builder/InsertQueryBuilder.js.map +1 -1
  582. package/query-builder/JoinAttribute.js +1 -1
  583. package/query-builder/JoinAttribute.js.map +1 -1
  584. package/query-builder/QueryBuilder.js +37 -37
  585. package/query-builder/QueryBuilder.js.map +1 -1
  586. package/query-builder/QueryBuilderUtils.js +1 -1
  587. package/query-builder/QueryBuilderUtils.js.map +1 -1
  588. package/query-builder/QueryExpressionMap.js +3 -3
  589. package/query-builder/QueryExpressionMap.js.map +1 -1
  590. package/query-builder/RelationLoader.js +2 -2
  591. package/query-builder/RelationLoader.js.map +1 -1
  592. package/query-builder/RelationQueryBuilder.js +13 -13
  593. package/query-builder/RelationQueryBuilder.js.map +1 -1
  594. package/query-builder/RelationRemover.js +12 -12
  595. package/query-builder/RelationRemover.js.map +1 -1
  596. package/query-builder/RelationUpdater.js +2 -2
  597. package/query-builder/ReturningResultsEntityUpdator.js +6 -6
  598. package/query-builder/SelectQueryBuilder.js +43 -43
  599. package/query-builder/SelectQueryBuilder.js.map +1 -1
  600. package/query-builder/SoftDeleteQueryBuilder.js +7 -14
  601. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  602. package/query-builder/UpdateQueryBuilder.js +10 -17
  603. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  604. package/query-builder/relation-count/RelationCountAttribute.js +2 -2
  605. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  606. package/query-builder/relation-count/RelationCountLoader.js +4 -4
  607. package/query-builder/relation-id/RelationIdAttribute.js +1 -1
  608. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  609. package/query-builder/relation-id/RelationIdLoader.js +5 -5
  610. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  611. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  612. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  613. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  614. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  615. package/query-runner/BaseQueryRunner.js +25 -25
  616. package/query-runner/BaseQueryRunner.js.map +1 -1
  617. package/query-runner/QueryLock.js +3 -3
  618. package/query-runner/QueryLock.js.map +1 -1
  619. package/repository/AbstractRepository.js +1 -1
  620. package/repository/AbstractRepository.js.map +1 -1
  621. package/repository/BaseEntity.js +4 -4
  622. package/repository/BaseEntity.js.map +1 -1
  623. package/repository/MongoRepository.js +1 -1
  624. package/repository/MongoRepository.js.map +1 -1
  625. package/repository/Repository.js +1 -1
  626. package/repository/Repository.js.map +1 -1
  627. package/repository/TreeRepository.js +7 -7
  628. package/repository/TreeRepository.js.map +1 -1
  629. package/schema-builder/MongoSchemaBuilder.js +2 -2
  630. package/schema-builder/RdbmsSchemaBuilder.js +95 -95
  631. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  632. package/schema-builder/table/Table.js +1 -1
  633. package/schema-builder/table/Table.js.map +1 -1
  634. package/schema-builder/table/TableCheck.js +1 -1
  635. package/schema-builder/table/TableCheck.js.map +1 -1
  636. package/schema-builder/table/TableForeignKey.js +2 -2
  637. package/schema-builder/table/TableForeignKey.js.map +1 -1
  638. package/schema-builder/table/TableIndex.js +1 -1
  639. package/schema-builder/table/TableIndex.js.map +1 -1
  640. package/schema-builder/table/TableUnique.js +1 -1
  641. package/schema-builder/table/TableUnique.js.map +1 -1
  642. package/subscriber/Broadcaster.d.ts +23 -2
  643. package/subscriber/Broadcaster.js +35 -2
  644. package/subscriber/Broadcaster.js.map +1 -1
  645. package/subscriber/BroadcasterResult.d.ts +4 -0
  646. package/subscriber/BroadcasterResult.js +19 -0
  647. package/subscriber/BroadcasterResult.js.map +1 -1
  648. package/util/DateUtils.js +1 -1
  649. package/util/DateUtils.js.map +1 -1
  650. package/util/DirectoryExportedClassesLoader.js +1 -1
  651. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  652. package/util/ObjectUtils.js +2 -2
  653. package/util/ObjectUtils.js.map +1 -1
  654. package/util/OrmUtils.js +2 -2
  655. package/util/OrmUtils.js.map +1 -1
  656. package/util/StringUtils.js +2 -2
  657. package/util/StringUtils.js.map +1 -1
@@ -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":["../browser/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":["../browser/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":"../.."}
@@ -79,7 +79,8 @@ var CordovaDriver = /** @class */ (function (_super) {
79
79
  */
80
80
  CordovaDriver.prototype.loadDependencies = function () {
81
81
  try {
82
- this.sqlite = window.sqlitePlugin;
82
+ var sqlite = this.options.driver || window.sqlitePlugin;
83
+ this.sqlite = sqlite;
83
84
  }
84
85
  catch (e) {
85
86
  throw new DriverPackageNotInstalledError("Cordova-SQLite", "cordova-sqlite-storage");
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/driver/cordova/CordovaDriver.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAC,8BAA8B,EAAC,MAAM,4CAA4C,CAAC;AAU1F;IAAmC,iCAAoB;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,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,uBAAuB,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,kBAAkB,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,8BAA8B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;SACxF;IACL,CAAC;IACL,oBAAC;AAAD,CA3FA,AA2FC,CA3FkC,oBAAoB,GA2FtD","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":["../browser/src/driver/cordova/CordovaDriver.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAC,8BAA8B,EAAC,MAAM,4CAA4C,CAAC;AAU1F;IAAmC,iCAAoB;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,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,uBAAuB,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,kBAAkB,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,8BAA8B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;SACxF;IACL,CAAC;IACL,oBAAC;AAAD,CA5FA,AA4FC,CA5FkC,oBAAoB,GA4FtD","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":"../.."}
@@ -5,7 +5,6 @@ import { AbstractSqliteQueryRunner } from "../sqlite-abstract/AbstractSqliteQuer
5
5
  import { TransactionAlreadyStartedError } from "../../error/TransactionAlreadyStartedError";
6
6
  import { TransactionNotStartedError } from "../../error/TransactionNotStartedError";
7
7
  import { Broadcaster } from "../../subscriber/Broadcaster";
8
- import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
9
8
  import { QueryResult } from "../../query-runner/QueryResult";
10
9
  /**
11
10
  * Runs queries on a single sqlite database connection.
@@ -35,29 +34,19 @@ var ExpoQueryRunner = /** @class */ (function (_super) {
35
34
  */
36
35
  ExpoQueryRunner.prototype.startTransaction = function () {
37
36
  return __awaiter(this, void 0, void 0, function () {
38
- var beforeBroadcastResult, afterBroadcastResult;
39
37
  return __generator(this, function (_a) {
40
38
  switch (_a.label) {
41
39
  case 0:
42
40
  if (this.isTransactionActive && typeof this.transaction !== "undefined")
43
41
  throw new TransactionAlreadyStartedError();
44
- beforeBroadcastResult = new BroadcasterResult();
45
- this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
46
- if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
47
- return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
42
+ return [4 /*yield*/, this.broadcaster.broadcast('BeforeTransactionStart')];
48
43
  case 1:
49
44
  _a.sent();
50
- _a.label = 2;
51
- case 2:
52
45
  this.isTransactionActive = true;
53
- afterBroadcastResult = new BroadcasterResult();
54
- this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
55
- if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];
56
- return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
57
- case 3:
46
+ return [4 /*yield*/, this.broadcaster.broadcast('AfterTransactionStart')];
47
+ case 2:
58
48
  _a.sent();
59
- _a.label = 4;
60
- case 4: return [2 /*return*/];
49
+ return [2 /*return*/];
61
50
  }
62
51
  });
63
52
  });
@@ -72,30 +61,20 @@ var ExpoQueryRunner = /** @class */ (function (_super) {
72
61
  */
73
62
  ExpoQueryRunner.prototype.commitTransaction = function () {
74
63
  return __awaiter(this, void 0, void 0, function () {
75
- var beforeBroadcastResult, afterBroadcastResult;
76
64
  return __generator(this, function (_a) {
77
65
  switch (_a.label) {
78
66
  case 0:
79
67
  if (!this.isTransactionActive && typeof this.transaction === "undefined")
80
68
  throw new TransactionNotStartedError();
81
- beforeBroadcastResult = new BroadcasterResult();
82
- this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
83
- if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
84
- return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
69
+ return [4 /*yield*/, this.broadcaster.broadcast('BeforeTransactionCommit')];
85
70
  case 1:
86
71
  _a.sent();
87
- _a.label = 2;
88
- case 2:
89
72
  this.isTransactionActive = false;
90
73
  this.transaction = undefined;
91
- afterBroadcastResult = new BroadcasterResult();
92
- this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
93
- if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];
94
- return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
95
- case 3:
74
+ return [4 /*yield*/, this.broadcaster.broadcast('AfterTransactionCommit')];
75
+ case 2:
96
76
  _a.sent();
97
- _a.label = 4;
98
- case 4: return [2 /*return*/];
77
+ return [2 /*return*/];
99
78
  }
100
79
  });
101
80
  });
@@ -109,30 +88,20 @@ var ExpoQueryRunner = /** @class */ (function (_super) {
109
88
  */
110
89
  ExpoQueryRunner.prototype.rollbackTransaction = function () {
111
90
  return __awaiter(this, void 0, void 0, function () {
112
- var beforeBroadcastResult, afterBroadcastResult;
113
91
  return __generator(this, function (_a) {
114
92
  switch (_a.label) {
115
93
  case 0:
116
94
  if (!this.isTransactionActive && typeof this.transaction === "undefined")
117
95
  throw new TransactionNotStartedError();
118
- beforeBroadcastResult = new BroadcasterResult();
119
- this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
120
- if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
121
- return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
96
+ return [4 /*yield*/, this.broadcaster.broadcast('BeforeTransactionRollback')];
122
97
  case 1:
123
98
  _a.sent();
124
- _a.label = 2;
125
- case 2:
126
99
  this.isTransactionActive = false;
127
100
  this.transaction = undefined;
128
- afterBroadcastResult = new BroadcasterResult();
129
- this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
130
- if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];
131
- return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
132
- case 3:
101
+ return [4 /*yield*/, this.broadcaster.broadcast('AfterTransactionRollback')];
102
+ case 2:
133
103
  _a.sent();
134
- _a.label = 4;
135
- case 4: return [2 /*return*/];
104
+ return [2 /*return*/];
136
105
  }
137
106
  });
138
107
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/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 {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":["../browser/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":["../browser/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":["../browser/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":"../.."}
@@ -366,7 +366,8 @@ var MongoDriver = /** @class */ (function () {
366
366
  */
367
367
  MongoDriver.prototype.loadDependencies = function () {
368
368
  try {
369
- this.mongodb = PlatformTools.load("mongodb"); // try to load native driver dynamically
369
+ var mongodb = this.options.driver || PlatformTools.load("mongodb");
370
+ this.mongodb = mongodb;
370
371
  }
371
372
  catch (e) {
372
373
  throw new DriverPackageNotInstalledError("MongoDB", "mongodb");
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/driver/mongodb/MongoDriver.ts"],"names":[],"mappings":"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","file":"MongoDriver.js","sourcesContent":["import {Driver} from \"../Driver\";\nimport {ConnectionIsNotSetError} from \"../../error/ConnectionIsNotSetError\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\nimport {MongoQueryRunner} from \"./MongoQueryRunner\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {Connection} from \"../../connection/Connection\";\nimport {MongoConnectionOptions} from \"./MongoConnectionOptions\";\nimport {MappedColumnTypes} from \"../types/MappedColumnTypes\";\nimport {ColumnType} from \"../types/ColumnTypes\";\nimport {MongoSchemaBuilder} from \"../../schema-builder/MongoSchemaBuilder\";\nimport {DataTypeDefaults} from \"../types/DataTypeDefaults\";\nimport {TableColumn} from \"../../schema-builder/table/TableColumn\";\nimport {ConnectionOptions} from \"../../connection/ConnectionOptions\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\nimport {ObjectUtils} from \"../../util/ObjectUtils\";\nimport {ApplyValueTransformers} from \"../../util/ApplyValueTransformers\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\nimport {DriverUtils} from \"../DriverUtils\";\nimport { TypeORMError } from \"../../error\";\nimport { Table } from \"../../schema-builder/table/Table\";\nimport { View } from \"../../schema-builder/view/View\";\nimport { TableForeignKey } from \"../../schema-builder/table/TableForeignKey\";\n\n/**\n * Organizes communication with MongoDB.\n */\nexport class MongoDriver implements Driver {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Underlying mongodb library.\n */\n mongodb: any;\n\n /**\n * Mongodb does not require to dynamically create query runner each time,\n * because it does not have a regular connection pool as RDBMS systems have.\n */\n queryRunner?: MongoQueryRunner;\n\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection options.\n */\n options: MongoConnectionOptions;\n\n /**\n * Master database used to perform all write queries.\n */\n database?: string;\n\n /**\n * Indicates if replication is enabled.\n */\n isReplicated: boolean = false;\n\n /**\n * Indicates if tree tables are supported by this driver.\n */\n treeSupport = false;\n\n /**\n * Mongodb does not need to have column types because they are not used in schema sync.\n */\n supportedDataTypes: ColumnType[] = [];\n\n /**\n * Gets list of spatial column data types.\n */\n spatialTypes: ColumnType[] = [];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withLengthColumnTypes: ColumnType[] = [];\n\n /**\n * Gets list of column data types that support precision by a driver.\n */\n withPrecisionColumnTypes: ColumnType[] = [];\n\n /**\n * Gets list of column data types that support scale by a driver.\n */\n withScaleColumnTypes: ColumnType[] = [];\n\n /**\n * Mongodb does not need to have a strong defined mapped column types because they are not used in schema sync.\n */\n mappedDataTypes: MappedColumnTypes = {\n createDate: \"int\",\n createDateDefault: \"\",\n updateDate: \"int\",\n updateDateDefault: \"\",\n deleteDate: \"int\",\n deleteDateNullable: true,\n version: \"int\",\n treeLevel: \"int\",\n migrationId: \"int\",\n migrationName: \"int\",\n migrationTimestamp: \"int\",\n cacheId: \"int\",\n cacheIdentifier: \"int\",\n cacheTime: \"int\",\n cacheDuration: \"int\",\n cacheQuery: \"int\",\n cacheResult: \"int\",\n metadataType: \"int\",\n metadataDatabase: \"int\",\n metadataSchema: \"int\",\n metadataTable: \"int\",\n metadataName: \"int\",\n metadataValue: \"int\",\n };\n\n /**\n * Default values of length, precision and scale depends on column data type.\n * Used in the cases when length/precision/scale is not specified by user.\n */\n dataTypeDefaults: DataTypeDefaults;\n\n /**\n * No documentation specifying a maximum length for identifiers could be found\n * for MongoDB.\n */\n maxAliasLength?: number;\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Valid mongo connection options\n * NOTE: Keep sync with MongoConnectionOptions\n * Sync with http://mongodb.github.io/node-mongodb-native/3.5/api/MongoClient.html\n */\n protected validOptionNames: string[] = [\n \"poolSize\",\n \"ssl\",\n \"sslValidate\",\n \"sslCA\",\n \"sslCert\",\n \"sslKey\",\n \"sslPass\",\n \"sslCRL\",\n \"autoReconnect\",\n \"noDelay\",\n \"keepAlive\",\n \"keepAliveInitialDelay\",\n \"connectTimeoutMS\",\n \"family\",\n \"socketTimeoutMS\",\n \"reconnectTries\",\n \"reconnectInterval\",\n \"ha\",\n \"haInterval\",\n \"replicaSet\",\n \"secondaryAcceptableLatencyMS\",\n \"acceptableLatencyMS\",\n \"connectWithNoPrimary\",\n \"authSource\",\n \"w\",\n \"wtimeout\",\n \"j\",\n \"writeConcern\",\n \"forceServerObjectId\",\n \"serializeFunctions\",\n \"ignoreUndefined\",\n \"raw\",\n \"bufferMaxEntries\",\n \"readPreference\",\n \"pkFactory\",\n \"promiseLibrary\",\n \"readConcern\",\n \"maxStalenessSeconds\",\n \"loggerLevel\",\n // Do not overwrite BaseConnectionOptions.logger\n // \"logger\",\n \"promoteValues\",\n \"promoteBuffers\",\n \"promoteLongs\",\n \"domainsEnabled\",\n \"checkServerIdentity\",\n \"validateOptions\",\n \"appname\",\n // omit auth - we are building url from username and password\n // \"auth\"\n \"authMechanism\",\n \"compression\",\n \"fsync\",\n \"readPreferenceTags\",\n \"numberOfRetries\",\n \"auto_reconnect\",\n \"minSize\",\n \"monitorCommands\",\n \"useNewUrlParser\",\n \"useUnifiedTopology\",\n \"autoEncryption\",\n \"retryWrites\"\n ];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection) {\n this.options = connection.options as MongoConnectionOptions;\n\n // validate options to make sure everything is correct and driver will be able to establish connection\n this.validateOptions(connection.options);\n\n // load mongodb package\n this.loadDependencies();\n\n this.database = DriverUtils.buildMongoDBDriverOptions(this.options).database;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n */\n connect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n const options = DriverUtils.buildMongoDBDriverOptions(this.options);\n\n this.mongodb.MongoClient.connect(\n this.buildConnectionUrl(options),\n this.buildConnectionOptions(options),\n (err: any, client: any) => {\n if (err) return fail(err);\n\n this.queryRunner = new MongoQueryRunner(this.connection, client);\n ObjectUtils.assign(this.queryRunner, { manager: this.connection.manager });\n ok();\n });\n });\n }\n\n afterConnect(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Closes connection with the database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n if (!this.queryRunner)\n return fail(new ConnectionIsNotSetError(\"mongodb\"));\n\n const handler = (err: any) => err ? fail(err) : ok();\n this.queryRunner.databaseConnection.close(handler);\n this.queryRunner = undefined;\n });\n }\n\n /**\n * Creates a schema builder used to build and sync a schema.\n */\n createSchemaBuilder() {\n return new MongoSchemaBuilder(this.connection);\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode) {\n return this.queryRunner!;\n }\n\n /**\n * Replaces parameters in the given sql with special escaping character\n * and an array of parameter names to be passed to a query.\n */\n escapeQueryWithParameters(sql: string, parameters: ObjectLiteral, nativeParameters: ObjectLiteral): [string, any[]] {\n throw new TypeORMError(`This operation is not supported by Mongodb driver.`);\n }\n\n /**\n * Escapes a column name.\n */\n escape(columnName: string): string {\n return columnName;\n }\n\n /**\n * Build full table name with database name, schema name and table name.\n * E.g. myDB.mySchema.myTable\n */\n buildTableName(tableName: string, schema?: string, database?: string): string {\n return tableName;\n }\n\n /**\n * Parse a target table name or other types and return a normalized table definition.\n */\n parseTableName(target: EntityMetadata | Table | View | TableForeignKey | string): { tableName: string; schema?: string; database?: string } {\n if (target instanceof EntityMetadata) {\n return {\n tableName: target.tableName\n };\n }\n\n if (target instanceof Table || target instanceof View) {\n return {\n tableName: target.name\n };\n }\n\n if (target instanceof TableForeignKey) {\n return {\n tableName: target.referencedTableName\n };\n }\n\n return {\n tableName: target\n };\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type and metadata.\n */\n preparePersistentValue(value: any, columnMetadata: ColumnMetadata): any {\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformTo(columnMetadata.transformer, value);\n return value;\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type or metadata.\n */\n prepareHydratedValue(value: any, columnMetadata: ColumnMetadata): any {\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformFrom(columnMetadata.transformer, value);\n return value;\n }\n\n /**\n * Creates a database type from a given column metadata.\n */\n normalizeType(column: { type?: ColumnType, length?: number | string, precision?: number|null, scale?: number }): string {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n normalizeDefault(columnMetadata: ColumnMetadata): string | undefined {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Normalizes \"isUnique\" value of the column.\n */\n normalizeIsUnique(column: ColumnMetadata): boolean {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Calculates column length taking into account the default length values.\n */\n getColumnLength(column: ColumnMetadata): string {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n createFullType(column: TableColumn): string {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Obtains a new database connection to a master server.\n * Used for replication.\n * If replication is not setup then returns default connection's database connection.\n */\n obtainMasterConnection(): Promise<any> {\n return Promise.resolve();\n }\n\n /**\n * Obtains a new database connection to a slave server.\n * Used for replication.\n * If replication is not setup then returns master (default) connection's database connection.\n */\n obtainSlaveConnection(): Promise<any> {\n return Promise.resolve();\n }\n\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n createGeneratedMap(metadata: EntityMetadata, insertedId: any) {\n return metadata.objectIdColumn!.createValueMap(insertedId);\n }\n\n /**\n * Differentiate columns of this table and columns from the given column metadatas columns\n * and returns only changed.\n */\n findChangedColumns(tableColumns: TableColumn[], columnMetadatas: ColumnMetadata[]): ColumnMetadata[] {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Returns true if driver supports RETURNING / OUTPUT statement.\n */\n isReturningSqlSupported(): boolean {\n return false;\n }\n\n /**\n * Returns true if driver supports uuid values generation on its own.\n */\n isUUIDGenerationSupported(): boolean {\n return false;\n }\n\n /**\n * Returns true if driver supports fulltext indices.\n */\n isFullTextColumnTypeSupported(): boolean {\n return false;\n }\n\n /**\n * Creates an escaped parameter.\n */\n createParameter(parameterName: string, index: number): string {\n return \"\";\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Validate driver options to make sure everything is correct and driver will be able to establish connection.\n */\n protected validateOptions(options: ConnectionOptions) { // todo: fix\n // if (!options.url) {\n // if (!options.database)\n // throw new DriverOptionNotSetError(\"database\");\n // }\n }\n\n /**\n * Loads all driver dependencies.\n */\n protected loadDependencies(): any {\n try {\n this.mongodb = PlatformTools.load(\"mongodb\"); // try to load native driver dynamically\n\n } catch (e) {\n throw new DriverPackageNotInstalledError(\"MongoDB\", \"mongodb\");\n }\n }\n\n /**\n * Builds connection url that is passed to underlying driver to perform connection to the mongodb database.\n */\n protected buildConnectionUrl(options: { [key: string]: any }): string {\n const schemaUrlPart = options.type.toLowerCase();\n const credentialsUrlPart = (options.username && options.password)\n ? `${options.username}:${options.password}@`\n : \"\";\n\n\n const portUrlPart = (schemaUrlPart === \"mongodb+srv\")\n ? \"\"\n : `:${options.port || \"27017\"}`;\n\n let connectionString: string;\n if(options.replicaSet) {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.hostReplicaSet || options.host + portUrlPart || \"127.0.0.1\" + portUrlPart}/${options.database || \"\"}?replicaSet=${options.replicaSet}${options.tls ? \"&tls=true\" : \"\"}`;\n } else {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.host || \"127.0.0.1\"}${portUrlPart}/${options.database || \"\"}${options.tls ? \"?tls=true\" : \"\"}`;\n }\n\n return connectionString;\n }\n\n /**\n * Build connection options from MongoConnectionOptions\n */\n protected buildConnectionOptions(options: { [key: string]: any }): any {\n const mongoOptions: any = {};\n\n for (let index = 0; index < this.validOptionNames.length; index++) {\n const optionName = this.validOptionNames[index];\n\n if (options.extra && optionName in options.extra) {\n mongoOptions[optionName] = options.extra[optionName];\n } else if (optionName in options) {\n mongoOptions[optionName] = options[optionName];\n }\n }\n\n return mongoOptions;\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/driver/mongodb/MongoDriver.ts"],"names":[],"mappings":"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","file":"MongoDriver.js","sourcesContent":["import {Driver} from \"../Driver\";\nimport {ConnectionIsNotSetError} from \"../../error/ConnectionIsNotSetError\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\nimport {MongoQueryRunner} from \"./MongoQueryRunner\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {Connection} from \"../../connection/Connection\";\nimport {MongoConnectionOptions} from \"./MongoConnectionOptions\";\nimport {MappedColumnTypes} from \"../types/MappedColumnTypes\";\nimport {ColumnType} from \"../types/ColumnTypes\";\nimport {MongoSchemaBuilder} from \"../../schema-builder/MongoSchemaBuilder\";\nimport {DataTypeDefaults} from \"../types/DataTypeDefaults\";\nimport {TableColumn} from \"../../schema-builder/table/TableColumn\";\nimport {ConnectionOptions} from \"../../connection/ConnectionOptions\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\nimport {ObjectUtils} from \"../../util/ObjectUtils\";\nimport {ApplyValueTransformers} from \"../../util/ApplyValueTransformers\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\nimport {DriverUtils} from \"../DriverUtils\";\nimport { TypeORMError } from \"../../error\";\nimport { Table } from \"../../schema-builder/table/Table\";\nimport { View } from \"../../schema-builder/view/View\";\nimport { TableForeignKey } from \"../../schema-builder/table/TableForeignKey\";\n\n/**\n * Organizes communication with MongoDB.\n */\nexport class MongoDriver implements Driver {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Underlying mongodb library.\n */\n mongodb: any;\n\n /**\n * Mongodb does not require to dynamically create query runner each time,\n * because it does not have a regular connection pool as RDBMS systems have.\n */\n queryRunner?: MongoQueryRunner;\n\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection options.\n */\n options: MongoConnectionOptions;\n\n /**\n * Master database used to perform all write queries.\n */\n database?: string;\n\n /**\n * Indicates if replication is enabled.\n */\n isReplicated: boolean = false;\n\n /**\n * Indicates if tree tables are supported by this driver.\n */\n treeSupport = false;\n\n /**\n * Mongodb does not need to have column types because they are not used in schema sync.\n */\n supportedDataTypes: ColumnType[] = [];\n\n /**\n * Gets list of spatial column data types.\n */\n spatialTypes: ColumnType[] = [];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withLengthColumnTypes: ColumnType[] = [];\n\n /**\n * Gets list of column data types that support precision by a driver.\n */\n withPrecisionColumnTypes: ColumnType[] = [];\n\n /**\n * Gets list of column data types that support scale by a driver.\n */\n withScaleColumnTypes: ColumnType[] = [];\n\n /**\n * Mongodb does not need to have a strong defined mapped column types because they are not used in schema sync.\n */\n mappedDataTypes: MappedColumnTypes = {\n createDate: \"int\",\n createDateDefault: \"\",\n updateDate: \"int\",\n updateDateDefault: \"\",\n deleteDate: \"int\",\n deleteDateNullable: true,\n version: \"int\",\n treeLevel: \"int\",\n migrationId: \"int\",\n migrationName: \"int\",\n migrationTimestamp: \"int\",\n cacheId: \"int\",\n cacheIdentifier: \"int\",\n cacheTime: \"int\",\n cacheDuration: \"int\",\n cacheQuery: \"int\",\n cacheResult: \"int\",\n metadataType: \"int\",\n metadataDatabase: \"int\",\n metadataSchema: \"int\",\n metadataTable: \"int\",\n metadataName: \"int\",\n metadataValue: \"int\",\n };\n\n /**\n * Default values of length, precision and scale depends on column data type.\n * Used in the cases when length/precision/scale is not specified by user.\n */\n dataTypeDefaults: DataTypeDefaults;\n\n /**\n * No documentation specifying a maximum length for identifiers could be found\n * for MongoDB.\n */\n maxAliasLength?: number;\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Valid mongo connection options\n * NOTE: Keep sync with MongoConnectionOptions\n * Sync with http://mongodb.github.io/node-mongodb-native/3.5/api/MongoClient.html\n */\n protected validOptionNames: string[] = [\n \"poolSize\",\n \"ssl\",\n \"sslValidate\",\n \"sslCA\",\n \"sslCert\",\n \"sslKey\",\n \"sslPass\",\n \"sslCRL\",\n \"autoReconnect\",\n \"noDelay\",\n \"keepAlive\",\n \"keepAliveInitialDelay\",\n \"connectTimeoutMS\",\n \"family\",\n \"socketTimeoutMS\",\n \"reconnectTries\",\n \"reconnectInterval\",\n \"ha\",\n \"haInterval\",\n \"replicaSet\",\n \"secondaryAcceptableLatencyMS\",\n \"acceptableLatencyMS\",\n \"connectWithNoPrimary\",\n \"authSource\",\n \"w\",\n \"wtimeout\",\n \"j\",\n \"writeConcern\",\n \"forceServerObjectId\",\n \"serializeFunctions\",\n \"ignoreUndefined\",\n \"raw\",\n \"bufferMaxEntries\",\n \"readPreference\",\n \"pkFactory\",\n \"promiseLibrary\",\n \"readConcern\",\n \"maxStalenessSeconds\",\n \"loggerLevel\",\n // Do not overwrite BaseConnectionOptions.logger\n // \"logger\",\n \"promoteValues\",\n \"promoteBuffers\",\n \"promoteLongs\",\n \"domainsEnabled\",\n \"checkServerIdentity\",\n \"validateOptions\",\n \"appname\",\n // omit auth - we are building url from username and password\n // \"auth\"\n \"authMechanism\",\n \"compression\",\n \"fsync\",\n \"readPreferenceTags\",\n \"numberOfRetries\",\n \"auto_reconnect\",\n \"minSize\",\n \"monitorCommands\",\n \"useNewUrlParser\",\n \"useUnifiedTopology\",\n \"autoEncryption\",\n \"retryWrites\"\n ];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection) {\n this.options = connection.options as MongoConnectionOptions;\n\n // validate options to make sure everything is correct and driver will be able to establish connection\n this.validateOptions(connection.options);\n\n // load mongodb package\n this.loadDependencies();\n\n this.database = DriverUtils.buildMongoDBDriverOptions(this.options).database;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n */\n connect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n const options = DriverUtils.buildMongoDBDriverOptions(this.options);\n\n this.mongodb.MongoClient.connect(\n this.buildConnectionUrl(options),\n this.buildConnectionOptions(options),\n (err: any, client: any) => {\n if (err) return fail(err);\n\n this.queryRunner = new MongoQueryRunner(this.connection, client);\n ObjectUtils.assign(this.queryRunner, { manager: this.connection.manager });\n ok();\n });\n });\n }\n\n afterConnect(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Closes connection with the database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n if (!this.queryRunner)\n return fail(new ConnectionIsNotSetError(\"mongodb\"));\n\n const handler = (err: any) => err ? fail(err) : ok();\n this.queryRunner.databaseConnection.close(handler);\n this.queryRunner = undefined;\n });\n }\n\n /**\n * Creates a schema builder used to build and sync a schema.\n */\n createSchemaBuilder() {\n return new MongoSchemaBuilder(this.connection);\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode) {\n return this.queryRunner!;\n }\n\n /**\n * Replaces parameters in the given sql with special escaping character\n * and an array of parameter names to be passed to a query.\n */\n escapeQueryWithParameters(sql: string, parameters: ObjectLiteral, nativeParameters: ObjectLiteral): [string, any[]] {\n throw new TypeORMError(`This operation is not supported by Mongodb driver.`);\n }\n\n /**\n * Escapes a column name.\n */\n escape(columnName: string): string {\n return columnName;\n }\n\n /**\n * Build full table name with database name, schema name and table name.\n * E.g. myDB.mySchema.myTable\n */\n buildTableName(tableName: string, schema?: string, database?: string): string {\n return tableName;\n }\n\n /**\n * Parse a target table name or other types and return a normalized table definition.\n */\n parseTableName(target: EntityMetadata | Table | View | TableForeignKey | string): { tableName: string; schema?: string; database?: string } {\n if (target instanceof EntityMetadata) {\n return {\n tableName: target.tableName\n };\n }\n\n if (target instanceof Table || target instanceof View) {\n return {\n tableName: target.name\n };\n }\n\n if (target instanceof TableForeignKey) {\n return {\n tableName: target.referencedTableName\n };\n }\n\n return {\n tableName: target\n };\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type and metadata.\n */\n preparePersistentValue(value: any, columnMetadata: ColumnMetadata): any {\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformTo(columnMetadata.transformer, value);\n return value;\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type or metadata.\n */\n prepareHydratedValue(value: any, columnMetadata: ColumnMetadata): any {\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformFrom(columnMetadata.transformer, value);\n return value;\n }\n\n /**\n * Creates a database type from a given column metadata.\n */\n normalizeType(column: { type?: ColumnType, length?: number | string, precision?: number|null, scale?: number }): string {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n normalizeDefault(columnMetadata: ColumnMetadata): string | undefined {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Normalizes \"isUnique\" value of the column.\n */\n normalizeIsUnique(column: ColumnMetadata): boolean {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Calculates column length taking into account the default length values.\n */\n getColumnLength(column: ColumnMetadata): string {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n createFullType(column: TableColumn): string {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Obtains a new database connection to a master server.\n * Used for replication.\n * If replication is not setup then returns default connection's database connection.\n */\n obtainMasterConnection(): Promise<any> {\n return Promise.resolve();\n }\n\n /**\n * Obtains a new database connection to a slave server.\n * Used for replication.\n * If replication is not setup then returns master (default) connection's database connection.\n */\n obtainSlaveConnection(): Promise<any> {\n return Promise.resolve();\n }\n\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n createGeneratedMap(metadata: EntityMetadata, insertedId: any) {\n return metadata.objectIdColumn!.createValueMap(insertedId);\n }\n\n /**\n * Differentiate columns of this table and columns from the given column metadatas columns\n * and returns only changed.\n */\n findChangedColumns(tableColumns: TableColumn[], columnMetadatas: ColumnMetadata[]): ColumnMetadata[] {\n throw new TypeORMError(`MongoDB is schema-less, not supported by this driver.`);\n }\n\n /**\n * Returns true if driver supports RETURNING / OUTPUT statement.\n */\n isReturningSqlSupported(): boolean {\n return false;\n }\n\n /**\n * Returns true if driver supports uuid values generation on its own.\n */\n isUUIDGenerationSupported(): boolean {\n return false;\n }\n\n /**\n * Returns true if driver supports fulltext indices.\n */\n isFullTextColumnTypeSupported(): boolean {\n return false;\n }\n\n /**\n * Creates an escaped parameter.\n */\n createParameter(parameterName: string, index: number): string {\n return \"\";\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Validate driver options to make sure everything is correct and driver will be able to establish connection.\n */\n protected validateOptions(options: ConnectionOptions) { // todo: fix\n // if (!options.url) {\n // if (!options.database)\n // throw new DriverOptionNotSetError(\"database\");\n // }\n }\n\n /**\n * Loads all driver dependencies.\n */\n protected loadDependencies(): any {\n try {\n const mongodb = this.options.driver || PlatformTools.load(\"mongodb\");\n this.mongodb = mongodb;\n\n } catch (e) {\n throw new DriverPackageNotInstalledError(\"MongoDB\", \"mongodb\");\n }\n }\n\n /**\n * Builds connection url that is passed to underlying driver to perform connection to the mongodb database.\n */\n protected buildConnectionUrl(options: { [key: string]: any }): string {\n const schemaUrlPart = options.type.toLowerCase();\n const credentialsUrlPart = (options.username && options.password)\n ? `${options.username}:${options.password}@`\n : \"\";\n\n\n const portUrlPart = (schemaUrlPart === \"mongodb+srv\")\n ? \"\"\n : `:${options.port || \"27017\"}`;\n\n let connectionString: string;\n if(options.replicaSet) {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.hostReplicaSet || options.host + portUrlPart || \"127.0.0.1\" + portUrlPart}/${options.database || \"\"}?replicaSet=${options.replicaSet}${options.tls ? \"&tls=true\" : \"\"}`;\n } else {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.host || \"127.0.0.1\"}${portUrlPart}/${options.database || \"\"}${options.tls ? \"?tls=true\" : \"\"}`;\n }\n\n return connectionString;\n }\n\n /**\n * Build connection options from MongoConnectionOptions\n */\n protected buildConnectionOptions(options: { [key: string]: any }): any {\n const mongoOptions: any = {};\n\n for (let index = 0; index < this.validOptionNames.length; index++) {\n const optionName = this.validOptionNames[index];\n\n if (options.extra && optionName in options.extra) {\n mongoOptions[optionName] = options.extra[optionName];\n } else if (optionName in options) {\n mongoOptions[optionName] = options[optionName];\n }\n }\n\n return mongoOptions;\n }\n\n}\n"],"sourceRoot":"../.."}
@@ -10,6 +10,12 @@ export interface MysqlConnectionOptions extends BaseConnectionOptions, MysqlConn
10
10
  * Database type.
11
11
  */
12
12
  readonly type: "mysql" | "mariadb";
13
+ /**
14
+ * The driver object
15
+ * This defaults to require("mysql").
16
+ * Falls back to require("mysql2")
17
+ */
18
+ readonly driver?: any;
13
19
  /**
14
20
  * The charset for the connection. This is called "collation" in the SQL-level of MySQL (like utf8_general_ci).
15
21
  * If a SQL-level charset is specified (like utf8mb4) then the default collation for that charset is used.
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/driver/mysql/MysqlConnectionOptions.ts"],"names":[],"mappings":"","file":"MysqlConnectionOptions.js","sourcesContent":["import {BaseConnectionOptions} from \"../../connection/BaseConnectionOptions\";\nimport {MysqlConnectionCredentialsOptions} from \"./MysqlConnectionCredentialsOptions\";\n\n/**\n * MySQL specific connection options.\n *\n * @see https://github.com/mysqljs/mysql#connection-options\n */\nexport interface MysqlConnectionOptions extends BaseConnectionOptions, MysqlConnectionCredentialsOptions {\n\n /**\n * Database type.\n */\n readonly type: \"mysql\"|\"mariadb\";\n\n /**\n * The charset for the connection. This is called \"collation\" in the SQL-level of MySQL (like utf8_general_ci).\n * If a SQL-level charset is specified (like utf8mb4) then the default collation for that charset is used.\n * Default: 'UTF8_GENERAL_CI'\n */\n readonly charset?: string;\n\n /**\n * The timezone configured on the MySQL server.\n * This is used to type cast server date/time values to JavaScript Date object and vice versa.\n * This can be 'local', 'Z', or an offset in the form +HH:MM or -HH:MM. (Default: 'local')\n */\n readonly timezone?: string;\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n */\n readonly connectTimeout?: number;\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n * This difference between connectTimeout and acquireTimeout is subtle and is described in the mysqljs/mysql docs\n * https://github.com/mysqljs/mysql/tree/master#pool-options\n */ \n readonly acquireTimeout?: number;\n\n /**\n * Allow connecting to MySQL instances that ask for the old (insecure) authentication method. (Default: false)\n */\n readonly insecureAuth?: boolean;\n\n /**\n * When dealing with big numbers (BIGINT and DECIMAL columns) in the database, you should enable this option (Default: false)\n */\n readonly supportBigNumbers?: boolean;\n\n /**\n * Enabling both supportBigNumbers and bigNumberStrings forces big numbers (BIGINT and DECIMAL columns) to be always\n * returned as JavaScript String objects (Default: false). Enabling supportBigNumbers but leaving bigNumberStrings\n * disabled will return big numbers as String objects only when they cannot be accurately represented with\n * [JavaScript Number objects](http://ecma262-5.com/ELS5_HTML.htm#Section_8.5) (which happens when they exceed the [-2^53, +2^53] range),\n * otherwise they will be returned as Number objects. This option is ignored if supportBigNumbers is disabled.\n */\n readonly bigNumberStrings?: boolean;\n\n /**\n * Force date types (TIMESTAMP, DATETIME, DATE) to be returned as strings rather then inflated into JavaScript Date objects.\n * Can be true/false or an array of type names to keep as strings.\n */\n readonly dateStrings?: boolean|string[];\n\n /**\n * Prints protocol details to stdout. Can be true/false or an array of packet type names that should be printed.\n * (Default: false)\n */\n readonly debug?: boolean|string[];\n\n /**\n * Generates stack traces on Error to include call site of library entrance (\"long stack traces\").\n * Slight performance penalty for most calls. (Default: true)\n */\n readonly trace?: boolean;\n\n /**\n * Allow multiple mysql statements per query. Be careful with this, it could increase the scope of SQL injection attacks.\n * (Default: false)\n */\n readonly multipleStatements?: boolean;\n\n /**\n * Use spatial functions like GeomFromText and AsText which are removed in MySQL 8.\n * (Default: true)\n */\n readonly legacySpatialSupport?: boolean;\n\n /**\n * List of connection flags to use other than the default ones. It is also possible to blacklist default ones.\n * For more information, check https://github.com/mysqljs/mysql#connection-flags.\n */\n readonly flags?: string[];\n\n /**\n * Replication setup.\n */\n readonly replication?: {\n\n /**\n * Master server used by orm to perform writes.\n */\n readonly master: MysqlConnectionCredentialsOptions;\n\n /**\n * List of read-from severs (slaves).\n */\n readonly slaves: MysqlConnectionCredentialsOptions[];\n\n /**\n * If true, PoolCluster will attempt to reconnect when connection fails. (Default: true)\n */\n readonly canRetry?: boolean;\n\n /**\n * If connection fails, node's errorCount increases.\n * When errorCount is greater than removeNodeErrorCount, remove a node in the PoolCluster. (Default: 5)\n */\n readonly removeNodeErrorCount?: number;\n\n /**\n * If connection fails, specifies the number of milliseconds before another connection attempt will be made.\n * If set to 0, then node will be removed instead and never re-used. (Default: 0)\n */\n readonly restoreNodeTimeout?: number;\n\n /**\n * Determines how slaves are selected:\n * RR: Select one alternately (Round-Robin).\n * RANDOM: Select the node by random function.\n * ORDER: Select the first node available unconditionally.\n */\n readonly selector?: \"RR\"|\"RANDOM\"|\"ORDER\";\n\n };\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/driver/mysql/MysqlConnectionOptions.ts"],"names":[],"mappings":"","file":"MysqlConnectionOptions.js","sourcesContent":["import {BaseConnectionOptions} from \"../../connection/BaseConnectionOptions\";\nimport {MysqlConnectionCredentialsOptions} from \"./MysqlConnectionCredentialsOptions\";\n\n/**\n * MySQL specific connection options.\n *\n * @see https://github.com/mysqljs/mysql#connection-options\n */\nexport interface MysqlConnectionOptions extends BaseConnectionOptions, MysqlConnectionCredentialsOptions {\n\n /**\n * Database type.\n */\n readonly type: \"mysql\"|\"mariadb\";\n\n /**\n * The driver object\n * This defaults to require(\"mysql\").\n * Falls back to require(\"mysql2\")\n */\n readonly driver?: any;\n\n /**\n * The charset for the connection. This is called \"collation\" in the SQL-level of MySQL (like utf8_general_ci).\n * If a SQL-level charset is specified (like utf8mb4) then the default collation for that charset is used.\n * Default: 'UTF8_GENERAL_CI'\n */\n readonly charset?: string;\n\n /**\n * The timezone configured on the MySQL server.\n * This is used to type cast server date/time values to JavaScript Date object and vice versa.\n * This can be 'local', 'Z', or an offset in the form +HH:MM or -HH:MM. (Default: 'local')\n */\n readonly timezone?: string;\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n */\n readonly connectTimeout?: number;\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n * This difference between connectTimeout and acquireTimeout is subtle and is described in the mysqljs/mysql docs\n * https://github.com/mysqljs/mysql/tree/master#pool-options\n */\n readonly acquireTimeout?: number;\n\n /**\n * Allow connecting to MySQL instances that ask for the old (insecure) authentication method. (Default: false)\n */\n readonly insecureAuth?: boolean;\n\n /**\n * When dealing with big numbers (BIGINT and DECIMAL columns) in the database, you should enable this option (Default: false)\n */\n readonly supportBigNumbers?: boolean;\n\n /**\n * Enabling both supportBigNumbers and bigNumberStrings forces big numbers (BIGINT and DECIMAL columns) to be always\n * returned as JavaScript String objects (Default: false). Enabling supportBigNumbers but leaving bigNumberStrings\n * disabled will return big numbers as String objects only when they cannot be accurately represented with\n * [JavaScript Number objects](http://ecma262-5.com/ELS5_HTML.htm#Section_8.5) (which happens when they exceed the [-2^53, +2^53] range),\n * otherwise they will be returned as Number objects. This option is ignored if supportBigNumbers is disabled.\n */\n readonly bigNumberStrings?: boolean;\n\n /**\n * Force date types (TIMESTAMP, DATETIME, DATE) to be returned as strings rather then inflated into JavaScript Date objects.\n * Can be true/false or an array of type names to keep as strings.\n */\n readonly dateStrings?: boolean|string[];\n\n /**\n * Prints protocol details to stdout. Can be true/false or an array of packet type names that should be printed.\n * (Default: false)\n */\n readonly debug?: boolean|string[];\n\n /**\n * Generates stack traces on Error to include call site of library entrance (\"long stack traces\").\n * Slight performance penalty for most calls. (Default: true)\n */\n readonly trace?: boolean;\n\n /**\n * Allow multiple mysql statements per query. Be careful with this, it could increase the scope of SQL injection attacks.\n * (Default: false)\n */\n readonly multipleStatements?: boolean;\n\n /**\n * Use spatial functions like GeomFromText and AsText which are removed in MySQL 8.\n * (Default: true)\n */\n readonly legacySpatialSupport?: boolean;\n\n /**\n * List of connection flags to use other than the default ones. It is also possible to blacklist default ones.\n * For more information, check https://github.com/mysqljs/mysql#connection-flags.\n */\n readonly flags?: string[];\n\n /**\n * Replication setup.\n */\n readonly replication?: {\n\n /**\n * Master server used by orm to perform writes.\n */\n readonly master: MysqlConnectionCredentialsOptions;\n\n /**\n * List of read-from severs (slaves).\n */\n readonly slaves: MysqlConnectionCredentialsOptions[];\n\n /**\n * If true, PoolCluster will attempt to reconnect when connection fails. (Default: true)\n */\n readonly canRetry?: boolean;\n\n /**\n * If connection fails, node's errorCount increases.\n * When errorCount is greater than removeNodeErrorCount, remove a node in the PoolCluster. (Default: 5)\n */\n readonly removeNodeErrorCount?: number;\n\n /**\n * If connection fails, specifies the number of milliseconds before another connection attempt will be made.\n * If set to 0, then node will be removed instead and never re-used. (Default: 0)\n */\n readonly restoreNodeTimeout?: number;\n\n /**\n * Determines how slaves are selected:\n * RR: Select one alternately (Round-Robin).\n * RANDOM: Select the node by random function.\n * ORDER: Select the first node available unconditionally.\n */\n readonly selector?: \"RR\"|\"RANDOM\"|\"ORDER\";\n\n };\n\n}\n"],"sourceRoot":"../.."}
@@ -390,7 +390,7 @@ var MysqlDriver = /** @class */ (function () {
390
390
  if (database) {
391
391
  tablePath.unshift(database);
392
392
  }
393
- return tablePath.join('.');
393
+ return tablePath.join(".");
394
394
  };
395
395
  /**
396
396
  * Parse a target table name or other types and return a normalized table definition.
@@ -787,7 +787,9 @@ var MysqlDriver = /** @class */ (function () {
787
787
  */
788
788
  MysqlDriver.prototype.loadDependencies = function () {
789
789
  try {
790
- this.mysql = PlatformTools.load("mysql"); // try to load first supported package
790
+ // try to load first supported package
791
+ var mysql = this.options.driver || PlatformTools.load("mysql");
792
+ this.mysql = mysql;
791
793
  /*
792
794
  * Some frameworks (such as Jest) may mess up Node's require cache and provide garbage for the 'mysql' module
793
795
  * if it was not installed. We check that the object we got actually contains something otherwise we treat