typeorm 0.2.42-dev.0626ed1 → 0.2.42-dev.1cfd7b9

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 (243) hide show
  1. package/README.md +38 -0
  2. package/browser/common/RelationType.d.ts +14 -0
  3. package/browser/common/RelationType.js +3 -0
  4. package/browser/common/RelationType.js.map +1 -0
  5. package/browser/connection/Connection.d.ts +3 -3
  6. package/browser/connection/Connection.js +46 -31
  7. package/browser/connection/Connection.js.map +1 -1
  8. package/browser/connection/ConnectionMetadataBuilder.d.ts +3 -3
  9. package/browser/connection/ConnectionMetadataBuilder.js +54 -22
  10. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  11. package/browser/connection/ConnectionOptionsReader.js +33 -28
  12. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  13. package/browser/decorator/Unique.d.ts +5 -4
  14. package/browser/decorator/Unique.js +7 -3
  15. package/browser/decorator/Unique.js.map +1 -1
  16. package/browser/decorator/options/RelationOptions.d.ts +1 -1
  17. package/browser/decorator/options/RelationOptions.js.map +1 -1
  18. package/browser/decorator/options/UniqueOptions.d.ts +10 -0
  19. package/browser/decorator/options/UniqueOptions.js +3 -0
  20. package/browser/decorator/options/UniqueOptions.js.map +1 -0
  21. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +1 -1
  22. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  23. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +7 -5
  24. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  25. package/browser/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  26. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  27. package/browser/driver/mysql/MysqlQueryRunner.js +1 -1
  28. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  29. package/browser/driver/oracle/OracleQueryRunner.js +1 -1
  30. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  31. package/browser/driver/postgres/PostgresQueryRunner.js +11 -4
  32. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  33. package/browser/driver/sap/SapQueryRunner.js +1 -1
  34. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  35. package/browser/driver/sqlite/SqliteDriver.js +11 -10
  36. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  37. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1 -1
  38. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  39. package/browser/entity-manager/EntityManager.d.ts +2 -2
  40. package/browser/entity-manager/EntityManager.js +1 -1
  41. package/browser/entity-manager/EntityManager.js.map +1 -1
  42. package/browser/entity-manager/MongoEntityManager.js +2 -1
  43. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  44. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  45. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  46. package/browser/entity-schema/EntitySchemaTransformer.js +2 -1
  47. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  48. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +5 -0
  49. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  50. package/browser/find-options/operator/Like.d.ts +1 -1
  51. package/browser/find-options/operator/Like.js +1 -1
  52. package/browser/find-options/operator/Like.js.map +1 -1
  53. package/browser/globals.js +34 -7
  54. package/browser/globals.js.map +1 -1
  55. package/browser/index.d.ts +2 -0
  56. package/browser/index.js +2 -0
  57. package/browser/index.js.map +1 -1
  58. package/browser/metadata/RelationMetadata.d.ts +1 -1
  59. package/browser/metadata/RelationMetadata.js.map +1 -1
  60. package/browser/metadata/UniqueMetadata.d.ts +5 -0
  61. package/browser/metadata/UniqueMetadata.js +1 -0
  62. package/browser/metadata/UniqueMetadata.js.map +1 -1
  63. package/browser/metadata-args/UniqueMetadataArgs.d.ts +5 -0
  64. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  65. package/browser/metadata-builder/EntityMetadataValidator.js +1 -0
  66. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  67. package/browser/migration/MigrationExecutor.js +1 -1
  68. package/browser/migration/MigrationExecutor.js.map +1 -1
  69. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +3 -0
  70. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  71. package/browser/query-builder/DeleteQueryBuilder.d.ts +4 -2
  72. package/browser/query-builder/DeleteQueryBuilder.js +4 -2
  73. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  74. package/browser/query-builder/InsertQueryBuilder.d.ts +1 -1
  75. package/browser/query-builder/InsertQueryBuilder.js +1 -1
  76. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  77. package/browser/query-builder/NotBrackets.d.ts +7 -0
  78. package/browser/query-builder/NotBrackets.js +16 -0
  79. package/browser/query-builder/NotBrackets.js.map +1 -0
  80. package/browser/query-builder/QueryBuilder.d.ts +3 -2
  81. package/browser/query-builder/QueryBuilder.js +2 -1
  82. package/browser/query-builder/QueryBuilder.js.map +1 -1
  83. package/browser/query-builder/RelationLoader.js +11 -6
  84. package/browser/query-builder/RelationLoader.js.map +1 -1
  85. package/browser/query-builder/RelationQueryBuilder.d.ts +1 -1
  86. package/browser/query-builder/RelationQueryBuilder.js +1 -1
  87. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  88. package/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
  89. package/browser/query-builder/SelectQueryBuilder.js +1 -1
  90. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  91. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +1 -1
  92. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  93. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  94. package/browser/query-builder/UpdateQueryBuilder.d.ts +4 -2
  95. package/browser/query-builder/UpdateQueryBuilder.js +11 -6
  96. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  97. package/browser/query-builder/WhereExpressionBuilder.d.ts +3 -1
  98. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  99. package/browser/repository/AbstractRepository.d.ts +2 -2
  100. package/browser/repository/AbstractRepository.js +2 -2
  101. package/browser/repository/AbstractRepository.js.map +1 -1
  102. package/browser/repository/BaseEntity.d.ts +1 -1
  103. package/browser/repository/BaseEntity.js +1 -1
  104. package/browser/repository/BaseEntity.js.map +1 -1
  105. package/browser/repository/Repository.d.ts +1 -1
  106. package/browser/repository/Repository.js +1 -1
  107. package/browser/repository/Repository.js.map +1 -1
  108. package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  109. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  110. package/browser/schema-builder/table/TableUnique.d.ts +5 -0
  111. package/browser/schema-builder/table/TableUnique.js +5 -2
  112. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  113. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
  114. package/browser/util/DirectoryExportedClassesLoader.js +55 -31
  115. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  116. package/browser/util/ImportUtils.d.ts +1 -0
  117. package/browser/util/ImportUtils.js +90 -0
  118. package/browser/util/ImportUtils.js.map +1 -0
  119. package/commands/InitCommand.d.ts +9 -7
  120. package/commands/InitCommand.js +72 -43
  121. package/commands/InitCommand.js.map +1 -1
  122. package/commands/QueryCommand.d.ts +1 -1
  123. package/commands/QueryCommand.js +1 -1
  124. package/commands/QueryCommand.js.map +1 -1
  125. package/common/RelationType.d.ts +14 -0
  126. package/common/RelationType.js +4 -0
  127. package/common/RelationType.js.map +1 -0
  128. package/connection/Connection.d.ts +3 -3
  129. package/connection/Connection.js +46 -31
  130. package/connection/Connection.js.map +1 -1
  131. package/connection/ConnectionMetadataBuilder.d.ts +3 -3
  132. package/connection/ConnectionMetadataBuilder.js +53 -21
  133. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  134. package/connection/ConnectionOptionsReader.js +32 -27
  135. package/connection/ConnectionOptionsReader.js.map +1 -1
  136. package/decorator/Unique.d.ts +5 -4
  137. package/decorator/Unique.js +7 -3
  138. package/decorator/Unique.js.map +1 -1
  139. package/decorator/options/RelationOptions.d.ts +1 -1
  140. package/decorator/options/RelationOptions.js.map +1 -1
  141. package/decorator/options/UniqueOptions.d.ts +10 -0
  142. package/decorator/options/UniqueOptions.js +4 -0
  143. package/decorator/options/UniqueOptions.js.map +1 -0
  144. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +1 -1
  145. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  146. package/driver/better-sqlite3/BetterSqlite3Driver.js +7 -5
  147. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  148. package/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  149. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  150. package/driver/mysql/MysqlQueryRunner.js +1 -1
  151. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  152. package/driver/oracle/OracleQueryRunner.js +1 -1
  153. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  154. package/driver/postgres/PostgresQueryRunner.js +11 -4
  155. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  156. package/driver/sap/SapQueryRunner.js +1 -1
  157. package/driver/sap/SapQueryRunner.js.map +1 -1
  158. package/driver/sqlite/SqliteDriver.js +11 -10
  159. package/driver/sqlite/SqliteDriver.js.map +1 -1
  160. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1 -1
  161. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  162. package/entity-manager/EntityManager.d.ts +2 -2
  163. package/entity-manager/EntityManager.js +1 -1
  164. package/entity-manager/EntityManager.js.map +1 -1
  165. package/entity-manager/MongoEntityManager.js +2 -1
  166. package/entity-manager/MongoEntityManager.js.map +1 -1
  167. package/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  168. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  169. package/entity-schema/EntitySchemaTransformer.js +2 -1
  170. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  171. package/entity-schema/EntitySchemaUniqueOptions.d.ts +5 -0
  172. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  173. package/find-options/operator/Like.d.ts +1 -1
  174. package/find-options/operator/Like.js +1 -1
  175. package/find-options/operator/Like.js.map +1 -1
  176. package/globals.js +33 -6
  177. package/globals.js.map +1 -1
  178. package/index.d.ts +2 -0
  179. package/index.js +4 -1
  180. package/index.js.map +1 -1
  181. package/index.mjs +352 -0
  182. package/metadata/RelationMetadata.d.ts +1 -1
  183. package/metadata/RelationMetadata.js.map +1 -1
  184. package/metadata/UniqueMetadata.d.ts +5 -0
  185. package/metadata/UniqueMetadata.js +1 -0
  186. package/metadata/UniqueMetadata.js.map +1 -1
  187. package/metadata-args/UniqueMetadataArgs.d.ts +5 -0
  188. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  189. package/metadata-builder/EntityMetadataValidator.js +1 -0
  190. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  191. package/migration/MigrationExecutor.js +1 -1
  192. package/migration/MigrationExecutor.js.map +1 -1
  193. package/package.json +1 -1
  194. package/persistence/subject-builder/OneToManySubjectBuilder.js +3 -0
  195. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  196. package/query-builder/DeleteQueryBuilder.d.ts +4 -2
  197. package/query-builder/DeleteQueryBuilder.js +4 -2
  198. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  199. package/query-builder/InsertQueryBuilder.d.ts +1 -1
  200. package/query-builder/InsertQueryBuilder.js +1 -1
  201. package/query-builder/InsertQueryBuilder.js.map +1 -1
  202. package/query-builder/NotBrackets.d.ts +7 -0
  203. package/query-builder/NotBrackets.js +19 -0
  204. package/query-builder/NotBrackets.js.map +1 -0
  205. package/query-builder/QueryBuilder.d.ts +3 -2
  206. package/query-builder/QueryBuilder.js +2 -1
  207. package/query-builder/QueryBuilder.js.map +1 -1
  208. package/query-builder/RelationLoader.js +11 -6
  209. package/query-builder/RelationLoader.js.map +1 -1
  210. package/query-builder/RelationQueryBuilder.d.ts +1 -1
  211. package/query-builder/RelationQueryBuilder.js +1 -1
  212. package/query-builder/RelationQueryBuilder.js.map +1 -1
  213. package/query-builder/SelectQueryBuilder.d.ts +1 -1
  214. package/query-builder/SelectQueryBuilder.js +1 -1
  215. package/query-builder/SelectQueryBuilder.js.map +1 -1
  216. package/query-builder/SoftDeleteQueryBuilder.d.ts +1 -1
  217. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  218. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  219. package/query-builder/UpdateQueryBuilder.d.ts +4 -2
  220. package/query-builder/UpdateQueryBuilder.js +11 -6
  221. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  222. package/query-builder/WhereExpressionBuilder.d.ts +3 -1
  223. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  224. package/repository/AbstractRepository.d.ts +2 -2
  225. package/repository/AbstractRepository.js +2 -2
  226. package/repository/AbstractRepository.js.map +1 -1
  227. package/repository/BaseEntity.d.ts +1 -1
  228. package/repository/BaseEntity.js +1 -1
  229. package/repository/BaseEntity.js.map +1 -1
  230. package/repository/Repository.d.ts +1 -1
  231. package/repository/Repository.js +1 -1
  232. package/repository/Repository.js.map +1 -1
  233. package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  234. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  235. package/schema-builder/table/TableUnique.d.ts +5 -0
  236. package/schema-builder/table/TableUnique.js +5 -2
  237. package/schema-builder/table/TableUnique.js.map +1 -1
  238. package/util/DirectoryExportedClassesLoader.d.ts +1 -1
  239. package/util/DirectoryExportedClassesLoader.js +54 -31
  240. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  241. package/util/ImportUtils.d.ts +1 -0
  242. package/util/ImportUtils.js +94 -0
  243. package/util/ImportUtils.js.map +1 -0
