typeorm 0.3.22-dev.b0ea913 → 0.3.22-dev.bcaa0bf

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 (277) hide show
  1. package/browser/cache/DbQueryResultCache.js +1 -1
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/connection/ConnectionOptionsReader.js +5 -9
  4. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  5. package/browser/data-source/DataSource.js +2 -2
  6. package/browser/data-source/DataSource.js.map +1 -1
  7. package/browser/driver/DriverUtils.js +4 -5
  8. package/browser/driver/DriverUtils.js.map +1 -1
  9. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +3 -3
  10. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  11. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1 -1
  12. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  13. package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
  14. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  15. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  16. package/browser/driver/cockroachdb/CockroachQueryRunner.js +6 -3
  17. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  18. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  19. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  20. package/browser/driver/expo/ExpoQueryRunner.js +1 -1
  21. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  22. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +111 -142
  23. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  24. package/browser/driver/mongodb/MongoDriver.d.ts +2 -3
  25. package/browser/driver/mongodb/MongoDriver.js +57 -65
  26. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  27. package/browser/driver/mysql/MysqlDriver.js +10 -12
  28. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  29. package/browser/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  30. package/browser/driver/mysql/MysqlQueryRunner.js +9 -3
  31. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  32. package/browser/driver/oracle/OracleDriver.js +3 -3
  33. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  34. package/browser/driver/oracle/OracleQueryRunner.js +2 -2
  35. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  36. package/browser/driver/postgres/PostgresDriver.d.ts +2 -1
  37. package/browser/driver/postgres/PostgresDriver.js +11 -15
  38. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  39. package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  40. package/browser/driver/postgres/PostgresQueryRunner.js +8 -7
  41. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  42. package/browser/driver/react-native/ReactNativeDriver.js +1 -1
  43. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  44. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  45. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  46. package/browser/driver/sap/SapDriver.d.ts +4 -0
  47. package/browser/driver/sap/SapDriver.js +10 -12
  48. package/browser/driver/sap/SapDriver.js.map +1 -1
  49. package/browser/driver/sap/SapQueryRunner.d.ts +7 -0
  50. package/browser/driver/sap/SapQueryRunner.js +18 -11
  51. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  52. package/browser/driver/spanner/SpannerDriver.js +3 -3
  53. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  54. package/browser/driver/spanner/SpannerQueryRunner.js +7 -7
  55. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  56. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  57. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  58. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +7 -7
  59. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  60. package/browser/driver/sqljs/SqljsDriver.js +1 -1
  61. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  62. package/browser/driver/sqlserver/SqlServerDriver.js +3 -3
  63. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  64. package/browser/driver/sqlserver/SqlServerQueryRunner.js +4 -4
  65. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  66. package/browser/entity-manager/EntityManager.js.map +1 -1
  67. package/browser/entity-manager/MongoEntityManager.js +1 -1
  68. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  69. package/browser/find-options/FindOptionsSelect.d.ts +1 -1
  70. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  71. package/browser/find-options/FindOptionsUtils.js +1 -1
  72. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  73. package/browser/index.d.ts +1 -0
  74. package/browser/index.js +1 -0
  75. package/browser/index.js.map +1 -1
  76. package/browser/logger/AdvancedConsoleLogger.js +1 -1
  77. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  78. package/browser/logger/DebugLogger.js +1 -1
  79. package/browser/logger/DebugLogger.js.map +1 -1
  80. package/browser/logger/FileLogger.js +1 -1
  81. package/browser/logger/FileLogger.js.map +1 -1
  82. package/browser/logger/SimpleConsoleLogger.js +1 -1
  83. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  84. package/browser/metadata/ColumnMetadata.js +1 -1
  85. package/browser/metadata/ColumnMetadata.js.map +1 -1
  86. package/browser/metadata/EmbeddedMetadata.js +1 -1
  87. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  88. package/browser/migration/MigrationExecutor.js +2 -2
  89. package/browser/migration/MigrationExecutor.js.map +1 -1
  90. package/browser/persistence/EntityPersistExecutor.js +2 -2
  91. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  92. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  93. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  94. package/browser/persistence/SubjectExecutor.js +1 -1
  95. package/browser/persistence/SubjectExecutor.js.map +1 -1
  96. package/browser/persistence/SubjectTopologicalSorter.js +5 -5
  97. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  98. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  99. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  100. package/browser/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  101. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  102. package/browser/query-builder/InsertQueryBuilder.js +2 -1
  103. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  104. package/browser/query-builder/JoinAttribute.js +2 -2
  105. package/browser/query-builder/JoinAttribute.js.map +1 -1
  106. package/browser/query-builder/QueryBuilder.js +2 -2
  107. package/browser/query-builder/QueryBuilder.js.map +1 -1
  108. package/browser/query-builder/RelationIdLoader.js +2 -2
  109. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  110. package/browser/query-builder/SelectQueryBuilder.js +18 -3
  111. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  112. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  113. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  114. package/browser/query-builder/UpdateQueryBuilder.js +3 -3
  115. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  116. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -1
  117. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  118. package/browser/repository/Repository.js.map +1 -1
  119. package/browser/subscriber/event/QueryEvent.d.ts +1 -1
  120. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  121. package/browser/util/DepGraph.js +13 -13
  122. package/browser/util/DepGraph.js.map +1 -1
  123. package/browser/util/DirectoryExportedClassesLoader.js +2 -2
  124. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  125. package/browser/util/InstanceChecker.js.map +1 -1
  126. package/browser/util/ObjectUtils.d.ts +2 -2
  127. package/browser/util/ObjectUtils.js.map +1 -1
  128. package/browser/util/OrmUtils.js +4 -4
  129. package/browser/util/OrmUtils.js.map +1 -1
  130. package/browser/util/RandomGenerator.js +6 -6
  131. package/browser/util/RandomGenerator.js.map +1 -1
  132. package/browser/util/VersionUtils.d.ts +1 -2
  133. package/browser/util/VersionUtils.js +14 -7
  134. package/browser/util/VersionUtils.js.map +1 -1
  135. package/browser/util/escapeRegExp.d.ts +1 -1
  136. package/browser/util/escapeRegExp.js.map +1 -1
  137. package/cache/DbQueryResultCache.js +1 -1
  138. package/cache/DbQueryResultCache.js.map +1 -1
  139. package/commands/CommandUtils.js +1 -0
  140. package/commands/CommandUtils.js.map +1 -1
  141. package/commands/InitCommand.js +29 -27
  142. package/commands/InitCommand.js.map +1 -1
  143. package/connection/ConnectionOptionsReader.js +5 -9
  144. package/connection/ConnectionOptionsReader.js.map +1 -1
  145. package/data-source/DataSource.js +2 -2
  146. package/data-source/DataSource.js.map +1 -1
  147. package/driver/DriverUtils.js +4 -5
  148. package/driver/DriverUtils.js.map +1 -1
  149. package/driver/aurora-mysql/AuroraMysqlDriver.js +3 -3
  150. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  151. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1 -1
  152. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  153. package/driver/cockroachdb/CockroachDriver.js +3 -3
  154. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  155. package/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  156. package/driver/cockroachdb/CockroachQueryRunner.js +6 -3
  157. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  158. package/driver/cordova/CordovaQueryRunner.js +1 -1
  159. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  160. package/driver/expo/ExpoQueryRunner.js +1 -1
  161. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  162. package/driver/mongodb/MongoConnectionOptions.d.ts +111 -142
  163. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  164. package/driver/mongodb/MongoDriver.d.ts +2 -3
  165. package/driver/mongodb/MongoDriver.js +57 -65
  166. package/driver/mongodb/MongoDriver.js.map +1 -1
  167. package/driver/mysql/MysqlDriver.js +10 -12
  168. package/driver/mysql/MysqlDriver.js.map +1 -1
  169. package/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  170. package/driver/mysql/MysqlQueryRunner.js +9 -3
  171. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  172. package/driver/oracle/OracleDriver.js +3 -3
  173. package/driver/oracle/OracleDriver.js.map +1 -1
  174. package/driver/oracle/OracleQueryRunner.js +2 -2
  175. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  176. package/driver/postgres/PostgresDriver.d.ts +2 -1
  177. package/driver/postgres/PostgresDriver.js +11 -15
  178. package/driver/postgres/PostgresDriver.js.map +1 -1
  179. package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  180. package/driver/postgres/PostgresQueryRunner.js +8 -7
  181. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  182. package/driver/react-native/ReactNativeDriver.js +1 -1
  183. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  184. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  185. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  186. package/driver/sap/SapDriver.d.ts +4 -0
  187. package/driver/sap/SapDriver.js +10 -12
  188. package/driver/sap/SapDriver.js.map +1 -1
  189. package/driver/sap/SapQueryRunner.d.ts +7 -0
  190. package/driver/sap/SapQueryRunner.js +18 -11
  191. package/driver/sap/SapQueryRunner.js.map +1 -1
  192. package/driver/spanner/SpannerDriver.js +3 -3
  193. package/driver/spanner/SpannerDriver.js.map +1 -1
  194. package/driver/spanner/SpannerQueryRunner.js +7 -7
  195. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  196. package/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  197. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  198. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +7 -7
  199. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  200. package/driver/sqljs/SqljsDriver.js +1 -1
  201. package/driver/sqljs/SqljsDriver.js.map +1 -1
  202. package/driver/sqlserver/SqlServerDriver.js +3 -3
  203. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  204. package/driver/sqlserver/SqlServerQueryRunner.js +4 -4
  205. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  206. package/entity-manager/EntityManager.js.map +1 -1
  207. package/entity-manager/MongoEntityManager.js +1 -1
  208. package/entity-manager/MongoEntityManager.js.map +1 -1
  209. package/find-options/FindOptionsSelect.d.ts +1 -1
  210. package/find-options/FindOptionsSelect.js.map +1 -1
  211. package/find-options/FindOptionsUtils.js +1 -1
  212. package/find-options/FindOptionsUtils.js.map +1 -1
  213. package/index.d.ts +1 -0
  214. package/index.js +1 -0
  215. package/index.js.map +1 -1
  216. package/logger/AdvancedConsoleLogger.js +1 -1
  217. package/logger/AdvancedConsoleLogger.js.map +1 -1
  218. package/logger/DebugLogger.js +1 -1
  219. package/logger/DebugLogger.js.map +1 -1
  220. package/logger/FileLogger.js +1 -1
  221. package/logger/FileLogger.js.map +1 -1
  222. package/logger/SimpleConsoleLogger.js +1 -1
  223. package/logger/SimpleConsoleLogger.js.map +1 -1
  224. package/metadata/ColumnMetadata.js +1 -1
  225. package/metadata/ColumnMetadata.js.map +1 -1
  226. package/metadata/EmbeddedMetadata.js +1 -1
  227. package/metadata/EmbeddedMetadata.js.map +1 -1
  228. package/migration/MigrationExecutor.js +2 -2
  229. package/migration/MigrationExecutor.js.map +1 -1
  230. package/package.json +1 -1
  231. package/persistence/EntityPersistExecutor.js +2 -2
  232. package/persistence/EntityPersistExecutor.js.map +1 -1
  233. package/persistence/SubjectDatabaseEntityLoader.js +1 -1
  234. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  235. package/persistence/SubjectExecutor.js +1 -1
  236. package/persistence/SubjectExecutor.js.map +1 -1
  237. package/persistence/SubjectTopologicalSorter.js +5 -5
  238. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  239. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  240. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  241. package/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  242. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  243. package/query-builder/InsertQueryBuilder.js +2 -1
  244. package/query-builder/InsertQueryBuilder.js.map +1 -1
  245. package/query-builder/JoinAttribute.js +2 -2
  246. package/query-builder/JoinAttribute.js.map +1 -1
  247. package/query-builder/QueryBuilder.js +2 -2
  248. package/query-builder/QueryBuilder.js.map +1 -1
  249. package/query-builder/RelationIdLoader.js +2 -2
  250. package/query-builder/RelationIdLoader.js.map +1 -1
  251. package/query-builder/SelectQueryBuilder.js +18 -3
  252. package/query-builder/SelectQueryBuilder.js.map +1 -1
  253. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  254. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  255. package/query-builder/UpdateQueryBuilder.js +3 -3
  256. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  257. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -1
  258. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  259. package/repository/Repository.js.map +1 -1
  260. package/subscriber/event/QueryEvent.d.ts +1 -1
  261. package/subscriber/event/QueryEvent.js.map +1 -1
  262. package/util/DepGraph.js +13 -13
  263. package/util/DepGraph.js.map +1 -1
  264. package/util/DirectoryExportedClassesLoader.js +2 -2
  265. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  266. package/util/InstanceChecker.js.map +1 -1
  267. package/util/ObjectUtils.d.ts +2 -2
  268. package/util/ObjectUtils.js.map +1 -1
  269. package/util/OrmUtils.js +4 -4
  270. package/util/OrmUtils.js.map +1 -1
  271. package/util/RandomGenerator.js +6 -6
  272. package/util/RandomGenerator.js.map +1 -1
  273. package/util/VersionUtils.d.ts +1 -2
  274. package/util/VersionUtils.js +14 -7
  275. package/util/VersionUtils.js.map +1 -1
  276. package/util/escapeRegExp.d.ts +1 -1
  277. package/util/escapeRegExp.js.map +1 -1
