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
@@ -77,82 +77,71 @@ export class MongoDriver {
77
77
  metadataName: "int",
78
78
  metadataValue: "int",
79
79
  };
80
+ this.cteCapabilities = {
81
+ enabled: false,
82
+ };
80
83
  // -------------------------------------------------------------------------
81
84
  // Protected Properties
82
85
  // -------------------------------------------------------------------------
83
86
  /**
84
87
  * Valid mongo connection options
85
- * NOTE: Keep sync with MongoConnectionOptions
86
- * Sync with http://mongodb.github.io/node-mongodb-native/3.5/api/MongoClient.html
88
+ * NOTE: Keep in sync with MongoConnectionOptions
87
89
  */
88
90
  this.validOptionNames = [
89
- "poolSize",
90
- "ssl",
91
- "sslValidate",
92
- "sslCA",
93
- "sslCert",
94
- "sslKey",
95
- "sslPass",
96
- "sslCRL",
97
- "autoReconnect",
98
- "noDelay",
99
- "keepAlive",
100
- "keepAliveInitialDelay",
91
+ "appName",
92
+ "authMechanism",
93
+ "authSource",
94
+ "autoEncryption",
95
+ "checkServerIdentity",
96
+ "compressors",
101
97
  "connectTimeoutMS",
98
+ "directConnection",
102
99
  "family",
103
- "socketTimeoutMS",
104
- "reconnectTries",
105
- "reconnectInterval",
106
- "ha",
107
- "haInterval",
108
- "replicaSet",
109
- "secondaryAcceptableLatencyMS",
110
- "acceptableLatencyMS",
111
- "connectWithNoPrimary",
112
- "authSource",
113
- "w",
114
- "wtimeout",
115
- "j",
116
- "writeConcern",
117
100
  "forceServerObjectId",
118
- "serializeFunctions",
119
101
  "ignoreUndefined",
120
- "raw",
121
- "bufferMaxEntries",
122
- "readPreference",
123
- "pkFactory",
124
- "promiseLibrary",
125
- "readConcern",
102
+ "keepAlive",
103
+ "keepAliveInitialDelay",
104
+ "localThresholdMS",
126
105
  "maxStalenessSeconds",
127
- "loggerLevel",
128
- // Do not overwrite BaseDataSourceOptions.logger
129
- // "logger",
130
- "promoteValues",
106
+ "minPoolSize",
107
+ "monitorCommands",
108
+ "noDelay",
109
+ "pkFactory",
131
110
  "promoteBuffers",
132
111
  "promoteLongs",
133
- "domainsEnabled",
134
- "checkServerIdentity",
135
- "validateOptions",
112
+ "promoteValues",
113
+ "raw",
114
+ "readConcern",
115
+ "readPreference",
116
+ "readPreferenceTags",
117
+ "replicaSet",
118
+ "retryWrites",
119
+ "serializeFunctions",
120
+ "socketTimeoutMS",
121
+ "ssl",
122
+ "sslCA",
123
+ "sslCRL",
124
+ "sslCert",
125
+ "sslKey",
126
+ "sslPass",
127
+ "sslValidate",
128
+ "tls",
129
+ "tlsAllowInvalidCertificates",
130
+ "tlsCAFile",
131
+ "tlsCertificateKeyFile",
132
+ "tlsCertificateKeyFilePassword",
133
+ "w",
134
+ "writeConcern",
135
+ "wtimeoutMS",
136
+ // Undocumented deprecated options
137
+ // todo: remove next major version
136
138
  "appname",
137
- // omit auth - we are building url from username and password
138
- // "auth"
139
- "authMechanism",
140
- "compression",
141
139
  "fsync",
142
- "readPreferenceTags",
143
- "numberOfRetries",
144
- "auto_reconnect",
145
- "minSize",
146
- "monitorCommands",
140
+ "j",
147
141
  "useNewUrlParser",
148
142
  "useUnifiedTopology",
149
- "autoEncryption",
150
- "retryWrites",
151
- "directConnection",
143
+ "wtimeout",
152
144
  ];
153
- this.cteCapabilities = {
154
- enabled: false,
155
- };
156
145
  this.options = connection.options;
157
146
  // validate options to make sure everything is correct and driver will be able to establish connection
158
147
  this.validateOptions(connection.options);
@@ -380,10 +369,10 @@ export class MongoDriver {
380
369
  if (options.replicaSet) {
381
370
  connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.hostReplicaSet ||
382
371
  options.host + portUrlPart ||
383
- "127.0.0.1" + portUrlPart}/${options.database || ""}?replicaSet=${options.replicaSet}${options.tls ? "&tls=true" : ""}`;
372
+ "127.0.0.1" + portUrlPart}/${options.database || ""}`;
384
373
  }
