typeorm 0.3.25-dev.eb3093d → 0.3.26-dev.01dddfe

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 (191) hide show
  1. package/README.md +9 -9
  2. package/browser/connection/ConnectionOptionsReader.js +1 -1
  3. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  4. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +1 -1
  5. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  6. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  7. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
  8. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +11 -20
  9. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  10. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  11. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  12. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +3 -3
  13. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  14. package/browser/driver/cockroachdb/CockroachDriver.js +3 -2
  15. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  16. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  17. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  18. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js +1 -1
  19. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -1
  20. package/browser/driver/mongodb/MongoDriver.d.ts +1 -1
  21. package/browser/driver/mongodb/MongoDriver.js +4 -4
  22. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  23. package/browser/driver/mongodb/bson.typings.d.ts +0 -4
  24. package/browser/driver/mongodb/bson.typings.js +1 -1
  25. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  26. package/browser/driver/mongodb/typings.d.ts +7 -10
  27. package/browser/driver/mongodb/typings.js +2 -2
  28. package/browser/driver/mongodb/typings.js.map +1 -1
  29. package/browser/driver/mysql/MysqlDriver.d.ts +1 -1
  30. package/browser/driver/mysql/MysqlDriver.js +3 -2
  31. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  32. package/browser/driver/mysql/MysqlQueryRunner.js +1 -1
  33. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  34. package/browser/driver/nativescript/NativescriptQueryRunner.js +1 -1
  35. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  36. package/browser/driver/oracle/OracleDriver.js +3 -7
  37. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  38. package/browser/driver/postgres/PostgresDriver.js +4 -5
  39. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  40. package/browser/driver/react-native/ReactNativeDriver.d.ts +1 -1
  41. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  42. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  43. package/browser/driver/sap/SapDriver.d.ts +1 -1
  44. package/browser/driver/sap/SapDriver.js +47 -40
  45. package/browser/driver/sap/SapDriver.js.map +1 -1
  46. package/browser/driver/sap/SapQueryRunner.js +22 -37
  47. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  48. package/browser/driver/spanner/SpannerDriver.d.ts +1 -1
  49. package/browser/driver/sqlite/SqliteDriver.js +1 -1
  50. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  51. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -2
  52. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  53. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  54. package/browser/driver/sqljs/SqljsDriver.d.ts +2 -1
  55. package/browser/driver/sqlserver/SqlServerDriver.js +3 -2
  56. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  57. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  58. package/browser/driver/types/ColumnTypes.js.map +1 -1
  59. package/browser/entity-manager/EntityManager.d.ts +1 -1
  60. package/browser/entity-manager/EntityManager.js +1 -1
  61. package/browser/entity-manager/EntityManager.js.map +1 -1
  62. package/browser/entity-manager/MongoEntityManager.js +3 -3
  63. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  64. package/browser/error/InitializedRelationError.d.ts +1 -1
  65. package/browser/error/InitializedRelationError.js +1 -1
  66. package/browser/error/InitializedRelationError.js.map +1 -1
  67. package/browser/logger/FormattedConsoleLogger.js +1 -1
  68. package/browser/logger/FormattedConsoleLogger.js.map +1 -1
  69. package/browser/metadata/ColumnMetadata.d.ts +3 -3
  70. package/browser/metadata/ColumnMetadata.js +1 -1
  71. package/browser/metadata/ColumnMetadata.js.map +1 -1
  72. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +14 -0
  73. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  74. package/browser/metadata-builder/EntityMetadataValidator.js +2 -4
  75. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  76. package/browser/metadata-builder/RelationJoinColumnBuilder.js +7 -0
  77. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  78. package/browser/persistence/SubjectChangedColumnsComputer.js +4 -4
  79. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  80. package/browser/persistence/SubjectExecutor.js +4 -10
  81. package/browser/persistence/SubjectExecutor.js.map +1 -1
  82. package/browser/persistence/SubjectTopologicalSorter.js +5 -4
  83. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  84. package/browser/query-builder/RelationLoader.js +2 -0
  85. package/browser/query-builder/RelationLoader.js.map +1 -1
  86. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  87. package/browser/query-runner/QueryLock.js +1 -0
  88. package/browser/query-runner/QueryLock.js.map +1 -1
  89. package/browser/util/ImportUtils.d.ts +1 -1
  90. package/browser/util/ImportUtils.js +2 -1
  91. package/browser/util/ImportUtils.js.map +1 -1
  92. package/browser/util/OrmUtils.d.ts +11 -10
  93. package/browser/util/OrmUtils.js +31 -31
  94. package/browser/util/OrmUtils.js.map +1 -1
  95. package/cli.js +3 -1
  96. package/cli.js.map +1 -1
  97. package/connection/ConnectionOptionsReader.js +1 -1
  98. package/connection/ConnectionOptionsReader.js.map +1 -1
  99. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +1 -1
  100. package/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  101. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  102. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
  103. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +11 -20
  104. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  105. package/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  106. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  107. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +3 -3
  108. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  109. package/driver/cockroachdb/CockroachDriver.js +3 -2
  110. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  111. package/driver/cordova/CordovaQueryRunner.js +1 -1
  112. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  113. package/driver/expo/legacy/ExpoLegacyQueryRunner.js +1 -1
  114. package/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -1
  115. package/driver/mongodb/MongoDriver.d.ts +1 -1
  116. package/driver/mongodb/MongoDriver.js +4 -4
  117. package/driver/mongodb/MongoDriver.js.map +1 -1
  118. package/driver/mongodb/bson.typings.d.ts +0 -4
  119. package/driver/mongodb/bson.typings.js +0 -1
  120. package/driver/mongodb/bson.typings.js.map +1 -1
  121. package/driver/mongodb/typings.d.ts +7 -10
  122. package/driver/mongodb/typings.js +3 -2
  123. package/driver/mongodb/typings.js.map +1 -1
  124. package/driver/mysql/MysqlDriver.d.ts +1 -1
  125. package/driver/mysql/MysqlDriver.js +3 -2
  126. package/driver/mysql/MysqlDriver.js.map +1 -1
  127. package/driver/mysql/MysqlQueryRunner.js +1 -1
  128. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  129. package/driver/nativescript/NativescriptQueryRunner.js +1 -1
  130. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  131. package/driver/oracle/OracleDriver.js +3 -7
  132. package/driver/oracle/OracleDriver.js.map +1 -1
  133. package/driver/postgres/PostgresDriver.js +4 -5
  134. package/driver/postgres/PostgresDriver.js.map +1 -1
  135. package/driver/react-native/ReactNativeDriver.d.ts +1 -1
  136. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  137. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  138. package/driver/sap/SapDriver.d.ts +1 -1
  139. package/driver/sap/SapDriver.js +47 -40
  140. package/driver/sap/SapDriver.js.map +1 -1
  141. package/driver/sap/SapQueryRunner.js +22 -37
  142. package/driver/sap/SapQueryRunner.js.map +1 -1
  143. package/driver/spanner/SpannerDriver.d.ts +1 -1
  144. package/driver/sqlite/SqliteDriver.js +1 -1
  145. package/driver/sqlite/SqliteDriver.js.map +1 -1
  146. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -2
  147. package/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  148. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  149. package/driver/sqljs/SqljsDriver.d.ts +2 -1
  150. package/driver/sqlserver/SqlServerDriver.js +3 -2
  151. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  152. package/driver/types/ColumnTypes.d.ts +1 -1
  153. package/driver/types/ColumnTypes.js.map +1 -1
  154. package/entity-manager/EntityManager.d.ts +1 -1
  155. package/entity-manager/EntityManager.js +1 -1
  156. package/entity-manager/EntityManager.js.map +1 -1
  157. package/entity-manager/MongoEntityManager.js +3 -3
  158. package/entity-manager/MongoEntityManager.js.map +1 -1
  159. package/error/InitializedRelationError.d.ts +1 -1
  160. package/error/InitializedRelationError.js +1 -1
  161. package/error/InitializedRelationError.js.map +1 -1
  162. package/index.mjs +2 -2
  163. package/logger/FormattedConsoleLogger.js +1 -1
  164. package/logger/FormattedConsoleLogger.js.map +1 -1
  165. package/metadata/ColumnMetadata.d.ts +3 -3
  166. package/metadata/ColumnMetadata.js +1 -1
  167. package/metadata/ColumnMetadata.js.map +1 -1
  168. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +14 -0
  169. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  170. package/metadata-builder/EntityMetadataValidator.js +2 -4
  171. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  172. package/metadata-builder/RelationJoinColumnBuilder.js +7 -0
  173. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  174. package/package.json +1 -1
  175. package/persistence/SubjectChangedColumnsComputer.js +4 -4
  176. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  177. package/persistence/SubjectExecutor.js +4 -10
  178. package/persistence/SubjectExecutor.js.map +1 -1
  179. package/persistence/SubjectTopologicalSorter.js +5 -4
  180. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  181. package/query-builder/RelationLoader.js +2 -0
  182. package/query-builder/RelationLoader.js.map +1 -1
  183. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  184. package/query-runner/QueryLock.js +1 -0
  185. package/query-runner/QueryLock.js.map +1 -1
  186. package/util/ImportUtils.d.ts +1 -1
  187. package/util/ImportUtils.js +2 -1
  188. package/util/ImportUtils.js.map +1 -1
  189. package/util/OrmUtils.d.ts +11 -10
  190. package/util/OrmUtils.js +31 -31
  191. package/util/OrmUtils.js.map +1 -1