@@ -80,82 +80,71 @@ class MongoDriver {
80
80
  metadataName: "int",
81
81
  metadataValue: "int",
82
82
  };
83
+ this.cteCapabilities = {
84
+ enabled: false,
85
+ };
83
86
  // -------------------------------------------------------------------------
84
87
  // Protected Properties
85
88
  // -------------------------------------------------------------------------
86
89
  /**
87
90
  * Valid mongo connection options
88
- * NOTE: Keep sync with MongoConnectionOptions
89
- * Sync with http://mongodb.github.io/node-mongodb-native/3.5/api/MongoClient.html
91
+ * NOTE: Keep in sync with MongoConnectionOptions
90
92
  */
91
93
  this.validOptionNames = [
92
- "poolSize",
93
- "ssl",
94
- "sslValidate",
95
- "sslCA",
96
- "sslCert",
97
- "sslKey",
98
- "sslPass",
99
- "sslCRL",
100
- "autoReconnect",
101
- "noDelay",
102
- "keepAlive",
103
- "keepAliveInitialDelay",
94
+ "appName",
95
+ "authMechanism",
96
+ "authSource",
97
+ "autoEncryption",
98
+ "checkServerIdentity",
99
+ "compressors",
104
100
  "connectTimeoutMS",
101
+ "directConnection",
105
102
  "family",
106
- "socketTimeoutMS",
107
- "reconnectTries",
108
- "reconnectInterval",
109
- "ha",
110
- "haInterval",
111
- "replicaSet",
112
- "secondaryAcceptableLatencyMS",
113
- "acceptableLatencyMS",
114
- "connectWithNoPrimary",
115
- "authSource",
116
- "w",
117
- "wtimeout",
118
- "j",
119
- "writeConcern",
120
103
  "forceServerObjectId",
121
- "serializeFunctions",
122
104
  "ignoreUndefined",
123
- "raw",
124
- "bufferMaxEntries",
125
- "readPreference",
126
- "pkFactory",
127
- "promiseLibrary",
128
- "readConcern",
105
+ "keepAlive",
106
+ "keepAliveInitialDelay",
107
+ "localThresholdMS",
129
108
  "maxStalenessSeconds",
130
- "loggerLevel",
131
- // Do not overwrite BaseDataSourceOptions.logger
132
- // "logger",
133
- "promoteValues",
109
+ "minPoolSize",
110
+ "monitorCommands",
111
+ "noDelay",
112
+ "pkFactory",
134
113
  "promoteBuffers",
135
114
  "promoteLongs",
136
- "domainsEnabled",
137
- "checkServerIdentity",
138
- "validateOptions",
115
+ "promoteValues",
116
+ "raw",
117
+ "readConcern",
118
+ "readPreference",
119
+ "readPreferenceTags",
120
+ "replicaSet",
121
+ "retryWrites",
122
+ "serializeFunctions",
123
+ "socketTimeoutMS",
124
+ "ssl",
125
+ "sslCA",
126
+ "sslCRL",
127
+ "sslCert",
128
+ "sslKey",
129
+ "sslPass",
130
+ "sslValidate",
131
+ "tls",
132
+ "tlsAllowInvalidCertificates",
133
+ "tlsCAFile",
134
+ "tlsCertificateKeyFile",
135
+ "tlsCertificateKeyFilePassword",
136
+ "w",
137
+ "writeConcern",
138
+ "wtimeoutMS",
139
+ // Undocumented deprecated options
140
+ // todo: remove next major version
139
141
  "appname",
140
- // omit auth - we are building url from username and password
141
- // "auth"
142
- "authMechanism",
143
- "compression",
144
142
  "fsync",
145
- "readPreferenceTags",
146
- "numberOfRetries",
147
- "auto_reconnect",
148
- "minSize",
149
- "monitorCommands",
143
+ "j",
150
144
  "useNewUrlParser",
151
145
  "useUnifiedTopology",
152
- "autoEncryption",
153
- "retryWrites",
154
- "directConnection",
146
+ "wtimeout",
155
147
  ];