385
374
  else {
386
- connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.host || "127.0.0.1"}${portUrlPart}/${options.database || ""}${options.tls ? "?tls=true" : ""}`;
375
+ connectionString = `${schemaUrlPart}://${credentialsUrlPart}${options.host || "127.0.0.1"}${portUrlPart}/${options.database || ""}`;
387
376
  }
388
377
  return connectionString;
389
378
  }
@@ -392,15 +381,18 @@ export class MongoDriver {
392
381
  */
393
382
  buildConnectionOptions(options) {
394
383
  const mongoOptions = {};
395
- for (let index = 0; index < this.validOptionNames.length; index++) {
396
- const optionName = this.validOptionNames[index];
397
- if (options.extra && optionName in options.extra) {
398
- mongoOptions[optionName] = options.extra[optionName];
399
- }
400
- else if (optionName in options) {
384
+ for (const optionName of this.validOptionNames) {
385
+ if (optionName in options) {
401
386
  mongoOptions[optionName] = options[optionName];
402
387
  }
403
388
  }
389
+ mongoOptions.driverInfo = {
390
+ name: "TypeORM",
391
+ };
392
+ if ("poolSize" in options) {
393
+ mongoOptions["maxPoolSize"] = options["poolSize"];
394
+ }
395
+ Object.assign(mongoOptions, options.extra);
404
396
  return mongoOptions;
405
397
  }
406
398
  }
@@ -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 { 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":["../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 { 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":"../.."}
@@ -302,31 +302,29 @@ export class MysqlDriver {
302
302
  this.pool = await this.createPool(this.createConnectionOptions(this.options, this.options));
303
303
  }
304
304
  if (!this.database) {
305
- const queryRunner = await this.createQueryRunner("master");
305
+ const queryRunner = this.createQueryRunner("master");
306
306
  this.database = await queryRunner.getCurrentDatabase();
307
307
  await queryRunner.release();
308
308
  }
309
309
  const queryRunner = this.createQueryRunner("master");
310
- const result = await queryRunner.query(`SELECT VERSION() AS \`version\``);
311
- const dbVersion = result[0].version;
312
- this.version = dbVersion;
310
+ this.version = await queryRunner.getVersion();
313
311
  await queryRunner.release();
314
312
  if (this.options.type === "mariadb") {
315
- if (VersionUtils.isGreaterOrEqual(dbVersion, "10.0.5")) {
313
+ if (VersionUtils.isGreaterOrEqual(this.version, "10.0.5")) {
316
314
  this._isReturningSqlSupported.delete = true;
317
315
  }
318
- if (VersionUtils.isGreaterOrEqual(dbVersion, "10.5.0")) {
316
+ if (VersionUtils.isGreaterOrEqual(this.version, "10.5.0")) {
319
317
  this._isReturningSqlSupported.insert = true;
320
318
  }
321
- if (VersionUtils.isGreaterOrEqual(dbVersion, "10.2.0")) {
319
+ if (VersionUtils.isGreaterOrEqual(this.version, "10.2.0")) {
322
320
  this.cteCapabilities.enabled = true;
323
321
  }
324
- if (VersionUtils.isGreaterOrEqual(dbVersion, "10.7.0")) {
322
+ if (VersionUtils.isGreaterOrEqual(this.version, "10.7.0")) {
325
323
  this.uuidColumnTypeSuported = true;
326
324
  }
327
325
  }
328
326
  else if (this.options.type === "mysql") {
329
- if (VersionUtils.isGreaterOrEqual(dbVersion, "8.0.0")) {
327
+ if (VersionUtils.isGreaterOrEqual(this.version, "8.0.0")) {
330
328
  this.cteCapabilities.enabled = true;
331
329
  }
332
330
  }
@@ -384,7 +382,7 @@ export class MysqlDriver {
384
382
  if (!parameters.hasOwnProperty(key)) {
385
383
  return full;
386
384
  }
387
- let value = parameters[key];
385
+ const value = parameters[key];
388
386
  if (isArray) {
389
387
  return value
390
388
  .map((v) => {
@@ -412,7 +410,7 @@ export class MysqlDriver {
412
410
  * E.g. myDB.mySchema.myTable
413
411
  */
414
412
  buildTableName(tableName, schema, database) {
415
- let tablePath = [tableName];
413
+ const tablePath = [tableName];
416
414
  if (database) {
417
415
  tablePath.unshift(database);
418
416
  }
@@ -576,7 +574,7 @@ export class MysqlDriver {
576
574
  }
577
575
  else if (column.type === "json" &&
578
576
  this.options.type === "mariadb" &&
579
- !VersionUtils.isGreaterOrEqual(this.version ?? "0.0.0", "10.4.3")) {
577
+ !VersionUtils.isGreaterOrEqual(this.version, "10.4.3")) {
580
578
  /*
581
579
  * MariaDB implements this as a LONGTEXT rather, as the JSON data type contradicts the SQL standard,
582
580
  * and MariaDB's benchmarks indicate that performance is at least equivalent.