package/README.md CHANGED
@@ -29,7 +29,7 @@ that help you to develop any kind of application that uses databases - from
29
29
  small applications with a few tables to large-scale enterprise applications
30
30
  with multiple databases.
31
31
 
32
- TypeORM supports both [Active Record](./docs/active-record-data-mapper.md#what-is-the-active-record-pattern) and [Data Mapper](./docs/active-record-data-mapper.md#what-is-the-data-mapper-pattern) patterns,
32
+ TypeORM supports both [Active Record](./docs/docs/guides/1-active-record-data-mapper.md#what-is-the-active-record-pattern) and [Data Mapper](./docs/docs/guides/1-active-record-data-mapper.md#what-is-the-data-mapper-pattern) patterns,
33
33
  unlike all other JavaScript ORMs currently in existence,
34
34
  which means you can write high-quality, loosely coupled, scalable,
35
35
  maintainable applications in the most productive way.
@@ -39,7 +39,7 @@ TypeORM is highly influenced by other ORMs, such as [Hibernate](http://hibernate
39
39
 
40
40
  ## Features
41
41
 
42
- - Supports both [DataMapper](./docs/active-record-data-mapper.md#what-is-the-data-mapper-pattern) and [ActiveRecord](./docs/active-record-data-mapper.md#what-is-the-active-record-pattern) (your choice).
42
+ - Supports both [DataMapper](./docs/docs/guides/1-active-record-data-mapper.md#what-is-the-data-mapper-pattern) and [ActiveRecord](./docs/docs/guides/1-active-record-data-mapper.md#what-is-the-active-record-pattern) (your choice).
43
43
  - Entities and columns.
44
44
  - Database-specific column types.
45
45
  - Entity manager.
@@ -158,7 +158,7 @@ const firstUser = await User.findOneBy({
158
158
  })
159
159
  const timber = await User.findOneBy({
160
160
  firstName: "Timber",
161
- lastName: "Saw"
161
+ lastName: "Saw",
162
162
  })
163
163
 
164
164
  await timber.remove()
@@ -255,7 +255,7 @@ await timber.remove()
255
255
 
256
256
  - for **NativeScript**, **react-native** and **Cordova**
257
257
 
258
- Check [documentation of supported platforms](./docs/supported-platforms.md)
258
+ Check [documentation of supported platforms](./docs/docs/help/2-supported-platforms.md)
259
259
 
260
260
  Install only _one_ of them, depending on which database you use.
261
261
 
@@ -547,7 +547,7 @@ export class Photo {
547
547
 
548
548
  Column types are database-specific.
549
549
  You can set any column type your database supports.
550
- More information on supported column types can be found [here](./docs/entities.md#column-types).
550
+ More information on supported column types can be found [here](./docs/docs/entity/1-entities.md#column-types).
551
551
 
552
552
  ### Creating a new `DataSource`
553
553
 
@@ -648,7 +648,7 @@ console.log("All photos from the db: ", savedPhotos)
648
648
 
649
649
  `savedPhotos` will be an array of Photo objects with the data loaded from the database.
650
650
 
651
- Learn more about EntityManager [here](./docs/working-with-entity-manager.md).
651
+ Learn more about EntityManager [here](./docs/docs/working-with-entity-manager/1-working-with-entity-manager.md).
652
652
 
653
653
  ### Using Repositories
654
654
 
@@ -676,7 +676,7 @@ const savedPhotos = await photoRepository.find()
676
676
  console.log("All photos from the db: ", savedPhotos)
677
677
  ```
678
678
 
679
- Learn more about Repository [here](./docs/working-with-repository.md).
679
+ Learn more about Repository [here](./docs/docs/working-with-entity-manager/2-working-with-repository.md).
680
680
 
681
681
  ### Loading from the database
682
682
 
@@ -966,7 +966,7 @@ const photos = await photoRepository.find({
966
966
  ```
967
967
 
968
968
  Here, photos will contain an array of photos from the database, and each photo will contain its photo metadata.
969
- Learn more about Find Options in [this documentation](./docs/find-options.md).
969
+ Learn more about Find Options in [this documentation](./docs/docs/working-with-entity-manager/3-find-options.md).
970
970
 
971
971
  Using find options is good and dead simple, but if you need a more complex query, you should use `QueryBuilder` instead.
972
972
  `QueryBuilder` allows more complex queries to be used in an elegant way:
@@ -1255,7 +1255,7 @@ The selection result will be ordered by id in descending order.
1255
1255
  The photo albums will be left joined and their metadata will be inner joined.
1256
1256
 
1257
1257
  You'll use the query builder in your application a lot.
1258
- Learn more about QueryBuilder [here](./docs/select-query-builder.md).
1258
+ Learn more about QueryBuilder [here](./docs/docs/query-builder/1-select-query-builder.md).
1259
1259
 
1260
1260
  ## Samples
1261
1261
 
@@ -90,7 +90,7 @@ export class ConnectionOptionsReader {
90
90
  // try to find connection options from any of available sources of configuration
91
91
  if (PlatformTools.getEnvVariable("TYPEORM_CONNECTION") ||
92
92
  PlatformTools.getEnvVariable("TYPEORM_URL")) {
93
- connectionOptions = await new ConnectionOptionsEnvReader().read();
93
+ connectionOptions = new ConnectionOptionsEnvReader().read();
94
94
  }
95
95
  else if (foundFileFormat === "js" ||
96
96
  foundFileFormat === "mjs" ||
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/connection/ConnectionOptionsReader.ts"],"names":[],"mappings":"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","file":"ConnectionOptionsReader.js","sourcesContent":["import appRootPath from \"app-root-path\"\nimport path from \"path\"\n\nimport { DataSourceOptions } from \"../data-source/DataSourceOptions\"\nimport { TypeORMError } from \"../error\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { importOrRequireFile } from \"../util/ImportUtils\"\nimport { isAbsolute } from \"../util/PathUtils\"\nimport { ConnectionOptionsEnvReader } from \"./options-reader/ConnectionOptionsEnvReader\"\n\n/**\n * Reads connection options from the ormconfig.\n */\nexport class ConnectionOptionsReader {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n protected options?: {\n /**\n * Directory where ormconfig should be read from.\n * By default its your application root (where your app package.json is located).\n */\n root?: string\n\n /**\n * Filename of the ormconfig configuration. By default its equal to \"ormconfig\".\n */\n configName?: string\n },\n ) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Returns all connection options read from the ormconfig.\n */\n async all(): Promise<DataSourceOptions[]> {\n const options = await this.load()\n if (!options)\n throw new TypeORMError(\n `No connection options were found in any orm configuration files.`,\n )\n\n return options\n }\n\n /**\n * Gets a connection with a given name read from ormconfig.\n * If connection with such name would not be found then it throw error.\n */\n async get(name: string): Promise<DataSourceOptions> {\n const allOptions = await this.all()\n const targetOptions = allOptions.find(\n (options) =>\n options.name === name || (name === \"default\" && !options.name),\n )\n if (!targetOptions)\n throw new TypeORMError(\n `Cannot find connection ${name} because its not defined in any orm configuration files.`,\n )\n\n return targetOptions\n }\n\n /**\n * Checks if there is a TypeORM configuration file.\n */\n async has(name: string): Promise<boolean> {\n const allOptions = await this.load()\n if (!allOptions) return false\n\n const targetOptions = allOptions.find(\n (options) =>\n options.name === name || (name === \"default\" && !options.name),\n )\n return !!targetOptions\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Loads all connection options from a configuration file.\n *\n * todo: get in count NODE_ENV somehow\n */\n protected async load(): Promise<DataSourceOptions[] | undefined> {\n let connectionOptions:\n | DataSourceOptions\n | DataSourceOptions[]\n | undefined = undefined\n\n const fileFormats = [\n \"env\",\n \"js\",\n \"mjs\",\n \"cjs\",\n \"ts\",\n \"mts\",\n \"cts\",\n \"json\",\n ]\n\n // Detect if baseFilePath contains file extension\n const possibleExtension = this.baseFilePath.substr(\n this.baseFilePath.lastIndexOf(\".\"),\n )\n const fileExtension = fileFormats.find(\n (extension) => `.${extension}` === possibleExtension,\n )\n\n // try to find any of following configuration formats\n const foundFileFormat =\n fileExtension ||\n fileFormats.find((format) => {\n return PlatformTools.fileExist(this.baseFilePath + \".\" + format)\n })\n\n // Determine config file name\n const configFile = fileExtension\n ? this.baseFilePath\n : this.baseFilePath + \".\" + foundFileFormat\n\n // if .env file found then load all its variables into process.env using dotenv package\n if (foundFileFormat === \"env\") {\n PlatformTools.dotenv(configFile)\n } else if (PlatformTools.fileExist(this.baseDirectory + \"/.env\")) {\n PlatformTools.dotenv(this.baseDirectory + \"/.env\")\n }\n\n // try to find connection options from any of available sources of configuration\n if (\n PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") ||\n PlatformTools.getEnvVariable(\"TYPEORM_URL\")\n ) {\n connectionOptions = await new ConnectionOptionsEnvReader().read()\n } else if (\n foundFileFormat === \"js\" ||\n foundFileFormat === \"mjs\" ||\n foundFileFormat === \"cjs\" ||\n foundFileFormat === \"ts\" ||\n foundFileFormat === \"mts\" ||\n foundFileFormat === \"cts\"\n ) {\n const [importOrRequireResult, moduleSystem] =\n await importOrRequireFile(configFile)\n const configModule = await importOrRequireResult\n\n if (\n moduleSystem === \"esm\" ||\n (configModule &&\n \"__esModule\" in configModule &&\n \"default\" in configModule)\n ) {\n connectionOptions = configModule.default\n } else {\n connectionOptions = configModule\n }\n } else if (foundFileFormat === \"json\") {\n connectionOptions = require(configFile)\n }\n\n // normalize and return connection options\n if (connectionOptions) {\n return this.normalizeConnectionOptions(connectionOptions)\n }\n\n return undefined\n }\n\n /**\n * Normalize connection options.\n */\n protected normalizeConnectionOptions(\n connectionOptions: DataSourceOptions | DataSourceOptions[],\n ): DataSourceOptions[] {\n if (!Array.isArray(connectionOptions))\n connectionOptions = [connectionOptions]\n\n connectionOptions.forEach((options) => {\n options.baseDirectory = this.baseDirectory\n if (options.entities) {\n const entities = (options.entities as any[]).map((entity) => {\n if (\n typeof entity === \"string\" &&\n entity.substr(0, 1) !== \"/\"\n )\n return this.baseDirectory + \"/\" + entity\n\n return entity\n })\n Object.assign(connectionOptions, { entities: entities })\n }\n if (options.subscribers) {\n const subscribers = (options.subscribers as any[]).map(\n (subscriber) => {\n if (\n typeof subscriber === \"string\" &&\n subscriber.substr(0, 1) !== \"/\"\n )\n return this.baseDirectory + \"/\" + subscriber\n\n return subscriber\n },\n )\n Object.assign(connectionOptions, { subscribers: subscribers })\n }\n if (options.migrations) {\n const migrations = (options.migrations as any[]).map(\n (migration) => {\n if (\n typeof migration === \"string\" &&\n migration.substr(0, 1) !== \"/\"\n )\n return this.baseDirectory + \"/\" + migration\n\n return migration\n },\n )\n Object.assign(connectionOptions, { migrations: migrations })\n }\n\n // make database path file in sqlite relative to package.json\n if (\n options.type === \"sqlite\" ||\n options.type === \"better-sqlite3\"\n ) {\n if (\n typeof options.database === \"string\" &&\n !isAbsolute(options.database) &&\n options.database.substr(0, 1) !== \"/\" && // unix absolute\n options.database.substr(1, 2) !== \":\\\\\" && // windows absolute\n options.database !== \":memory:\"\n ) {\n Object.assign(options, {\n database: this.baseDirectory + \"/\" + options.database,\n })\n }\n }\n })\n\n return connectionOptions\n }\n\n /**\n * Gets directory where configuration file should be located and configuration file name.\n */\n protected get baseFilePath(): string {\n return path.resolve(this.baseDirectory, this.baseConfigName)\n }\n\n /**\n * Gets directory where configuration file should be located.\n */\n protected get baseDirectory(): string {\n return this.options?.root ?? appRootPath.path\n }\n\n /**\n * Gets configuration file name.\n */\n protected get baseConfigName(): string {\n return this.options?.configName ?? \"ormconfig\"\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/connection/ConnectionOptionsReader.ts"],"names":[],"mappings":"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","file":"ConnectionOptionsReader.js","sourcesContent":["import appRootPath from \"app-root-path\"\nimport path from \"path\"\n\nimport { DataSourceOptions } from \"../data-source/DataSourceOptions\"\nimport { TypeORMError } from \"../error\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { importOrRequireFile } from \"../util/ImportUtils\"\nimport { isAbsolute } from \"../util/PathUtils\"\nimport { ConnectionOptionsEnvReader } from \"./options-reader/ConnectionOptionsEnvReader\"\n\n/**\n * Reads connection options from the ormconfig.\n */\nexport class ConnectionOptionsReader {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n protected options?: {\n /**\n * Directory where ormconfig should be read from.\n * By default its your application root (where your app package.json is located).\n */\n root?: string\n\n /**\n * Filename of the ormconfig configuration. By default its equal to \"ormconfig\".\n */\n configName?: string\n },\n ) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Returns all connection options read from the ormconfig.\n */\n async all(): Promise<DataSourceOptions[]> {\n const options = await this.load()\n if (!options)\n throw new TypeORMError(\n `No connection options were found in any orm configuration files.`,\n )\n\n return options\n }\n\n /**\n * Gets a connection with a given name read from ormconfig.\n * If connection with such name would not be found then it throw error.\n */\n async get(name: string): Promise<DataSourceOptions> {\n const allOptions = await this.all()\n const targetOptions = allOptions.find(\n (options) =>\n options.name === name || (name === \"default\" && !options.name),\n )\n if (!targetOptions)\n throw new TypeORMError(\n `Cannot find connection ${name} because its not defined in any orm configuration files.`,\n )\n\n return targetOptions\n }\n\n /**\n * Checks if there is a TypeORM configuration file.\n */\n async has(name: string): Promise<boolean> {\n const allOptions = await this.load()\n if (!allOptions) return false\n\n const targetOptions = allOptions.find(\n (options) =>\n options.name === name || (name === \"default\" && !options.name),\n )\n return !!targetOptions\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Loads all connection options from a configuration file.\n *\n * todo: get in count NODE_ENV somehow\n */\n protected async load(): Promise<DataSourceOptions[] | undefined> {\n let connectionOptions:\n | DataSourceOptions\n | DataSourceOptions[]\n | undefined = undefined\n\n const fileFormats = [\n \"env\",\n \"js\",\n \"mjs\",\n \"cjs\",\n \"ts\",\n \"mts\",\n \"cts\",\n \"json\",\n ]\n\n // Detect if baseFilePath contains file extension\n const possibleExtension = this.baseFilePath.substr(\n this.baseFilePath.lastIndexOf(\".\"),\n )\n const fileExtension = fileFormats.find(\n (extension) => `.${extension}` === possibleExtension,\n )\n\n // try to find any of following configuration formats\n const foundFileFormat =\n fileExtension ||\n fileFormats.find((format) => {\n return PlatformTools.fileExist(this.baseFilePath + \".\" + format)\n })\n\n // Determine config file name\n const configFile = fileExtension\n ? this.baseFilePath\n : this.baseFilePath + \".\" + foundFileFormat\n\n // if .env file found then load all its variables into process.env using dotenv package\n if (foundFileFormat === \"env\") {\n PlatformTools.dotenv(configFile)\n } else if (PlatformTools.fileExist(this.baseDirectory + \"/.env\")) {\n PlatformTools.dotenv(this.baseDirectory + \"/.env\")\n }\n\n // try to find connection options from any of available sources of configuration\n if (\n PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") ||\n PlatformTools.getEnvVariable(\"TYPEORM_URL\")\n ) {\n connectionOptions = new ConnectionOptionsEnvReader().read()\n } else if (\n foundFileFormat === \"js\" ||\n foundFileFormat === \"mjs\" ||\n foundFileFormat === \"cjs\" ||\n foundFileFormat === \"ts\" ||\n foundFileFormat === \"mts\" ||\n foundFileFormat === \"cts\"\n ) {\n const [importOrRequireResult, moduleSystem] =\n await importOrRequireFile(configFile)\n const configModule = await importOrRequireResult\n\n if (\n moduleSystem === \"esm\" ||\n (configModule &&\n \"__esModule\" in configModule &&\n \"default\" in configModule)\n ) {\n connectionOptions = configModule.default\n } else {\n connectionOptions = configModule\n }\n } else if (foundFileFormat === \"json\") {\n connectionOptions = require(configFile)\n }\n\n // normalize and return connection options\n if (connectionOptions) {\n return this.normalizeConnectionOptions(connectionOptions)\n }\n\n return undefined\n }\n\n /**\n * Normalize connection options.\n */\n protected normalizeConnectionOptions(\n connectionOptions: DataSourceOptions | DataSourceOptions[],\n ): DataSourceOptions[] {\n if (!Array.isArray(connectionOptions))\n connectionOptions = [connectionOptions]\n\n connectionOptions.forEach((options) => {\n options.baseDirectory = this.baseDirectory\n if (options.entities) {\n const entities = (options.entities as any[]).map((entity) => {\n if (\n typeof entity === \"string\" &&\n entity.substr(0, 1) !== \"/\"\n )\n return this.baseDirectory + \"/\" + entity\n\n return entity\n })\n Object.assign(connectionOptions, { entities: entities })\n }\n if (options.subscribers) {\n const subscribers = (options.subscribers as any[]).map(\n (subscriber) => {\n if (\n typeof subscriber === \"string\" &&\n subscriber.substr(0, 1) !== \"/\"\n )\n return this.baseDirectory + \"/\" + subscriber\n\n return subscriber\n },\n )\n Object.assign(connectionOptions, { subscribers: subscribers })\n }\n if (options.migrations) {\n const migrations = (options.migrations as any[]).map(\n (migration) => {\n if (\n typeof migration === \"string\" &&\n migration.substr(0, 1) !== \"/\"\n )\n return this.baseDirectory + \"/\" + migration\n\n return migration\n },\n )\n Object.assign(connectionOptions, { migrations: migrations })\n }\n\n // make database path file in sqlite relative to package.json\n if (\n options.type === \"sqlite\" ||\n options.type === \"better-sqlite3\"\n ) {\n if (\n typeof options.database === \"string\" &&\n !isAbsolute(options.database) &&\n options.database.substr(0, 1) !== \"/\" && // unix absolute\n options.database.substr(1, 2) !== \":\\\\\" && // windows absolute\n options.database !== \":memory:\"\n ) {\n Object.assign(options, {\n database: this.baseDirectory + \"/\" + options.database,\n })\n }\n }\n })\n\n return connectionOptions\n }\n\n /**\n * Gets directory where configuration file should be located and configuration file name.\n */\n protected get baseFilePath(): string {\n return path.resolve(this.baseDirectory, this.baseConfigName)\n }\n\n /**\n * Gets directory where configuration file should be located.\n */\n protected get baseDirectory(): string {\n return this.options?.root ?? appRootPath.path\n }\n\n /**\n * Gets configuration file name.\n */\n protected get baseConfigName(): string {\n return this.options?.configName ?? \"ormconfig\"\n }\n}\n"],"sourceRoot":".."}
@@ -10,7 +10,7 @@ export declare class ConnectionOptionsEnvReader {
10
10
  /**
11
11
  * Reads connection options from environment variables.
12
12
  */
13
- read(): Promise<DataSourceOptions[]>;
13
+ read(): DataSourceOptions[];
14
14
  /**
15
15
  * Transforms logging string into real logging value connection requires.
16
16
  */
@@ -14,7 +14,7 @@ export class ConnectionOptionsEnvReader {
14
14
  /**
15
15
  * Reads connection options from environment variables.
16
16
  */
17
- async read() {
17
+ read() {
18
18
  return [
19
19
  {
20
20
  type: PlatformTools.getEnvVariable("TYPEORM_CONNECTION") ||
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/connection/options-reader/ConnectionOptionsEnvReader.ts"],"names":[],"mappings":"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","file":"ConnectionOptionsEnvReader.js","sourcesContent":["import { DataSourceOptions } from \"../../data-source/DataSourceOptions\"\nimport { PlatformTools } from \"../../platform/PlatformTools\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\n\n/**\n * Reads connection options from environment variables.\n * Environment variables can have only a single connection.\n * Its strongly required to define TYPEORM_CONNECTION env variable.\n *\n * @deprecated\n */\nexport class ConnectionOptionsEnvReader {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Reads connection options from environment variables.\n */\n async read(): Promise<DataSourceOptions[]> {\n return [\n {\n type:\n PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") ||\n (PlatformTools.getEnvVariable(\"TYPEORM_URL\")\n ? PlatformTools.getEnvVariable(\"TYPEORM_URL\").split(\n \"://\",\n )[0]\n : undefined),\n url: PlatformTools.getEnvVariable(\"TYPEORM_URL\"),\n host: PlatformTools.getEnvVariable(\"TYPEORM_HOST\"),\n port: this.stringToNumber(\n PlatformTools.getEnvVariable(\"TYPEORM_PORT\"),\n ),\n username: PlatformTools.getEnvVariable(\"TYPEORM_USERNAME\"),\n password: PlatformTools.getEnvVariable(\"TYPEORM_PASSWORD\"),\n database: PlatformTools.getEnvVariable(\"TYPEORM_DATABASE\"),\n sid: PlatformTools.getEnvVariable(\"TYPEORM_SID\"),\n schema: PlatformTools.getEnvVariable(\"TYPEORM_SCHEMA\"),\n extra: PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\")\n ? JSON.parse(\n PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\"),\n )\n : undefined,\n synchronize: OrmUtils.toBoolean(\n PlatformTools.getEnvVariable(\"TYPEORM_SYNCHRONIZE\"),\n ),\n dropSchema: OrmUtils.toBoolean(\n PlatformTools.getEnvVariable(\"TYPEORM_DROP_SCHEMA\"),\n ),\n migrationsRun: OrmUtils.toBoolean(\n PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_RUN\"),\n ),\n entities: this.stringToArray(\n PlatformTools.getEnvVariable(\"TYPEORM_ENTITIES\"),\n ),\n migrations: this.stringToArray(\n PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS\"),\n ),\n migrationsTableName: PlatformTools.getEnvVariable(\n \"TYPEORM_MIGRATIONS_TABLE_NAME\",\n ),\n metadataTableName: PlatformTools.getEnvVariable(\n \"TYPEORM_METADATA_TABLE_NAME\",\n ),\n subscribers: this.stringToArray(\n PlatformTools.getEnvVariable(\"TYPEORM_SUBSCRIBERS\"),\n ),\n logging: this.transformLogging(\n PlatformTools.getEnvVariable(\"TYPEORM_LOGGING\"),\n ),\n logger: PlatformTools.getEnvVariable(\"TYPEORM_LOGGER\"),\n entityPrefix: PlatformTools.getEnvVariable(\n \"TYPEORM_ENTITY_PREFIX\",\n ),\n maxQueryExecutionTime: PlatformTools.getEnvVariable(\n \"TYPEORM_MAX_QUERY_EXECUTION_TIME\",\n ),\n debug: PlatformTools.getEnvVariable(\"TYPEORM_DEBUG\"),\n cache: this.transformCaching(),\n uuidExtension: PlatformTools.getEnvVariable(\n \"TYPEORM_UUID_EXTENSION\",\n ),\n },\n ]\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Transforms logging string into real logging value connection requires.\n */\n protected transformLogging(logging: string): any {\n if (logging === \"true\" || logging === \"TRUE\" || logging === \"1\")\n return true\n if (logging === \"all\") return \"all\"\n\n return this.stringToArray(logging)\n }\n\n /**\n * Transforms caching option into real caching value option requires.\n */\n protected transformCaching(): boolean | object | undefined {\n const caching = PlatformTools.getEnvVariable(\"TYPEORM_CACHE\")\n if (caching === \"true\" || caching === \"TRUE\" || caching === \"1\")\n return true\n if (caching === \"false\" || caching === \"FALSE\" || caching === \"0\")\n return false\n if (\n caching === \"redis\" ||\n caching === \"ioredis\" ||\n caching === \"database\"\n )\n return {\n type: caching,\n options: PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\")\n ? JSON.parse(\n PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\"),\n )\n : undefined,\n alwaysEnabled: PlatformTools.getEnvVariable(\n \"TYPEORM_CACHE_ALWAYS_ENABLED\",\n ),\n duration: parseInt(\n PlatformTools.getEnvVariable(\"TYPEORM_CACHE_DURATION\"),\n ),\n }\n\n return undefined\n }\n\n /**\n * Converts a string which contains multiple elements split by comma into a string array of strings.\n */\n protected stringToArray(variable?: string) {\n if (!variable) return []\n return variable.split(\",\").map((str) => str.trim())\n }\n\n /**\n * Converts a string which contains a number into a javascript number\n */\n private stringToNumber(value: any): number | undefined {\n if (!value) {\n return undefined\n }\n\n return parseInt(value)\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/connection/options-reader/ConnectionOptionsEnvReader.ts"],"names":[],"mappings":"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","file":"ConnectionOptionsEnvReader.js","sourcesContent":["import { DataSourceOptions } from \"../../data-source/DataSourceOptions\"\nimport { PlatformTools } from \"../../platform/PlatformTools\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\n\n/**\n * Reads connection options from environment variables.\n * Environment variables can have only a single connection.\n * Its strongly required to define TYPEORM_CONNECTION env variable.\n *\n * @deprecated\n */\nexport class ConnectionOptionsEnvReader {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Reads connection options from environment variables.\n */\n read(): DataSourceOptions[] {\n return [\n {\n type:\n PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") ||\n (PlatformTools.getEnvVariable(\"TYPEORM_URL\")\n ? PlatformTools.getEnvVariable(\"TYPEORM_URL\").split(\n \"://\",\n )[0]\n : undefined),\n url: PlatformTools.getEnvVariable(\"TYPEORM_URL\"),\n host: PlatformTools.getEnvVariable(\"TYPEORM_HOST\"),\n port: this.stringToNumber(\n PlatformTools.getEnvVariable(\"TYPEORM_PORT\"),\n ),\n username: PlatformTools.getEnvVariable(\"TYPEORM_USERNAME\"),\n password: PlatformTools.getEnvVariable(\"TYPEORM_PASSWORD\"),\n database: PlatformTools.getEnvVariable(\"TYPEORM_DATABASE\"),\n sid: PlatformTools.getEnvVariable(\"TYPEORM_SID\"),\n schema: PlatformTools.getEnvVariable(\"TYPEORM_SCHEMA\"),\n extra: PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\")\n ? JSON.parse(\n PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\"),\n )\n : undefined,\n synchronize: OrmUtils.toBoolean(\n PlatformTools.getEnvVariable(\"TYPEORM_SYNCHRONIZE\"),\n ),\n dropSchema: OrmUtils.toBoolean(\n PlatformTools.getEnvVariable(\"TYPEORM_DROP_SCHEMA\"),\n ),\n migrationsRun: OrmUtils.toBoolean(\n PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_RUN\"),\n ),\n entities: this.stringToArray(\n PlatformTools.getEnvVariable(\"TYPEORM_ENTITIES\"),\n ),\n migrations: this.stringToArray(\n PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS\"),\n ),\n migrationsTableName: PlatformTools.getEnvVariable(\n \"TYPEORM_MIGRATIONS_TABLE_NAME\",\n ),\n metadataTableName: PlatformTools.getEnvVariable(\n \"TYPEORM_METADATA_TABLE_NAME\",\n ),\n subscribers: this.stringToArray(\n PlatformTools.getEnvVariable(\"TYPEORM_SUBSCRIBERS\"),\n ),\n logging: this.transformLogging(\n PlatformTools.getEnvVariable(\"TYPEORM_LOGGING\"),\n ),\n logger: PlatformTools.getEnvVariable(\"TYPEORM_LOGGER\"),\n entityPrefix: PlatformTools.getEnvVariable(\n \"TYPEORM_ENTITY_PREFIX\",\n ),\n maxQueryExecutionTime: PlatformTools.getEnvVariable(\n \"TYPEORM_MAX_QUERY_EXECUTION_TIME\",\n ),\n debug: PlatformTools.getEnvVariable(\"TYPEORM_DEBUG\"),\n cache: this.transformCaching(),\n uuidExtension: PlatformTools.getEnvVariable(\n \"TYPEORM_UUID_EXTENSION\",\n ),\n },\n ]\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Transforms logging string into real logging value connection requires.\n */\n protected transformLogging(logging: string): any {\n if (logging === \"true\" || logging === \"TRUE\" || logging === \"1\")\n return true\n if (logging === \"all\") return \"all\"\n\n return this.stringToArray(logging)\n }\n\n /**\n * Transforms caching option into real caching value option requires.\n */\n protected transformCaching(): boolean | object | undefined {\n const caching = PlatformTools.getEnvVariable(\"TYPEORM_CACHE\")\n if (caching === \"true\" || caching === \"TRUE\" || caching === \"1\")\n return true\n if (caching === \"false\" || caching === \"FALSE\" || caching === \"0\")\n return false\n if (\n caching === \"redis\" ||\n caching === \"ioredis\" ||\n caching === \"database\"\n )\n return {\n type: caching,\n options: PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\")\n ? JSON.parse(\n PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\"),\n )\n : undefined,\n alwaysEnabled: PlatformTools.getEnvVariable(\n \"TYPEORM_CACHE_ALWAYS_ENABLED\",\n ),\n duration: parseInt(\n PlatformTools.getEnvVariable(\"TYPEORM_CACHE_DURATION\"),\n ),\n }\n\n return undefined\n }\n\n /**\n * Converts a string which contains multiple elements split by comma into a string array of strings.\n */\n protected stringToArray(variable?: string) {\n if (!variable) return []\n return variable.split(\",\").map((str) => str.trim())\n }\n\n /**\n * Converts a string which contains a number into a javascript number\n */\n private stringToNumber(value: any): number | undefined {\n if (!value) {\n return undefined\n }\n\n return parseInt(value)\n }\n}\n"],"sourceRoot":"../.."}
@@ -202,7 +202,7 @@ export declare class AuroraMysqlDriver implements Driver {
202
202
  /**
203
203
  * Creates generated map of values generated or returned by database after INSERT query.
204
204
  */
205
- createGeneratedMap(metadata: EntityMetadata, insertResult: any, entityIndex: number): any;
205
+ createGeneratedMap(metadata: EntityMetadata, insertResult: any, entityIndex: number): ObjectLiteral | undefined;
206
206
  /**
207
207
  * Differentiate columns of this table and columns from the given column metadatas columns
208
208
  * and returns only changed.
@@ -1177,7 +1177,7 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1177
1177
  this.query(foreignKeysSql),
1178
1178
  ]);
1179
1179
  // create tables for loaded tables
1180
- return Promise.all(dbTables.map(async (dbTable) => {
1180
+ return dbTables.map((dbTable) => {
1181
1181
  const table = new Table();
1182
1182
  const dbCollation = dbCollations.find((coll) => coll["SCHEMA_NAME"] === dbTable["TABLE_SCHEMA"]);
1183
1183
  const defaultCollation = dbCollation["COLLATION"];
@@ -1191,12 +1191,10 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1191
1191
  // create columns from the loaded columns
1192
1192
  table.columns = dbColumns
1193
1193
  .filter((dbColumn) => dbColumn["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1194
- dbColumn["TABLE_SCHEMA"] ===
1195
- dbTable["TABLE_SCHEMA"])
1194
+ dbColumn["TABLE_SCHEMA"] === dbTable["TABLE_SCHEMA"])
1196
1195
  .map((dbColumn) => {
1197
1196
  const columnUniqueIndices = dbIndices.filter((dbIndex) => {
1198
- return (dbIndex["TABLE_NAME"] ===
1199
- dbTable["TABLE_NAME"] &&
1197
+ return (dbIndex["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1200
1198
  dbIndex["TABLE_SCHEMA"] ===
1201
1199
  dbTable["TABLE_SCHEMA"] &&
1202
1200
  dbIndex["COLUMN_NAME"] ===
@@ -1209,8 +1207,7 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1209
1207
  tableMetadata &&
1210
1208
  tableMetadata.indices.some((index) => {
1211
1209
  return columnUniqueIndices.some((uniqueIndex) => {
1212
- return (index.name ===
1213
- uniqueIndex["INDEX_NAME"] &&
1210
+ return (index.name === uniqueIndex["INDEX_NAME"] &&
1214
1211
  index.synchronize === false);
1215
1212
  });
1216
1213
  });
@@ -1242,8 +1239,7 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1242
1239
  }
1243
1240
  else {
1244
1241
  tableColumn.default =
1245
- dbColumn["COLUMN_DEFAULT"] ===
1246
- "CURRENT_TIMESTAMP"
1242
+ dbColumn["COLUMN_DEFAULT"] === "CURRENT_TIMESTAMP"
1247
1243
  ? dbColumn["COLUMN_DEFAULT"]
1248
1244
  : `'${dbColumn["COLUMN_DEFAULT"]}'`;
1249
1245
  }
@@ -1262,8 +1258,7 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1262
1258
  columnUniqueIndices.length > 0 &&
1263
1259
  !hasIgnoredIndex &&
1264
1260
  !isConstraintComposite;
1265
- tableColumn.isNullable =
1266
- dbColumn["IS_NULLABLE"] === "YES";
1261
+ tableColumn.isNullable = dbColumn["IS_NULLABLE"] === "YES";
1267
1262
  tableColumn.isPrimary = dbPrimaryKeys.some((dbPrimaryKey) => {
1268
1263
  return (dbPrimaryKey["TABLE_NAME"] ===
1269
1264
  dbColumn["TABLE_NAME"] &&
@@ -1285,8 +1280,7 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1285
1280
  : dbColumn["COLUMN_COMMENT"];
1286
1281
  if (dbColumn["CHARACTER_SET_NAME"])
1287
1282
  tableColumn.charset =
1288
- dbColumn["CHARACTER_SET_NAME"] ===
1289
- defaultCharset
1283
+ dbColumn["CHARACTER_SET_NAME"] === defaultCharset
1290
1284
  ? undefined
1291
1285
  : dbColumn["CHARACTER_SET_NAME"];
1292
1286
  if (dbColumn["COLLATION_NAME"])
@@ -1336,10 +1330,8 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1336
1330
  });
1337
1331
  // find foreign key constraints of table, group them by constraint name and build TableForeignKey.
1338
1332
  const tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => {
1339
- return (dbForeignKey["TABLE_NAME"] ===
1340
- dbTable["TABLE_NAME"] &&
1341
- dbForeignKey["TABLE_SCHEMA"] ===
1342
- dbTable["TABLE_SCHEMA"]);
1333
+ return (dbForeignKey["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1334
+ dbForeignKey["TABLE_SCHEMA"] === dbTable["TABLE_SCHEMA"]);
1343
1335
  }), (dbForeignKey) => dbForeignKey["CONSTRAINT_NAME"]);
1344
1336
  table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
1345
1337
  const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["CONSTRAINT_NAME"] ===
@@ -1367,8 +1359,7 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1367
1359
  }), (dbIndex) => dbIndex["INDEX_NAME"]);
1368
1360
  table.indices = tableIndexConstraints.map((constraint) => {
1369
1361
  const indices = dbIndices.filter((index) => {
1370
- return (index["TABLE_SCHEMA"] ===
1371
- constraint["TABLE_SCHEMA"] &&
1362
+ return (index["TABLE_SCHEMA"] === constraint["TABLE_SCHEMA"] &&
1372
1363
  index["TABLE_NAME"] === constraint["TABLE_NAME"] &&
1373
1364
  index["INDEX_NAME"] === constraint["INDEX_NAME"]);
1374
1365
  });
@@ -1383,7 +1374,7 @@ export class AuroraMysqlQueryRunner extends BaseQueryRunner {
1383
1374
  });
1384
1375
  });
1385
1376
  return table;
1386
- }));
1377
+ });
1387
1378
  }
1388
1379
  /**
1389
1380
  * Builds create table sql