@@ -1,4 +1,4 @@
1
- import { __awaiter, __generator } from "tslib";
1
+ import { __awaiter, __generator, __read } from "tslib";
2
2
  import appRootPath from "app-root-path";
3
3
  import path from "path";
4
4
  import { PlatformTools } from "../platform/PlatformTools";
@@ -6,6 +6,7 @@ import { ConnectionOptionsEnvReader } from "./options-reader/ConnectionOptionsEn
6
6
  import { ConnectionOptionsYmlReader } from "./options-reader/ConnectionOptionsYmlReader";
7
7
  import { ConnectionOptionsXmlReader } from "./options-reader/ConnectionOptionsXmlReader";
8
8
  import { TypeORMError } from "../error";
9
+ import { importOrRequireFile } from "../util/ImportUtils";
9
10
  /**
10
11
  * Reads connection options from the ormconfig.
11
12
  * Can read from multiple file extensions including env, json, js, xml and yml.
@@ -87,13 +88,13 @@ var ConnectionOptionsReader = /** @class */ (function () {
87
88
  */
88
89
  ConnectionOptionsReader.prototype.load = function () {
89
90
  return __awaiter(this, void 0, void 0, function () {
90
- var connectionOptions, fileFormats, possibleExtension, fileExtension, foundFileFormat, configFile, configModule;
91
+ var connectionOptions, fileFormats, possibleExtension, fileExtension, foundFileFormat, configFile, _a, importOrRequireResult, moduleSystem, configModule;
91
92
  var _this = this;
92
- return __generator(this, function (_a) {
93
- switch (_a.label) {
93
+ return __generator(this, function (_b) {
94
+ switch (_b.label) {
94
95
  case 0:
95
96
  connectionOptions = undefined;
96
- fileFormats = ["env", "js", "cjs", "ts", "json", "yml", "yaml", "xml"];
97
+ fileFormats = ["env", "js", "mjs", "cjs", "ts", "mts", "cts", "json", "yml", "yaml", "xml"];
97
98
  possibleExtension = this.baseFilePath.substr(this.baseFilePath.lastIndexOf("."));
98
99
  fileExtension = fileFormats.find(function (extension) { return "." + extension === possibleExtension; });
99
100
  foundFileFormat = fileExtension || fileFormats.find(function (format) {
@@ -110,43 +111,47 @@ var ConnectionOptionsReader = /** @class */ (function () {
110
111
  if (!(PlatformTools.getEnvVariable("TYPEORM_CONNECTION") || PlatformTools.getEnvVariable("TYPEORM_URL"))) return [3 /*break*/, 2];
111
112
  return [4 /*yield*/, new ConnectionOptionsEnvReader().read()];
112
113
  case 1:
113
- connectionOptions = _a.sent();
114
- return [3 /*break*/, 11];
114
+ connectionOptions = _b.sent();
115
+ return [3 /*break*/, 12];
115
116
  case 2:
116
- if (!(foundFileFormat === "js" || foundFileFormat === "cjs" || foundFileFormat === "ts")) return [3 /*break*/, 4];
117
- return [4 /*yield*/, require(configFile)];
117
+ if (!(foundFileFormat === "js" || foundFileFormat === "mjs" || foundFileFormat === "cjs" ||
118
+ foundFileFormat === "ts" || foundFileFormat === "mts" || foundFileFormat === "cts")) return [3 /*break*/, 5];
119
+ return [4 /*yield*/, importOrRequireFile(configFile)];
118
120
  case 3:
119
- configModule = _a.sent();
120
- if (configModule && "__esModule" in configModule && "default" in configModule) {
121
+ _a = __read.apply(void 0, [_b.sent(), 2]), importOrRequireResult = _a[0], moduleSystem = _a[1];
122
+ return [4 /*yield*/, importOrRequireResult];
123
+ case 4:
124
+ configModule = _b.sent();
125
+ if (moduleSystem === "esm" || (configModule && "__esModule" in configModule && "default" in configModule)) {
121
126
  connectionOptions = configModule.default;
122
127
  }
123
128
  else {
124
129
  connectionOptions = configModule;
125
130
  }
126
- return [3 /*break*/, 11];
127
- case 4:
128
- if (!(foundFileFormat === "json")) return [3 /*break*/, 5];
129
- connectionOptions = require(configFile);
130
- return [3 /*break*/, 11];
131
+ return [3 /*break*/, 12];
131
132
  case 5:
132
- if (!(foundFileFormat === "yml")) return [3 /*break*/, 7];
133
- return [4 /*yield*/, new ConnectionOptionsYmlReader().read(configFile)];
133
+ if (!(foundFileFormat === "json")) return [3 /*break*/, 6];
134
+ connectionOptions = require(configFile);
135
+ return [3 /*break*/, 12];
134
136
  case 6:
135
- connectionOptions = _a.sent();
136
- return [3 /*break*/, 11];
137
- case 7:
138
- if (!(foundFileFormat === "yaml")) return [3 /*break*/, 9];
137
+ if (!(foundFileFormat === "yml")) return [3 /*break*/, 8];
139
138
  return [4 /*yield*/, new ConnectionOptionsYmlReader().read(configFile)];
139
+ case 7:
140
+ connectionOptions = _b.sent();
141
+ return [3 /*break*/, 12];
140
142
  case 8:
141
- connectionOptions = _a.sent();
142
- return [3 /*break*/, 11];
143
+ if (!(foundFileFormat === "yaml")) return [3 /*break*/, 10];
144
+ return [4 /*yield*/, new ConnectionOptionsYmlReader().read(configFile)];
143
145
  case 9:
144
- if (!(foundFileFormat === "xml")) return [3 /*break*/, 11];
145
- return [4 /*yield*/, new ConnectionOptionsXmlReader().read(configFile)];
146
+ connectionOptions = _b.sent();
147
+ return [3 /*break*/, 12];
146
148
  case 10:
147
- connectionOptions = _a.sent();
148
- _a.label = 11;
149
+ if (!(foundFileFormat === "xml")) return [3 /*break*/, 12];
150
+ return [4 /*yield*/, new ConnectionOptionsXmlReader().read(configFile)];
149
151
  case 11:
152
+ connectionOptions = _b.sent();
153
+ _b.label = 12;
154
+ case 12:
150
155
  // normalize and return connection options
151
156
  if (connectionOptions) {
152
157
  return [2 /*return*/, this.normalizeConnectionOptions(connectionOptions)];
@@ -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\";\nimport {ConnectionOptions} from \"./ConnectionOptions\";\nimport {PlatformTools} from \"../platform/PlatformTools\";\nimport {ConnectionOptionsEnvReader} from \"./options-reader/ConnectionOptionsEnvReader\";\nimport {ConnectionOptionsYmlReader} from \"./options-reader/ConnectionOptionsYmlReader\";\nimport {ConnectionOptionsXmlReader} from \"./options-reader/ConnectionOptionsXmlReader\";\nimport { TypeORMError } from \"../error\";\n\n/**\n * Reads connection options from the ormconfig.\n * Can read from multiple file extensions including env, json, js, xml and yml.\n */\nexport class ConnectionOptionsReader {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(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<ConnectionOptions[]> {\n const options = await this.load();\n if (!options)\n throw new TypeORMError(`No connection options were found in any orm configuration files.`);\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<ConnectionOptions> {\n const allOptions = await this.all();\n const targetOptions = allOptions.find(options => options.name === name || (name === \"default\" && !options.name));\n if (!targetOptions)\n throw new TypeORMError(`Cannot find connection ${name} because its not defined in any orm configuration files.`);\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)\n return false;\n\n const targetOptions = allOptions.find(options => options.name === name || (name === \"default\" && !options.name));\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<ConnectionOptions[]|undefined> {\n let connectionOptions: ConnectionOptions|ConnectionOptions[]|undefined = undefined;\n\n const fileFormats = [\"env\", \"js\", \"cjs\", \"ts\", \"json\", \"yml\", \"yaml\", \"xml\"];\n\n // Detect if baseFilePath contains file extension\n const possibleExtension = this.baseFilePath.substr(this.baseFilePath.lastIndexOf(\".\"));\n const fileExtension = fileFormats.find(extension => `.${extension}` === possibleExtension);\n\n // try to find any of following configuration formats\n const foundFileFormat = fileExtension || fileFormats.find(format => {\n return PlatformTools.fileExist(this.baseFilePath + \".\" + format);\n });\n\n // Determine config file name\n const configFile = fileExtension ? this.baseFilePath : 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 (PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") || PlatformTools.getEnvVariable(\"TYPEORM_URL\")) {\n connectionOptions = await new ConnectionOptionsEnvReader().read();\n\n } else if (foundFileFormat === \"js\" || foundFileFormat === \"cjs\" || foundFileFormat === \"ts\") {\n const configModule = await require(configFile);\n\n if (configModule && \"__esModule\" in configModule && \"default\" in configModule) {\n connectionOptions = configModule.default;\n } else {\n connectionOptions = configModule;\n }\n\n } else if (foundFileFormat === \"json\") {\n connectionOptions = require(configFile);\n\n } else if (foundFileFormat === \"yml\") {\n connectionOptions = await new ConnectionOptionsYmlReader().read(configFile);\n\n } else if (foundFileFormat === \"yaml\") {\n connectionOptions = await new ConnectionOptionsYmlReader().read(configFile);\n\n } else if (foundFileFormat === \"xml\") {\n connectionOptions = await new ConnectionOptionsXmlReader().read(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(connectionOptions: ConnectionOptions|ConnectionOptions[]): ConnectionOptions[] {\n if (!(Array.isArray(connectionOptions)))\n connectionOptions = [connectionOptions];\n\n connectionOptions.forEach(options => {\n if (options.entities) {\n const entities = (options.entities as any[]).map(entity => {\n if (typeof entity === \"string\" && entity.substr(0, 1) !== \"/\")\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(subscriber => {\n if (typeof subscriber === \"string\" && subscriber.substr(0, 1) !== \"/\")\n return this.baseDirectory + \"/\" + subscriber;\n\n return subscriber;\n });\n Object.assign(connectionOptions, { subscribers: subscribers });\n }\n if (options.migrations) {\n const migrations = (options.migrations as any[]).map(migration => {\n if (typeof migration === \"string\" && migration.substr(0, 1) !== \"/\")\n return this.baseDirectory + \"/\" + migration;\n\n return migration;\n });\n Object.assign(connectionOptions, { migrations: migrations });\n }\n\n // make database path file in sqlite relative to package.json\n if (options.type === \"sqlite\" || options.type === \"better-sqlite3\") {\n if (typeof options.database === \"string\" &&\n options.database.substr(0, 1) !== \"/\" && // unix absolute\n options.database.substr(1, 2) !== \":\\\\\" && // windows absolute\n options.database !== \":memory:\") {\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 if (this.options && this.options.root)\n return this.options.root;\n\n return appRootPath.path;\n }\n\n /**\n * Gets configuration file name.\n */\n protected get baseConfigName(): string {\n if (this.options && this.options.configName)\n return this.options.configName;\n\n return \"ormconfig\";\n }\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\";\nimport {ConnectionOptions} from \"./ConnectionOptions\";\nimport {PlatformTools} from \"../platform/PlatformTools\";\nimport {ConnectionOptionsEnvReader} from \"./options-reader/ConnectionOptionsEnvReader\";\nimport {ConnectionOptionsYmlReader} from \"./options-reader/ConnectionOptionsYmlReader\";\nimport {ConnectionOptionsXmlReader} from \"./options-reader/ConnectionOptionsXmlReader\";\nimport { TypeORMError } from \"../error\";\nimport {importOrRequireFile} from \"../util/ImportUtils\";\n\n/**\n * Reads connection options from the ormconfig.\n * Can read from multiple file extensions including env, json, js, xml and yml.\n */\nexport class ConnectionOptionsReader {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(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<ConnectionOptions[]> {\n const options = await this.load();\n if (!options)\n throw new TypeORMError(`No connection options were found in any orm configuration files.`);\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<ConnectionOptions> {\n const allOptions = await this.all();\n const targetOptions = allOptions.find(options => options.name === name || (name === \"default\" && !options.name));\n if (!targetOptions)\n throw new TypeORMError(`Cannot find connection ${name} because its not defined in any orm configuration files.`);\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)\n return false;\n\n const targetOptions = allOptions.find(options => options.name === name || (name === \"default\" && !options.name));\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<ConnectionOptions[]|undefined> {\n let connectionOptions: ConnectionOptions|ConnectionOptions[]|undefined = undefined;\n\n const fileFormats = [\"env\", \"js\", \"mjs\", \"cjs\", \"ts\", \"mts\", \"cts\", \"json\", \"yml\", \"yaml\", \"xml\"];\n\n // Detect if baseFilePath contains file extension\n const possibleExtension = this.baseFilePath.substr(this.baseFilePath.lastIndexOf(\".\"));\n const fileExtension = fileFormats.find(extension => `.${extension}` === possibleExtension);\n\n // try to find any of following configuration formats\n const foundFileFormat = fileExtension || fileFormats.find(format => {\n return PlatformTools.fileExist(this.baseFilePath + \".\" + format);\n });\n\n // Determine config file name\n const configFile = fileExtension ? this.baseFilePath : 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 (PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") || PlatformTools.getEnvVariable(\"TYPEORM_URL\")) {\n connectionOptions = await new ConnectionOptionsEnvReader().read();\n\n } else if (\n foundFileFormat === \"js\" || foundFileFormat === \"mjs\" || foundFileFormat === \"cjs\" ||\n foundFileFormat === \"ts\" || foundFileFormat === \"mts\" || foundFileFormat === \"cts\"\n ) {\n const [importOrRequireResult, moduleSystem] = await importOrRequireFile(configFile);\n const configModule = await importOrRequireResult;\n\n if (moduleSystem === \"esm\" || (configModule && \"__esModule\" in configModule && \"default\" in configModule)) {\n connectionOptions = configModule.default;\n } else {\n connectionOptions = configModule;\n }\n\n } else if (foundFileFormat === \"json\") {\n connectionOptions = require(configFile);\n\n } else if (foundFileFormat === \"yml\") {\n connectionOptions = await new ConnectionOptionsYmlReader().read(configFile);\n\n } else if (foundFileFormat === \"yaml\") {\n connectionOptions = await new ConnectionOptionsYmlReader().read(configFile);\n\n } else if (foundFileFormat === \"xml\") {\n connectionOptions = await new ConnectionOptionsXmlReader().read(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(connectionOptions: ConnectionOptions|ConnectionOptions[]): ConnectionOptions[] {\n if (!(Array.isArray(connectionOptions)))\n connectionOptions = [connectionOptions];\n\n connectionOptions.forEach(options => {\n if (options.entities) {\n const entities = (options.entities as any[]).map(entity => {\n if (typeof entity === \"string\" && entity.substr(0, 1) !== \"/\")\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(subscriber => {\n if (typeof subscriber === \"string\" && subscriber.substr(0, 1) !== \"/\")\n return this.baseDirectory + \"/\" + subscriber;\n\n return subscriber;\n });\n Object.assign(connectionOptions, { subscribers: subscribers });\n }\n if (options.migrations) {\n const migrations = (options.migrations as any[]).map(migration => {\n if (typeof migration === \"string\" && migration.substr(0, 1) !== \"/\")\n return this.baseDirectory + \"/\" + migration;\n\n return migration;\n });\n Object.assign(connectionOptions, { migrations: migrations });\n }\n\n // make database path file in sqlite relative to package.json\n if (options.type === \"sqlite\" || options.type === \"better-sqlite3\") {\n if (typeof options.database === \"string\" &&\n options.database.substr(0, 1) !== \"/\" && // unix absolute\n options.database.substr(1, 2) !== \":\\\\\" && // windows absolute\n options.database !== \":memory:\") {\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 if (this.options && this.options.root)\n return this.options.root;\n\n return appRootPath.path;\n }\n\n /**\n * Gets configuration file name.\n */\n protected get baseConfigName(): string {\n if (this.options && this.options.configName)\n return this.options.configName;\n\n return \"ormconfig\";\n }\n\n}\n"],"sourceRoot":".."}
@@ -1,20 +1,21 @@
1
+ import { UniqueOptions } from "./options/UniqueOptions";
1
2
  /**
2
3
  * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.
3
4
  */
4
- export declare function Unique(name: string, fields: string[]): ClassDecorator & PropertyDecorator;
5
+ export declare function Unique(name: string, fields: string[], options?: UniqueOptions): ClassDecorator & PropertyDecorator;
5
6
  /**
6
7
  * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.
7
8
  */
8
- export declare function Unique(fields: string[]): ClassDecorator & PropertyDecorator;
9
+ export declare function Unique(fields: string[], options?: UniqueOptions): ClassDecorator & PropertyDecorator;
9
10
  /**
10
11
  * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.
11
12
  */
12
13
  export declare function Unique(fields: (object?: any) => (any[] | {
13
14
  [key: string]: number;
14
- })): ClassDecorator & PropertyDecorator;
15
+ }), options?: UniqueOptions): ClassDecorator & PropertyDecorator;
15
16
  /**
16
17
  * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.
17
18
  */
18
19
  export declare function Unique(name: string, fields: (object?: any) => (any[] | {
19
20
  [key: string]: number;
20
- })): ClassDecorator & PropertyDecorator;
21
+ }), options?: UniqueOptions): ClassDecorator & PropertyDecorator;
@@ -2,9 +2,12 @@ import { getMetadataArgsStorage } from "../globals";
2
2
  /**
3
3
  * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.
4
4
  */
5
- export function Unique(nameOrFields, maybeFields) {
6
- var name = typeof nameOrFields === "string" ? nameOrFields : undefined;
7
- var fields = typeof nameOrFields === "string" ? maybeFields : nameOrFields;
5
+ export function Unique(nameOrFieldsOrOptions, maybeFieldsOrOptions, maybeOptions) {
6
+ var name = typeof nameOrFieldsOrOptions === "string" ? nameOrFieldsOrOptions : undefined;
7
+ var fields = typeof nameOrFieldsOrOptions === "string" ? maybeFieldsOrOptions : nameOrFieldsOrOptions;
8
+ var options = (typeof nameOrFieldsOrOptions === "object" && !Array.isArray(nameOrFieldsOrOptions)) ? nameOrFieldsOrOptions : maybeOptions;
9
+ if (!options)
10
+ options = (typeof maybeFieldsOrOptions === "object" && !Array.isArray(maybeFieldsOrOptions)) ? maybeFieldsOrOptions : maybeOptions;
8
11
  return function (clsOrObject, propertyName) {
9
12
  var columns = fields;
10
13
  if (propertyName !== undefined) {
@@ -21,6 +24,7 @@ export function Unique(nameOrFields, maybeFields) {
21
24
  target: propertyName ? clsOrObject.constructor : clsOrObject,
22
25
  name: name,
23
26
  columns: columns,
27
+ deferrable: options ? options.deferrable : undefined,
24
28
  };
25
29
  getMetadataArgsStorage().uniques.push(args);
26
30
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/decorator/Unique.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAuBpD;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,YAAyF,EAC5G,WAAgF;IAChF,IAAM,IAAI,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAM,MAAM,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAqE,WAAW,CAAC,CAAC,CAAC,YAAwB,CAAC;IAE7J,OAAO,UAAU,WAA8B,EAAE,YAA8B;QAE3E,IAAI,OAAO,GAAG,MAAM,CAAC;QAErB,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,QAAQ,OAAO,CAAC,YAAY,CAAC,EAAE;gBAC3B,KAAK,QAAQ;oBACT,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzB,MAAM;gBAEV,KAAK,QAAQ;oBACT,OAAO,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACpC,MAAM;aACb;SACJ;QAED,IAAM,IAAI,GAAuB;YAC7B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAuB;YACxE,IAAI,EAAE,IAAI;YACV,OAAO,SAAA;SACV,CAAC;QACF,sBAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;AACN,CAAC","file":"Unique.js","sourcesContent":["import { getMetadataArgsStorage } from \"../globals\";\nimport { UniqueMetadataArgs } from \"../metadata-args/UniqueMetadataArgs\";\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(name: string, fields: string[]): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(fields: string[]): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(fields: (object?: any) => (any[] | { [key: string]: number })): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(name: string, fields: (object?: any) => (any[] | { [key: string]: number })): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(nameOrFields?: string | string[] | ((object: any) => (any[] | { [key: string]: number })),\n maybeFields?: ((object?: any) => (any[] | { [key: string]: number })) | string[]): ClassDecorator & PropertyDecorator {\n const name = typeof nameOrFields === \"string\" ? nameOrFields : undefined;\n const fields = typeof nameOrFields === \"string\" ? <((object?: any) => (any[] | { [key: string]: number })) | string[]>maybeFields : nameOrFields as string[];\n\n return function (clsOrObject: Function | Object, propertyName?: string | symbol) {\n\n let columns = fields;\n\n if (propertyName !== undefined) {\n switch (typeof (propertyName)) {\n case \"string\":\n columns = [propertyName];\n break;\n\n case \"symbol\":\n columns = [propertyName.toString()];\n break;\n }\n }\n\n const args: UniqueMetadataArgs = {\n target: propertyName ? clsOrObject.constructor : clsOrObject as Function,\n name: name,\n columns,\n };\n getMetadataArgsStorage().uniques.push(args);\n };\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/decorator/Unique.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAwBpD;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,qBAAkH,EAClH,oBAAyG,EACzG,YAA4B;IAC/C,IAAM,IAAI,GAAG,OAAO,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,IAAM,MAAM,GAAG,OAAO,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAqE,oBAAoB,CAAC,CAAC,CAAC,qBAAiC,CAAC;IACxL,IAAI,OAAO,GAAG,CAAC,OAAO,qBAAqB,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAsC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC3J,IAAI,CAAC,OAAO;QACR,OAAO,GAAG,CAAC,OAAO,oBAAoB,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAqC,CAAC,CAAC,CAAC,YAAY,CAAC;IAExJ,OAAO,UAAU,WAA8B,EAAE,YAA8B;QAE3E,IAAI,OAAO,GAAG,MAAM,CAAC;QAErB,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,QAAQ,OAAO,CAAC,YAAY,CAAC,EAAE;gBAC3B,KAAK,QAAQ;oBACT,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzB,MAAM;gBAEV,KAAK,QAAQ;oBACT,OAAO,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACpC,MAAM;aACb;SACJ;QAED,IAAM,IAAI,GAAuB;YAC7B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAuB;YACxE,IAAI,EAAE,IAAI;YACV,OAAO,SAAA;YACP,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;SACvD,CAAC;QACF,sBAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;AACN,CAAC","file":"Unique.js","sourcesContent":["import { getMetadataArgsStorage } from \"../globals\";\nimport { UniqueMetadataArgs } from \"../metadata-args/UniqueMetadataArgs\";\nimport { UniqueOptions } from \"./options/UniqueOptions\";\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(name: string, fields: string[], options?: UniqueOptions): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(fields: string[], options?: UniqueOptions): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(fields: (object?: any) => (any[] | { [key: string]: number }), options?: UniqueOptions): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(name: string, fields: (object?: any) => (any[] | { [key: string]: number }), options?: UniqueOptions): ClassDecorator & PropertyDecorator;\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nexport function Unique(nameOrFieldsOrOptions?: string | string[] | ((object: any) => (any[] | { [key: string]: number })) | UniqueOptions,\n maybeFieldsOrOptions?: ((object?: any) => (any[] | { [key: string]: number })) | string[] | UniqueOptions,\n maybeOptions?: UniqueOptions): ClassDecorator & PropertyDecorator {\n const name = typeof nameOrFieldsOrOptions === \"string\" ? nameOrFieldsOrOptions : undefined;\n const fields = typeof nameOrFieldsOrOptions === \"string\" ? <((object?: any) => (any[] | { [key: string]: number })) | string[]>maybeFieldsOrOptions : nameOrFieldsOrOptions as string[];\n let options = (typeof nameOrFieldsOrOptions === \"object\" && !Array.isArray(nameOrFieldsOrOptions)) ? nameOrFieldsOrOptions as UniqueOptions : maybeOptions;\n if (!options)\n options = (typeof maybeFieldsOrOptions === \"object\" && !Array.isArray(maybeFieldsOrOptions)) ? maybeFieldsOrOptions as UniqueOptions : maybeOptions;\n\n return function (clsOrObject: Function | Object, propertyName?: string | symbol) {\n\n let columns = fields;\n\n if (propertyName !== undefined) {\n switch (typeof (propertyName)) {\n case \"string\":\n columns = [propertyName];\n break;\n\n case \"symbol\":\n columns = [propertyName.toString()];\n break;\n }\n }\n\n const args: UniqueMetadataArgs = {\n target: propertyName ? clsOrObject.constructor : clsOrObject as Function,\n name: name,\n columns,\n deferrable: options ? options.deferrable : undefined,\n };\n getMetadataArgsStorage().uniques.push(args);\n };\n}\n"],"sourceRoot":".."}
@@ -62,5 +62,5 @@ export interface RelationOptions {
62
62
  /**
63
63
  * When a child row is removed from its parent, determines if the child row should be orphaned (default) or deleted.
64
64
  */
65
- orphanedRowAction?: "nullify" | "delete";
65
+ orphanedRowAction?: "nullify" | "delete" | "soft-delete";
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/decorator/options/RelationOptions.ts"],"names":[],"mappings":"","file":"RelationOptions.js","sourcesContent":["import {DeferrableType} from \"../../metadata/types/DeferrableType\";\nimport {OnDeleteType} from \"../../metadata/types/OnDeleteType\";\nimport {OnUpdateType} from \"../../metadata/types/OnUpdateType\";\n\n/**\n * Describes all relation's options.\n */\nexport interface RelationOptions {\n\n /**\n * Sets cascades options for the given relation.\n * If set to true then it means that related object can be allowed to be inserted or updated in the database.\n * You can separately restrict cascades to insertion or updation using following syntax:\n *\n * cascade: [\"insert\", \"update\", \"remove\", \"soft-remove\", \"recover\"] // include or exclude one of them\n */\n cascade?: boolean|(\"insert\"|\"update\"|\"remove\"|\"soft-remove\"|\"recover\")[];\n\n /**\n * Indicates if relation column value can be nullable or not.\n */\n nullable?: boolean;\n\n /**\n * Database cascade action on delete.\n */\n onDelete?: OnDeleteType;\n\n /**\n * Database cascade action on update.\n */\n onUpdate?: OnUpdateType;\n\n /**\n * Indicate if foreign key constraints can be deferred.\n */\n deferrable?: DeferrableType;\n\n /**\n * Indicates if this relation will be a primary key.\n * Can be used only for many-to-one and owner one-to-one relations.\n */\n primary?: boolean;\n\n /**\n * Indicates whether foreign key constraints will be created for join columns.\n * Can be used only for many-to-one and owner one-to-one relations.\n * Defaults to true.\n */\n createForeignKeyConstraints?: boolean;\n\n /**\n * Set this relation to be lazy. Note: lazy relations are promises. When you call them they return promise\n * which resolve relation result then. If your property's type is Promise then this relation is set to lazy automatically.\n */\n lazy?: boolean;\n\n /**\n * Set this relation to be eager.\n * Eager relations are always loaded automatically when relation's owner entity is loaded using find* methods.\n * Only using QueryBuilder prevents loading eager relations.\n * Eager flag cannot be set from both sides of relation - you can eager load only one side of the relationship.\n */\n eager?: boolean;\n\n /**\n * Indicates if persistence is enabled for the relation.\n * By default its enabled, but if you want to avoid any changes in the relation to be reflected in the database you can disable it.\n * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality.\n * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save.\n */\n persistence?: boolean;\n\n /**\n * When a child row is removed from its parent, determines if the child row should be orphaned (default) or deleted.\n */\n orphanedRowAction?: \"nullify\" | \"delete\";\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/decorator/options/RelationOptions.ts"],"names":[],"mappings":"","file":"RelationOptions.js","sourcesContent":["import {DeferrableType} from \"../../metadata/types/DeferrableType\";\nimport {OnDeleteType} from \"../../metadata/types/OnDeleteType\";\nimport {OnUpdateType} from \"../../metadata/types/OnUpdateType\";\n\n/**\n * Describes all relation's options.\n */\nexport interface RelationOptions {\n\n /**\n * Sets cascades options for the given relation.\n * If set to true then it means that related object can be allowed to be inserted or updated in the database.\n * You can separately restrict cascades to insertion or updation using following syntax:\n *\n * cascade: [\"insert\", \"update\", \"remove\", \"soft-remove\", \"recover\"] // include or exclude one of them\n */\n cascade?: boolean|(\"insert\"|\"update\"|\"remove\"|\"soft-remove\"|\"recover\")[];\n\n /**\n * Indicates if relation column value can be nullable or not.\n */\n nullable?: boolean;\n\n /**\n * Database cascade action on delete.\n */\n onDelete?: OnDeleteType;\n\n /**\n * Database cascade action on update.\n */\n onUpdate?: OnUpdateType;\n\n /**\n * Indicate if foreign key constraints can be deferred.\n */\n deferrable?: DeferrableType;\n\n /**\n * Indicates if this relation will be a primary key.\n * Can be used only for many-to-one and owner one-to-one relations.\n */\n primary?: boolean;\n\n /**\n * Indicates whether foreign key constraints will be created for join columns.\n * Can be used only for many-to-one and owner one-to-one relations.\n * Defaults to true.\n */\n createForeignKeyConstraints?: boolean;\n\n /**\n * Set this relation to be lazy. Note: lazy relations are promises. When you call them they return promise\n * which resolve relation result then. If your property's type is Promise then this relation is set to lazy automatically.\n */\n lazy?: boolean;\n\n /**\n * Set this relation to be eager.\n * Eager relations are always loaded automatically when relation's owner entity is loaded using find* methods.\n * Only using QueryBuilder prevents loading eager relations.\n * Eager flag cannot be set from both sides of relation - you can eager load only one side of the relationship.\n */\n eager?: boolean;\n\n /**\n * Indicates if persistence is enabled for the relation.\n * By default its enabled, but if you want to avoid any changes in the relation to be reflected in the database you can disable it.\n * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality.\n * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save.\n */\n persistence?: boolean;\n\n /**\n * When a child row is removed from its parent, determines if the child row should be orphaned (default) or deleted.\n */\n orphanedRowAction?: \"nullify\" | \"delete\" | \"soft-delete\";\n\n}\n"],"sourceRoot":"../.."}
@@ -0,0 +1,10 @@
1
+ import { DeferrableType } from "../../metadata/types/DeferrableType";
2
+ /**
3
+ * Describes all unique options.
4
+ */
5
+ export interface UniqueOptions {
6
+ /**
7
+ * Indicate if unique constraints can be deferred.
8
+ */
9
+ deferrable?: DeferrableType;
10
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=UniqueOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../browser/src/decorator/options/UniqueOptions.ts"],"names":[],"mappings":"","file":"UniqueOptions.js","sourcesContent":["import { DeferrableType } from \"../../metadata/types/DeferrableType\";\n\n/**\n * Describes all unique options.\n */\nexport interface UniqueOptions {\n\n /**\n * Indicate if unique constraints can be deferred.\n */\n deferrable?: DeferrableType;\n\n}\n"],"sourceRoot":"../.."}
@@ -1509,7 +1509,7 @@ var AuroraDataApiQueryRunner = /** @class */ (function (_super) {
1509
1509
  table = _a;
1510
1510
  index = indexOrName instanceof TableIndex ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });
1511
1511
  if (!index)
1512
- throw new TypeORMError("Supplied index was not found in table " + table.name);
1512
+ throw new TypeORMError("Supplied index " + indexOrName + " was not found in table " + table.name);
1513
1513
  up = this.dropIndexSql(table, index);
1514
1514
  down = this.createIndexSql(table, index);
1515
1515
  return [4 /*yield*/, this.executeQueries(up, down)];