156
- this.cteCapabilities = {
157
- enabled: false,
158
- };
159
148
  this.options = connection.options;
160
149
  // validate options to make sure everything is correct and driver will be able to establish connection
161
150
  this.validateOptions(connection.options);
@@ -383,10 +372,10 @@ class MongoDriver {
383
372
  if (options.replicaSet) {
384
373
  connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.hostReplicaSet ||
385
374
  options.host + portUrlPart ||
386
- "127.0.0.1" + portUrlPart}/${options.database || ""}?replicaSet=${options.replicaSet}${options.tls ? "&tls=true" : ""}`;
375
+ "127.0.0.1" + portUrlPart}/${options.database || ""}`;
387
376
  }
388
377
  else {
389
- connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.host || "127.0.0.1"}${portUrlPart}/${options.database || ""}${options.tls ? "?tls=true" : ""}`;
378
+ connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.host || "127.0.0.1"}${portUrlPart}/${options.database || ""}`;
390
379
  }
391
380
  return connectionString;
392
381
  }
@@ -395,15 +384,18 @@ class MongoDriver {
395
384
  */
396
385
  buildConnectionOptions(options) {
397
386
  const mongoOptions = {};
398
- for (let index = 0; index < this.validOptionNames.length; index++) {
399
- const optionName = this.validOptionNames[index];
400
- if (options.extra && optionName in options.extra) {
401
- mongoOptions[optionName] = options.extra[optionName];
402
- }
403
- else if (optionName in options) {
387
+ for (const optionName of this.validOptionNames) {
388
+ if (optionName in options) {
404
389
  mongoOptions[optionName] = options[optionName];
405
390
  }
406
391
  }
392
+ mongoOptions.driverInfo = {
393
+ name: "TypeORM",
394
+ };
395
+ if ("poolSize" in options) {
396
+ mongoOptions["maxPoolSize"] = options["poolSize"];
397
+ }
398
+ Object.assign(mongoOptions, options.extra);
407
399
  return mongoOptions;
408
400
  }
409
401
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../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 { CteCapabilities } from \"../types/CteCapabilities\"\nimport { MongoQueryRunner } from \"./MongoQueryRunner\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport { PlatformTools } from \"../../platform/PlatformTools\"\nimport { DataSource } from \"../../data-source/DataSource\"\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 { DataSourceOptions } from \"../../data-source/DataSourceOptions\"\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\"\nimport { InstanceChecker } from \"../../util/InstanceChecker\"\nimport { UpsertType } from \"../types/UpsertType\"\n\n/**\n * Organizes communication with MongoDB.\n */\nexport class MongoDriver implements Driver {\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 * Represent transaction support by this driver\n */\n transactionSupport = \"none\" as const\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 * Returns type of upsert supported by driver if any\n */\n supportedUpsertTypes: UpsertType[]\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 BaseDataSourceOptions.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 \"directConnection\",\n ]\n\n cteCapabilities: CteCapabilities = {\n enabled: false,\n }\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: DataSource) {\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(\n this.options,\n ).database\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n */\n async connect(): Promise<void> {\n const options = DriverUtils.buildMongoDBDriverOptions(this.options)\n\n const client = await this.mongodb.MongoClient.connect(\n this.buildConnectionUrl(options),\n this.buildConnectionOptions(options),\n )\n\n this.queryRunner = new MongoQueryRunner(this.connection, client)\n ObjectUtils.assign(this.queryRunner, {\n manager: this.connection.manager,\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 if (!this.queryRunner) throw new ConnectionIsNotSetError(\"mongodb\")\n // const handler = (err: any) => (err ? fail(err) : ok())\n this.queryRunner.databaseConnection.close()\n this.queryRunner = undefined\n // return ok()\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(\n sql: string,\n parameters: ObjectLiteral,\n nativeParameters: ObjectLiteral,\n ): [string, any[]] {\n throw new TypeORMError(\n `This operation is not supported by Mongodb driver.`,\n )\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(\n tableName: string,\n schema?: string,\n database?: string,\n ): 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(\n target: EntityMetadata | Table | View | TableForeignKey | string,\n ): { tableName: string; schema?: string; database?: string } {\n if (InstanceChecker.isEntityMetadata(target)) {\n return {\n tableName: target.tableName,\n }\n }\n\n if (InstanceChecker.isTable(target) || InstanceChecker.isView(target)) {\n return {\n tableName: target.name,\n }\n }\n\n if (InstanceChecker.isTableForeignKey(target)) {\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(\n columnMetadata.transformer,\n value,\n )\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(\n columnMetadata.transformer,\n value,\n )\n return value\n }\n\n /**\n * Creates a database type from a given column metadata.\n */\n normalizeType(column: {\n type?: ColumnType\n length?: number | string\n precision?: number | null\n scale?: number\n }): string {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n normalizeDefault(columnMetadata: ColumnMetadata): string | undefined {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Normalizes \"isUnique\" value of the column.\n */\n normalizeIsUnique(column: ColumnMetadata): boolean {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Calculates column length taking into account the default length values.\n */\n getColumnLength(column: ColumnMetadata): string {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n createFullType(column: TableColumn): string {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\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(\n tableColumns: TableColumn[],\n columnMetadatas: ColumnMetadata[],\n ): ColumnMetadata[] {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\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: DataSourceOptions) {\n // 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 } 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 =\n options.username && options.password\n ? `${encodeURIComponent(options.username)}:${encodeURIComponent(\n options.password,\n )}@`\n : \"\"\n\n const portUrlPart =\n schemaUrlPart === \"mongodb+srv\" ? \"\" : `:${options.port || \"27017\"}`\n\n let connectionString: string\n if (options.replicaSet) {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${\n options.hostReplicaSet ||\n options.host + portUrlPart ||\n \"127.0.0.1\" + portUrlPart\n }/${options.database || \"\"}?replicaSet=${options.replicaSet}${\n options.tls ? \"&tls=true\" : \"\"\n }`\n } else {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${\n options.host || \"127.0.0.1\"\n }${portUrlPart}/${options.database || \"\"}${\n options.tls ? \"?tls=true\" : \"\"\n }`\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"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../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 { CteCapabilities } from \"../types/CteCapabilities\"\nimport { MongoQueryRunner } from \"./MongoQueryRunner\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport { PlatformTools } from \"../../platform/PlatformTools\"\nimport { DataSource } from \"../../data-source/DataSource\"\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 { DataSourceOptions } from \"../../data-source/DataSourceOptions\"\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\"\nimport { InstanceChecker } from \"../../util/InstanceChecker\"\nimport { UpsertType } from \"../types/UpsertType\"\n\n/**\n * Organizes communication with MongoDB.\n */\nexport class MongoDriver implements Driver {\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 * Represent transaction support by this driver\n */\n transactionSupport = \"none\" as const\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 * Returns type of upsert supported by driver if any\n */\n supportedUpsertTypes: UpsertType[]\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 cteCapabilities: CteCapabilities = {\n enabled: false,\n }\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Valid mongo connection options\n * NOTE: Keep in sync with MongoConnectionOptions\n */\n protected validOptionNames: string[] = [\n \"appName\",\n \"authMechanism\",\n \"authSource\",\n \"autoEncryption\",\n \"checkServerIdentity\",\n \"compressors\",\n \"connectTimeoutMS\",\n \"directConnection\",\n \"family\",\n \"forceServerObjectId\",\n \"ignoreUndefined\",\n \"keepAlive\",\n \"keepAliveInitialDelay\",\n \"localThresholdMS\",\n \"maxStalenessSeconds\",\n \"minPoolSize\",\n \"monitorCommands\",\n \"noDelay\",\n \"pkFactory\",\n \"promoteBuffers\",\n \"promoteLongs\",\n \"promoteValues\",\n \"raw\",\n \"readConcern\",\n \"readPreference\",\n \"readPreferenceTags\",\n \"replicaSet\",\n \"retryWrites\",\n \"serializeFunctions\",\n \"socketTimeoutMS\",\n \"ssl\",\n \"sslCA\",\n \"sslCRL\",\n \"sslCert\",\n \"sslKey\",\n \"sslPass\",\n \"sslValidate\",\n \"tls\",\n \"tlsAllowInvalidCertificates\",\n \"tlsCAFile\",\n \"tlsCertificateKeyFile\",\n \"tlsCertificateKeyFilePassword\",\n \"w\",\n \"writeConcern\",\n \"wtimeoutMS\",\n // Undocumented deprecated options\n // todo: remove next major version\n \"appname\",\n \"fsync\",\n \"j\",\n \"useNewUrlParser\",\n \"useUnifiedTopology\",\n \"wtimeout\",\n ]\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: DataSource) {\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(\n this.options,\n ).database\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n */\n async connect(): Promise<void> {\n const options = DriverUtils.buildMongoDBDriverOptions(this.options)\n\n const client = await this.mongodb.MongoClient.connect(\n this.buildConnectionUrl(options),\n this.buildConnectionOptions(options),\n )\n\n this.queryRunner = new MongoQueryRunner(this.connection, client)\n ObjectUtils.assign(this.queryRunner, {\n manager: this.connection.manager,\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 if (!this.queryRunner) throw new ConnectionIsNotSetError(\"mongodb\")\n // const handler = (err: any) => (err ? fail(err) : ok())\n this.queryRunner.databaseConnection.close()\n this.queryRunner = undefined\n // return ok()\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(\n sql: string,\n parameters: ObjectLiteral,\n nativeParameters: ObjectLiteral,\n ): [string, any[]] {\n throw new TypeORMError(\n `This operation is not supported by Mongodb driver.`,\n )\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(\n tableName: string,\n schema?: string,\n database?: string,\n ): 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(\n target: EntityMetadata | Table | View | TableForeignKey | string,\n ): { tableName: string; schema?: string; database?: string } {\n if (InstanceChecker.isEntityMetadata(target)) {\n return {\n tableName: target.tableName,\n }\n }\n\n if (InstanceChecker.isTable(target) || InstanceChecker.isView(target)) {\n return {\n tableName: target.name,\n }\n }\n\n if (InstanceChecker.isTableForeignKey(target)) {\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(\n columnMetadata.transformer,\n value,\n )\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(\n columnMetadata.transformer,\n value,\n )\n return value\n }\n\n /**\n * Creates a database type from a given column metadata.\n */\n normalizeType(column: {\n type?: ColumnType\n length?: number | string\n precision?: number | null\n scale?: number\n }): string {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n normalizeDefault(columnMetadata: ColumnMetadata): string | undefined {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Normalizes \"isUnique\" value of the column.\n */\n normalizeIsUnique(column: ColumnMetadata): boolean {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Calculates column length taking into account the default length values.\n */\n getColumnLength(column: ColumnMetadata): string {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n createFullType(column: TableColumn): string {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\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(\n tableColumns: TableColumn[],\n columnMetadatas: ColumnMetadata[],\n ): ColumnMetadata[] {\n throw new TypeORMError(\n `MongoDB is schema-less, not supported by this driver.`,\n )\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: DataSourceOptions) {\n // 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 } 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 =\n options.username && options.password\n ? `${encodeURIComponent(options.username)}:${encodeURIComponent(\n options.password,\n )}@`\n : \"\"\n\n const portUrlPart =\n schemaUrlPart === \"mongodb+srv\" ? \"\" : `:${options.port || \"27017\"}`\n\n let connectionString: string\n if (options.replicaSet) {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${\n options.hostReplicaSet ||\n options.host + portUrlPart ||\n \"127.0.0.1\" + portUrlPart\n }/${options.database || \"\"}`\n } else {\n connectionString = `${schemaUrlPart}://${credentialsUrlPart}${\n options.host || \"127.0.0.1\"\n }${portUrlPart}/${options.database || \"\"}`\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 (const optionName of this.validOptionNames) {\n if (optionName in options) {\n mongoOptions[optionName] = options[optionName]\n }\n }\n\n mongoOptions.driverInfo = {\n name: \"TypeORM\",\n }\n\n if (\"poolSize\" in options) {\n mongoOptions[\"maxPoolSize\"] = options[\"poolSize\"]\n }\n\n Object.assign(mongoOptions, options.extra)\n\n return mongoOptions\n }\n}\n"],"sourceRoot":"../.."}
@@ -305,31 +305,29 @@ class MysqlDriver {
305
305
  this.pool = await this.createPool(this.createConnectionOptions(this.options, this.options));
306
306
  }
307
307
  if (!this.database) {
308
- const queryRunner = await this.createQueryRunner("master");
308
+ const queryRunner = this.createQueryRunner("master");
309
309
  this.database = await queryRunner.getCurrentDatabase();
310
310
  await queryRunner.release();
311
311
  }
312
312
  const queryRunner = this.createQueryRunner("master");
313
- const result = await queryRunner.query(`SELECT VERSION() AS \`version\``);
314
- const dbVersion = result[0].version;
315
- this.version = dbVersion;
313
+ this.version = await queryRunner.getVersion();
316
314
  await queryRunner.release();
317
315
  if (this.options.type === "mariadb") {
318
- if (VersionUtils_1.VersionUtils.isGreaterOrEqual(dbVersion, "10.0.5")) {
316
+ if (VersionUtils_1.VersionUtils.isGreaterOrEqual(this.version, "10.0.5")) {
319
317
  this._isReturningSqlSupported.delete = true;
320
318
  }
321
- if (VersionUtils_1.VersionUtils.isGreaterOrEqual(dbVersion, "10.5.0")) {
319
+ if (VersionUtils_1.VersionUtils.isGreaterOrEqual(this.version, "10.5.0")) {
322
320
  this._isReturningSqlSupported.insert = true;
323
321
  }
324
- if (VersionUtils_1.VersionUtils.isGreaterOrEqual(dbVersion, "10.2.0")) {
322
+ if (VersionUtils_1.VersionUtils.isGreaterOrEqual(this.version, "10.2.0")) {
325
323
  this.cteCapabilities.enabled = true;
326
324
  }
327
- if (VersionUtils_1.VersionUtils.isGreaterOrEqual(dbVersion, "10.7.0")) {
325
+ if (VersionUtils_1.VersionUtils.isGreaterOrEqual(this.version, "10.7.0")) {
328
326
  this.uuidColumnTypeSuported = true;
329
327
  }
330
328
  }
331
329
  else if (this.options.type === "mysql") {
332
- if (VersionUtils_1.VersionUtils.isGreaterOrEqual(dbVersion, "8.0.0")) {
330
+ if (VersionUtils_1.VersionUtils.isGreaterOrEqual(this.version, "8.0.0")) {
333
331
  this.cteCapabilities.enabled = true;
334
332
  }
335
333
  }
@@ -387,7 +385,7 @@ class MysqlDriver {
387
385
  if (!parameters.hasOwnProperty(key)) {
388
386
  return full;
389
387
  }
390
- let value = parameters[key];
388
+ const value = parameters[key];
391
389
  if (isArray) {
392
390
  return value
393
391
  .map((v) => {
@@ -415,7 +413,7 @@ class MysqlDriver {
415
413
  * E.g. myDB.mySchema.myTable
416
414
  */
417
415
  buildTableName(tableName, schema, database) {
418
- let tablePath = [tableName];
416
+ const tablePath = [tableName];
419
417
  if (database) {
420
418
  tablePath.unshift(database);
421
419
  }
@@ -579,7 +577,7 @@ class MysqlDriver {
579
577
  }
580
578
  else if (column.type === "json" &&
581
579
  this.options.type === "mariadb" &&
582
- !VersionUtils_1.VersionUtils.isGreaterOrEqual(this.version ?? "0.0.0", "10.4.3")) {
580
+ !VersionUtils_1.VersionUtils.isGreaterOrEqual(this.version, "10.4.3")) {
583
581
  /*
584
582
  * MariaDB implements this as a LONGTEXT rather, as the JSON data type contradicts the SQL standard,
585
583
  * and MariaDB's benchmarks indicate that performance is at least equivalent.