typeorm 0.2.42-dev.54cf660 → 0.2.42-dev.6316e26

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 (296) hide show
  1. package/README.md +38 -0
  2. package/browser/cache/RedisQueryResultCache.js +40 -35
  3. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  4. package/browser/common/RelationType.d.ts +14 -0
  5. package/browser/common/RelationType.js +3 -0
  6. package/browser/common/RelationType.js.map +1 -0
  7. package/browser/connection/BaseConnectionOptions.d.ts +5 -0
  8. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  9. package/browser/connection/Connection.d.ts +7 -3
  10. package/browser/connection/Connection.js +47 -31
  11. package/browser/connection/Connection.js.map +1 -1
  12. package/browser/connection/ConnectionMetadataBuilder.d.ts +3 -3
  13. package/browser/connection/ConnectionMetadataBuilder.js +54 -22
  14. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  15. package/browser/connection/ConnectionOptionsReader.js +33 -28
  16. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  17. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -0
  18. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  19. package/browser/decorator/Unique.d.ts +5 -4
  20. package/browser/decorator/Unique.js +7 -3
  21. package/browser/decorator/Unique.js.map +1 -1
  22. package/browser/decorator/options/RelationOptions.d.ts +1 -1
  23. package/browser/decorator/options/RelationOptions.js.map +1 -1
  24. package/browser/decorator/options/UniqueOptions.d.ts +10 -0
  25. package/browser/decorator/options/UniqueOptions.js +3 -0
  26. package/browser/decorator/options/UniqueOptions.js.map +1 -0
  27. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +1 -1
  28. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  29. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +7 -5
  30. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  31. package/browser/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  32. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  33. package/browser/driver/mysql/MysqlQueryRunner.js +1 -1
  34. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  35. package/browser/driver/oracle/OracleQueryRunner.js +1 -1
  36. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  37. package/browser/driver/postgres/PostgresQueryRunner.js +13 -5
  38. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  39. package/browser/driver/sap/SapQueryRunner.js +1 -1
  40. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  41. package/browser/driver/sqlite/SqliteDriver.js +11 -10
  42. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  43. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1 -1
  44. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  45. package/browser/entity-manager/EntityManager.d.ts +2 -2
  46. package/browser/entity-manager/EntityManager.js +1 -1
  47. package/browser/entity-manager/EntityManager.js.map +1 -1
  48. package/browser/entity-manager/MongoEntityManager.js +2 -1
  49. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  50. package/browser/entity-schema/EntitySchemaOptions.d.ts +6 -0
  51. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  52. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  53. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  54. package/browser/entity-schema/EntitySchemaTransformer.js +3 -1
  55. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  56. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +5 -0
  57. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  58. package/browser/find-options/FindOneOptions.d.ts +6 -0
  59. package/browser/find-options/FindOneOptions.js.map +1 -1
  60. package/browser/find-options/FindOptionsUtils.js +4 -0
  61. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  62. package/browser/find-options/operator/Like.d.ts +1 -1
  63. package/browser/find-options/operator/Like.js +1 -1
  64. package/browser/find-options/operator/Like.js.map +1 -1
  65. package/browser/find-options/operator/Not.d.ts +1 -1
  66. package/browser/find-options/operator/Not.js +1 -1
  67. package/browser/find-options/operator/Not.js.map +1 -1
  68. package/browser/globals.js +34 -7
  69. package/browser/globals.js.map +1 -1
  70. package/browser/index.d.ts +2 -0
  71. package/browser/index.js +2 -0
  72. package/browser/index.js.map +1 -1
  73. package/browser/metadata/RelationMetadata.d.ts +1 -1
  74. package/browser/metadata/RelationMetadata.js.map +1 -1
  75. package/browser/metadata/UniqueMetadata.d.ts +5 -0
  76. package/browser/metadata/UniqueMetadata.js +1 -0
  77. package/browser/metadata/UniqueMetadata.js.map +1 -1
  78. package/browser/metadata-args/UniqueMetadataArgs.d.ts +5 -0
  79. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  80. package/browser/metadata-builder/EntityMetadataValidator.js +1 -0
  81. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  82. package/browser/migration/MigrationExecutor.js +1 -1
  83. package/browser/migration/MigrationExecutor.js.map +1 -1
  84. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +3 -0
  85. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  86. package/browser/query-builder/DeleteQueryBuilder.d.ts +4 -2
  87. package/browser/query-builder/DeleteQueryBuilder.js +4 -2
  88. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  89. package/browser/query-builder/InsertQueryBuilder.d.ts +1 -1
  90. package/browser/query-builder/InsertQueryBuilder.js +1 -1
  91. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  92. package/browser/query-builder/NotBrackets.d.ts +7 -0
  93. package/browser/query-builder/NotBrackets.js +16 -0
  94. package/browser/query-builder/NotBrackets.js.map +1 -0
  95. package/browser/query-builder/QueryBuilder.d.ts +3 -2
  96. package/browser/query-builder/QueryBuilder.js +2 -1
  97. package/browser/query-builder/QueryBuilder.js.map +1 -1
  98. package/browser/query-builder/RelationLoader.js +11 -6
  99. package/browser/query-builder/RelationLoader.js.map +1 -1
  100. package/browser/query-builder/RelationQueryBuilder.d.ts +1 -1
  101. package/browser/query-builder/RelationQueryBuilder.js +1 -1
  102. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  103. package/browser/query-builder/SelectQueryBuilder.d.ts +10 -1
  104. package/browser/query-builder/SelectQueryBuilder.js +28 -21
  105. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  106. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +1 -1
  107. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  108. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  109. package/browser/query-builder/UpdateQueryBuilder.d.ts +4 -2
  110. package/browser/query-builder/UpdateQueryBuilder.js +11 -6
  111. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  112. package/browser/query-builder/WhereExpressionBuilder.d.ts +3 -1
  113. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  114. package/browser/query-runner/BaseQueryRunner.d.ts +2 -2
  115. package/browser/query-runner/BaseQueryRunner.js +3 -3
  116. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  117. package/browser/repository/AbstractRepository.d.ts +2 -2
  118. package/browser/repository/AbstractRepository.js +2 -2
  119. package/browser/repository/AbstractRepository.js.map +1 -1
  120. package/browser/repository/BaseEntity.d.ts +1 -1
  121. package/browser/repository/BaseEntity.js +1 -1
  122. package/browser/repository/BaseEntity.js.map +1 -1
  123. package/browser/repository/Repository.d.ts +1 -1
  124. package/browser/repository/Repository.js +1 -1
  125. package/browser/repository/Repository.js.map +1 -1
  126. package/browser/repository/TreeRepository.js +1 -1
  127. package/browser/repository/TreeRepository.js.map +1 -1
  128. package/browser/schema-builder/RdbmsSchemaBuilder.js +1 -1
  129. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  130. package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  131. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  132. package/browser/schema-builder/table/TableUnique.d.ts +5 -0
  133. package/browser/schema-builder/table/TableUnique.js +5 -2
  134. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  135. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
  136. package/browser/util/DirectoryExportedClassesLoader.js +55 -31
  137. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  138. package/browser/util/ImportUtils.d.ts +1 -0
  139. package/browser/util/ImportUtils.js +90 -0
  140. package/browser/util/ImportUtils.js.map +1 -0
  141. package/cache/RedisQueryResultCache.js +39 -34
  142. package/cache/RedisQueryResultCache.js.map +1 -1
  143. package/commands/CommandUtils.d.ts +4 -0
  144. package/commands/CommandUtils.js +10 -0
  145. package/commands/CommandUtils.js.map +1 -1
  146. package/commands/InitCommand.d.ts +9 -7
  147. package/commands/InitCommand.js +72 -43
  148. package/commands/InitCommand.js.map +1 -1
  149. package/commands/MigrationCreateCommand.d.ts +2 -0
  150. package/commands/MigrationCreateCommand.js +7 -1
  151. package/commands/MigrationCreateCommand.js.map +1 -1
  152. package/commands/MigrationGenerateCommand.d.ts +2 -0
  153. package/commands/MigrationGenerateCommand.js +7 -1
  154. package/commands/MigrationGenerateCommand.js.map +1 -1
  155. package/commands/QueryCommand.d.ts +1 -1
  156. package/commands/QueryCommand.js +1 -1
  157. package/commands/QueryCommand.js.map +1 -1
  158. package/common/RelationType.d.ts +14 -0
  159. package/common/RelationType.js +4 -0
  160. package/common/RelationType.js.map +1 -0
  161. package/connection/BaseConnectionOptions.d.ts +5 -0
  162. package/connection/BaseConnectionOptions.js.map +1 -1
  163. package/connection/Connection.d.ts +7 -3
  164. package/connection/Connection.js +47 -31
  165. package/connection/Connection.js.map +1 -1
  166. package/connection/ConnectionMetadataBuilder.d.ts +3 -3
  167. package/connection/ConnectionMetadataBuilder.js +53 -21
  168. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  169. package/connection/ConnectionOptionsReader.js +32 -27
  170. package/connection/ConnectionOptionsReader.js.map +1 -1
  171. package/connection/options-reader/ConnectionOptionsEnvReader.js +1 -0
  172. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  173. package/decorator/Unique.d.ts +5 -4
  174. package/decorator/Unique.js +7 -3
  175. package/decorator/Unique.js.map +1 -1
  176. package/decorator/options/RelationOptions.d.ts +1 -1
  177. package/decorator/options/RelationOptions.js.map +1 -1
  178. package/decorator/options/UniqueOptions.d.ts +10 -0
  179. package/decorator/options/UniqueOptions.js +4 -0
  180. package/decorator/options/UniqueOptions.js.map +1 -0
  181. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +1 -1
  182. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  183. package/driver/better-sqlite3/BetterSqlite3Driver.js +7 -5
  184. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  185. package/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  186. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  187. package/driver/mysql/MysqlQueryRunner.js +1 -1
  188. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  189. package/driver/oracle/OracleQueryRunner.js +1 -1
  190. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  191. package/driver/postgres/PostgresQueryRunner.js +13 -5
  192. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  193. package/driver/sap/SapQueryRunner.js +1 -1
  194. package/driver/sap/SapQueryRunner.js.map +1 -1
  195. package/driver/sqlite/SqliteDriver.js +11 -10
  196. package/driver/sqlite/SqliteDriver.js.map +1 -1
  197. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1 -1
  198. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  199. package/entity-manager/EntityManager.d.ts +2 -2
  200. package/entity-manager/EntityManager.js +1 -1
  201. package/entity-manager/EntityManager.js.map +1 -1
  202. package/entity-manager/MongoEntityManager.js +2 -1
  203. package/entity-manager/MongoEntityManager.js.map +1 -1
  204. package/entity-schema/EntitySchemaOptions.d.ts +6 -0
  205. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  206. package/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  207. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  208. package/entity-schema/EntitySchemaTransformer.js +3 -1
  209. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  210. package/entity-schema/EntitySchemaUniqueOptions.d.ts +5 -0
  211. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  212. package/find-options/FindOneOptions.d.ts +6 -0
  213. package/find-options/FindOneOptions.js.map +1 -1
  214. package/find-options/FindOptionsUtils.js +4 -0
  215. package/find-options/FindOptionsUtils.js.map +1 -1
  216. package/find-options/operator/Like.d.ts +1 -1
  217. package/find-options/operator/Like.js +1 -1
  218. package/find-options/operator/Like.js.map +1 -1
  219. package/find-options/operator/Not.d.ts +1 -1
  220. package/find-options/operator/Not.js +1 -1
  221. package/find-options/operator/Not.js.map +1 -1
  222. package/globals.js +33 -6
  223. package/globals.js.map +1 -1
  224. package/index.d.ts +2 -0
  225. package/index.js +4 -1
  226. package/index.js.map +1 -1
  227. package/index.mjs +352 -0
  228. package/metadata/RelationMetadata.d.ts +1 -1
  229. package/metadata/RelationMetadata.js.map +1 -1
  230. package/metadata/UniqueMetadata.d.ts +5 -0
  231. package/metadata/UniqueMetadata.js +1 -0
  232. package/metadata/UniqueMetadata.js.map +1 -1
  233. package/metadata-args/UniqueMetadataArgs.d.ts +5 -0
  234. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  235. package/metadata-builder/EntityMetadataValidator.js +1 -0
  236. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  237. package/migration/MigrationExecutor.js +1 -1
  238. package/migration/MigrationExecutor.js.map +1 -1
  239. package/package.json +1 -1
  240. package/persistence/subject-builder/OneToManySubjectBuilder.js +3 -0
  241. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  242. package/query-builder/DeleteQueryBuilder.d.ts +4 -2
  243. package/query-builder/DeleteQueryBuilder.js +4 -2
  244. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  245. package/query-builder/InsertQueryBuilder.d.ts +1 -1
  246. package/query-builder/InsertQueryBuilder.js +1 -1
  247. package/query-builder/InsertQueryBuilder.js.map +1 -1
  248. package/query-builder/NotBrackets.d.ts +7 -0
  249. package/query-builder/NotBrackets.js +19 -0
  250. package/query-builder/NotBrackets.js.map +1 -0
  251. package/query-builder/QueryBuilder.d.ts +3 -2
  252. package/query-builder/QueryBuilder.js +2 -1
  253. package/query-builder/QueryBuilder.js.map +1 -1
  254. package/query-builder/RelationLoader.js +11 -6
  255. package/query-builder/RelationLoader.js.map +1 -1
  256. package/query-builder/RelationQueryBuilder.d.ts +1 -1
  257. package/query-builder/RelationQueryBuilder.js +1 -1
  258. package/query-builder/RelationQueryBuilder.js.map +1 -1
  259. package/query-builder/SelectQueryBuilder.d.ts +10 -1
  260. package/query-builder/SelectQueryBuilder.js +28 -21
  261. package/query-builder/SelectQueryBuilder.js.map +1 -1
  262. package/query-builder/SoftDeleteQueryBuilder.d.ts +1 -1
  263. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  264. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  265. package/query-builder/UpdateQueryBuilder.d.ts +4 -2
  266. package/query-builder/UpdateQueryBuilder.js +11 -6
  267. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  268. package/query-builder/WhereExpressionBuilder.d.ts +3 -1
  269. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  270. package/query-runner/BaseQueryRunner.d.ts +2 -2
  271. package/query-runner/BaseQueryRunner.js +3 -3
  272. package/query-runner/BaseQueryRunner.js.map +1 -1
  273. package/repository/AbstractRepository.d.ts +2 -2
  274. package/repository/AbstractRepository.js +2 -2
  275. package/repository/AbstractRepository.js.map +1 -1
  276. package/repository/BaseEntity.d.ts +1 -1
  277. package/repository/BaseEntity.js +1 -1
  278. package/repository/BaseEntity.js.map +1 -1
  279. package/repository/Repository.d.ts +1 -1
  280. package/repository/Repository.js +1 -1
  281. package/repository/Repository.js.map +1 -1
  282. package/repository/TreeRepository.js +1 -1
  283. package/repository/TreeRepository.js.map +1 -1
  284. package/schema-builder/RdbmsSchemaBuilder.js +1 -1
  285. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  286. package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  287. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  288. package/schema-builder/table/TableUnique.d.ts +5 -0
  289. package/schema-builder/table/TableUnique.js +5 -2
  290. package/schema-builder/table/TableUnique.js.map +1 -1
  291. package/util/DirectoryExportedClassesLoader.d.ts +1 -1
  292. package/util/DirectoryExportedClassesLoader.js +54 -31
  293. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  294. package/util/ImportUtils.d.ts +1 -0
  295. package/util/ImportUtils.js +94 -0
  296. package/util/ImportUtils.js.map +1 -0
@@ -5,42 +5,65 @@ var tslib_1 = require("tslib");
5
5
  var glob_1 = (0, tslib_1.__importDefault)(require("glob"));
6
6
  var PlatformTools_1 = require("../platform/PlatformTools");
7
7
  var EntitySchema_1 = require("../entity-schema/EntitySchema");
8
+ var ImportUtils_1 = require("./ImportUtils");
8
9
  /**
9
10
  * Loads all exported classes from the given directory.
10
11
  */
11
12
  function importClassesFromDirectories(logger, directories, formats) {
12
- if (formats === void 0) { formats = [".js", ".cjs", ".ts"]; }
13
- var logLevel = "info";
14
- var classesNotFoundMessage = "No classes were found using the provided glob pattern: ";
15
- var classesFoundMessage = "All classes found using provided glob pattern";
16
- function loadFileClasses(exported, allLoaded) {
17
- if (typeof exported === "function" || exported instanceof EntitySchema_1.EntitySchema) {
18
- allLoaded.push(exported);
13
+ if (formats === void 0) { formats = [".js", ".mjs", ".cjs", ".ts", ".mts", ".cts"]; }
14
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
15
+ function loadFileClasses(exported, allLoaded) {
16
+ if (typeof exported === "function" || exported instanceof EntitySchema_1.EntitySchema) {
17
+ allLoaded.push(exported);
18
+ }
19
+ else if (Array.isArray(exported)) {
20
+ exported.forEach(function (i) { return loadFileClasses(i, allLoaded); });
21
+ }
22
+ else if (typeof exported === "object" && exported !== null) {
23
+ Object.keys(exported).forEach(function (key) { return loadFileClasses(exported[key], allLoaded); });
24
+ }
25
+ return allLoaded;
19
26
  }
20
- else if (Array.isArray(exported)) {
21
- exported.forEach(function (i) { return loadFileClasses(i, allLoaded); });
22
- }
23
- else if (typeof exported === "object" && exported !== null) {
24
- Object.keys(exported).forEach(function (key) { return loadFileClasses(exported[key], allLoaded); });
25
- }
26
- return allLoaded;
27
- }
28
- var allFiles = directories.reduce(function (allDirs, dir) {
29
- return allDirs.concat(glob_1.default.sync(PlatformTools_1.PlatformTools.pathNormalize(dir)));
30
- }, []);
31
- if (directories.length > 0 && allFiles.length === 0) {
32
- logger.log(logLevel, classesNotFoundMessage + " \"" + directories + "\"");
33
- }
34
- else if (allFiles.length > 0) {
35
- logger.log(logLevel, classesFoundMessage + " \"" + directories + "\" : \"" + allFiles + "\"");
36
- }
37
- var dirs = allFiles
38
- .filter(function (file) {
39
- var dtsExtension = file.substring(file.length - 5, file.length);
40
- return formats.indexOf(PlatformTools_1.PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== ".d.ts";
41
- })
42
- .map(function (file) { return require(PlatformTools_1.PlatformTools.pathResolve(file)); });
43
- return loadFileClasses(dirs, []);
27
+ var logLevel, classesNotFoundMessage, classesFoundMessage, allFiles, dirPromises, dirs;
28
+ var _this = this;
29
+ return (0, tslib_1.__generator)(this, function (_a) {
30
+ switch (_a.label) {
31
+ case 0:
32
+ logLevel = "info";
33
+ classesNotFoundMessage = "No classes were found using the provided glob pattern: ";
34
+ classesFoundMessage = "All classes found using provided glob pattern";
35
+ allFiles = directories.reduce(function (allDirs, dir) {
36
+ return allDirs.concat(glob_1.default.sync(PlatformTools_1.PlatformTools.pathNormalize(dir)));
37
+ }, []);
38
+ if (directories.length > 0 && allFiles.length === 0) {
39
+ logger.log(logLevel, classesNotFoundMessage + " \"" + directories + "\"");
40
+ }
41
+ else if (allFiles.length > 0) {
42
+ logger.log(logLevel, classesFoundMessage + " \"" + directories + "\" : \"" + allFiles + "\"");
43
+ }
44
+ dirPromises = allFiles
45
+ .filter(function (file) {
46
+ var dtsExtension = file.substring(file.length - 5, file.length);
47
+ return formats.indexOf(PlatformTools_1.PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== ".d.ts";
48
+ })
49
+ .map(function (file) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
50
+ var _a, importOrRequireResult;
51
+ return (0, tslib_1.__generator)(this, function (_b) {
52
+ switch (_b.label) {
53
+ case 0: return [4 /*yield*/, (0, ImportUtils_1.importOrRequireFile)(PlatformTools_1.PlatformTools.pathResolve(file))];
54
+ case 1:
55
+ _a = tslib_1.__read.apply(void 0, [_b.sent(), 1]), importOrRequireResult = _a[0];
56
+ return [2 /*return*/, importOrRequireResult];
57
+ }
58
+ });
59
+ }); });
60
+ return [4 /*yield*/, Promise.all(dirPromises)];
61
+ case 1:
62
+ dirs = _a.sent();
63
+ return [2 /*return*/, loadFileClasses(dirs, [])];
64
+ }
65
+ });
66
+ });
44
67
  }
45
68
  exports.importClassesFromDirectories = importClassesFromDirectories;
46
69
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/DirectoryExportedClassesLoader.ts"],"names":[],"mappings":"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","file":"DirectoryExportedClassesLoader.js","sourcesContent":["import glob from \"glob\";\nimport {PlatformTools} from \"../platform/PlatformTools\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\nimport {Logger} from \"../logger/Logger\";\n/**\n * Loads all exported classes from the given directory.\n */\nexport function importClassesFromDirectories(logger: Logger, directories: string[], formats = [\".js\", \".cjs\", \".ts\"]): Function[] {\n\n const logLevel = \"info\";\n const classesNotFoundMessage = \"No classes were found using the provided glob pattern: \";\n const classesFoundMessage = \"All classes found using provided glob pattern\";\n function loadFileClasses(exported: any, allLoaded: Function[]) {\n if (typeof exported === \"function\" || exported instanceof EntitySchema) {\n allLoaded.push(exported);\n\n } else if (Array.isArray(exported)) {\n exported.forEach((i: any) => loadFileClasses(i, allLoaded));\n\n } else if (typeof exported === \"object\" && exported !== null) {\n Object.keys(exported).forEach(key => loadFileClasses(exported[key], allLoaded));\n\n }\n return allLoaded;\n }\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(glob.sync(PlatformTools.pathNormalize(dir)));\n }, [] as string[]);\n\n if (directories.length > 0 && allFiles.length === 0) {\n logger.log(logLevel, `${classesNotFoundMessage} \"${directories}\"`);\n } else if (allFiles.length > 0) {\n logger.log(logLevel, `${classesFoundMessage} \"${directories}\" : \"${allFiles}\"`);\n }\n const dirs = allFiles\n .filter(file => {\n const dtsExtension = file.substring(file.length - 5, file.length);\n return formats.indexOf(PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== \".d.ts\";\n })\n .map(file => require(PlatformTools.pathResolve(file)));\n\n return loadFileClasses(dirs, []);\n}\n\n/**\n * Loads all json files from the given directory.\n */\nexport function importJsonsFromDirectories(directories: string[], format = \".json\"): any[] {\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(glob.sync(PlatformTools.pathNormalize(dir)));\n }, [] as string[]);\n\n return allFiles\n .filter(file => PlatformTools.pathExtname(file) === format)\n .map(file => require(PlatformTools.pathResolve(file)));\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/util/DirectoryExportedClassesLoader.ts"],"names":[],"mappings":"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","file":"DirectoryExportedClassesLoader.js","sourcesContent":["import glob from \"glob\";\nimport {PlatformTools} from \"../platform/PlatformTools\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\nimport {Logger} from \"../logger/Logger\";\nimport {importOrRequireFile} from \"./ImportUtils\";\n/**\n * Loads all exported classes from the given directory.\n */\nexport async function importClassesFromDirectories(logger: Logger, directories: string[], formats = [\".js\", \".mjs\", \".cjs\", \".ts\", \".mts\", \".cts\"]): Promise<Function[]> {\n\n const logLevel = \"info\";\n const classesNotFoundMessage = \"No classes were found using the provided glob pattern: \";\n const classesFoundMessage = \"All classes found using provided glob pattern\";\n function loadFileClasses(exported: any, allLoaded: Function[]) {\n if (typeof exported === \"function\" || exported instanceof EntitySchema) {\n allLoaded.push(exported);\n\n } else if (Array.isArray(exported)) {\n exported.forEach((i: any) => loadFileClasses(i, allLoaded));\n\n } else if (typeof exported === \"object\" && exported !== null) {\n Object.keys(exported).forEach(key => loadFileClasses(exported[key], allLoaded));\n\n }\n return allLoaded;\n }\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(glob.sync(PlatformTools.pathNormalize(dir)));\n }, [] as string[]);\n\n if (directories.length > 0 && allFiles.length === 0) {\n logger.log(logLevel, `${classesNotFoundMessage} \"${directories}\"`);\n } else if (allFiles.length > 0) {\n logger.log(logLevel, `${classesFoundMessage} \"${directories}\" : \"${allFiles}\"`);\n }\n const dirPromises = allFiles\n .filter(file => {\n const dtsExtension = file.substring(file.length - 5, file.length);\n return formats.indexOf(PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== \".d.ts\";\n })\n .map(async file => {\n const [importOrRequireResult] = await importOrRequireFile(PlatformTools.pathResolve(file));\n return importOrRequireResult;\n });\n\n const dirs = await Promise.all(dirPromises);\n\n return loadFileClasses(dirs, []);\n}\n\n/**\n * Loads all json files from the given directory.\n */\nexport function importJsonsFromDirectories(directories: string[], format = \".json\"): any[] {\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(glob.sync(PlatformTools.pathNormalize(dir)));\n }, [] as string[]);\n\n return allFiles\n .filter(file => PlatformTools.pathExtname(file) === format)\n .map(file => require(PlatformTools.pathResolve(file)));\n}\n"],"sourceRoot":".."}
@@ -0,0 +1 @@
1
+ export declare function importOrRequireFile(filePath: string): Promise<[result: any, moduleType: "esm" | "commonjs"]>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.importOrRequireFile = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var fs_1 = (0, tslib_1.__importDefault)(require("fs"));
6
+ var path_1 = (0, tslib_1.__importDefault)(require("path"));
7
+ function importOrRequireFile(filePath) {
8
+ var _a;
9
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
10
+ var tryToImport, tryToRequire, extension, packageJson, isModule;
11
+ var _this = this;
12
+ return (0, tslib_1.__generator)(this, function (_b) {
13
+ switch (_b.label) {
14
+ case 0:
15
+ tryToImport = function () { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
16
+ return (0, tslib_1.__generator)(this, function (_a) {
17
+ switch (_a.label) {
18
+ case 0: return [4 /*yield*/, Function("return filePath => import(filePath)")()(filePath)];
19
+ case 1:
20
+ // `Function` is required to make sure the `import` statement wil stay `import` after
21
+ // transpilation and won't be converted to `require`
22
+ return [2 /*return*/, [_a.sent(), "esm"]];
23
+ }
24
+ });
25
+ }); };
26
+ tryToRequire = function () { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
27
+ return (0, tslib_1.__generator)(this, function (_a) {
28
+ return [2 /*return*/, [require(filePath), "commonjs"]];
29
+ });
30
+ }); };
31
+ extension = filePath.substring(filePath.lastIndexOf(".") + ".".length);
32
+ if (!(extension === "mjs" || extension === "mts")) return [3 /*break*/, 1];
33
+ return [2 /*return*/, tryToImport()];
34
+ case 1:
35
+ if (!(extension === "cjs" || extension === "cts")) return [3 /*break*/, 2];
36
+ return [2 /*return*/, tryToRequire()];
37
+ case 2:
38
+ if (!(extension === "js" || extension === "ts")) return [3 /*break*/, 4];
39
+ return [4 /*yield*/, getNearestPackageJson(filePath)];
40
+ case 3:
41
+ packageJson = _b.sent();
42
+ if (packageJson != null) {
43
+ isModule = ((_a = packageJson) === null || _a === void 0 ? void 0 : _a.type) === "module";
44
+ if (isModule)
45
+ return [2 /*return*/, tryToImport()];
46
+ else
47
+ return [2 /*return*/, tryToRequire()];
48
+ }
49
+ else
50
+ return [2 /*return*/, tryToRequire()];
51
+ _b.label = 4;
52
+ case 4: return [2 /*return*/, tryToRequire()];
53
+ }
54
+ });
55
+ });
56
+ }
57
+ exports.importOrRequireFile = importOrRequireFile;
58
+ function getNearestPackageJson(filePath) {
59
+ return new Promise(function (accept) {
60
+ var currentPath = filePath;
61
+ function searchPackageJson() {
62
+ var nextPath = path_1.default.dirname(currentPath);
63
+ if (currentPath === nextPath) // the top of the file tree is reached
64
+ accept(null);
65
+ else {
66
+ currentPath = nextPath;
67
+ var potentialPackageJson_1 = path_1.default.join(currentPath, "package.json");
68
+ fs_1.default.stat(potentialPackageJson_1, function (err, stats) {
69
+ if (err != null)
70
+ searchPackageJson();
71
+ else if (stats.isFile()) {
72
+ fs_1.default.readFile(potentialPackageJson_1, "utf8", function (err, data) {
73
+ if (err != null)
74
+ accept(null);
75
+ else {
76
+ try {
77
+ accept(JSON.parse(data));
78
+ }
79
+ catch (err) {
80
+ accept(null);
81
+ }
82
+ }
83
+ });
84
+ }
85
+ else
86
+ searchPackageJson();
87
+ });
88
+ }
89
+ }
90
+ searchPackageJson();
91
+ });
92
+ }
93
+
94
+ //# sourceMappingURL=ImportUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/ImportUtils.ts"],"names":[],"mappings":";;;;AAAA,uDAAoB;AACpB,2DAAwB;AAExB,SAAsB,mBAAmB,CAAC,QAAgB;;;;;;;;oBAChD,WAAW,GAAG;;;wCAGR,qBAAM,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAA;;gCAFzE,qFAAqF;gCACrF,oDAAoD;gCACpD,uBAAQ,SAAiE,EAAE,KAAK,GAAE;;;yBACrF,CAAC;oBACI,YAAY,GAAG;;4BACjB,sBAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAC;;yBAC1C,CAAC;oBAEI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;yBAEzE,CAAA,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,CAAA,EAA1C,wBAA0C;oBAC1C,sBAAO,WAAW,EAAE,EAAC;;yBAChB,CAAA,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,CAAA,EAA1C,wBAA0C;oBAC/C,sBAAO,YAAY,EAAE,EAAC;;yBACjB,CAAA,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAA,EAAxC,wBAAwC;oBACzB,qBAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAA;;oBAAnD,WAAW,GAAG,SAAqC;oBAEzD,IAAI,WAAW,IAAI,IAAI,EAAE;wBACf,QAAQ,GAAG,CAAA,MAAC,WAAmB,0CAAE,IAAI,MAAK,QAAQ,CAAC;wBAEzD,IAAI,QAAQ;4BACR,sBAAO,WAAW,EAAE,EAAC;;4BAErB,sBAAO,YAAY,EAAE,EAAC;qBAC7B;;wBACG,sBAAO,YAAY,EAAE,EAAC;;wBAG9B,sBAAO,YAAY,EAAE,EAAC;;;;CACzB;AA/BD,kDA+BC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC3C,OAAO,IAAI,OAAO,CAAC,UAAC,MAAM;QACtB,IAAI,WAAW,GAAG,QAAQ,CAAC;QAE3B,SAAS,iBAAiB;YACtB,IAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAE3C,IAAI,WAAW,KAAK,QAAQ,EAAE,sCAAsC;gBAChE,MAAM,CAAC,IAAI,CAAC,CAAC;iBACZ;gBACD,WAAW,GAAG,QAAQ,CAAC;gBACvB,IAAM,sBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEpE,YAAE,CAAC,IAAI,CAAC,sBAAoB,EAAE,UAAC,GAAG,EAAE,KAAK;oBACrC,IAAI,GAAG,IAAI,IAAI;wBACX,iBAAiB,EAAE,CAAC;yBACnB,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;wBACrB,YAAE,CAAC,QAAQ,CAAC,sBAAoB,EAAE,MAAM,EAAE,UAAC,GAAG,EAAE,IAAI;4BAChD,IAAI,GAAG,IAAI,IAAI;gCACX,MAAM,CAAC,IAAI,CAAC,CAAC;iCACZ;gCACD,IAAI;oCACA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;iCAC5B;gCAAC,OAAO,GAAG,EAAE;oCACV,MAAM,CAAC,IAAI,CAAC,CAAC;iCAChB;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;;wBACG,iBAAiB,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACN;QACL,CAAC;QAED,iBAAiB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC","file":"ImportUtils.js","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\nexport async function importOrRequireFile(filePath: string): Promise<[result: any, moduleType: \"esm\" | \"commonjs\"]> {\n const tryToImport = async (): Promise<[any, \"esm\"]> => {\n // `Function` is required to make sure the `import` statement wil stay `import` after\n // transpilation and won't be converted to `require`\n return [await Function(\"return filePath => import(filePath)\")()(filePath), \"esm\"];\n };\n const tryToRequire = async (): Promise<[any, \"commonjs\"]> => {\n return [require(filePath), \"commonjs\"];\n };\n\n const extension = filePath.substring(filePath.lastIndexOf(\".\") + \".\".length);\n\n if (extension === \"mjs\" || extension === \"mts\")\n return tryToImport();\n else if (extension === \"cjs\" || extension === \"cts\")\n return tryToRequire();\n else if (extension === \"js\" || extension === \"ts\") {\n const packageJson = await getNearestPackageJson(filePath);\n\n if (packageJson != null) {\n const isModule = (packageJson as any)?.type === \"module\";\n\n if (isModule)\n return tryToImport();\n else\n return tryToRequire();\n } else\n return tryToRequire();\n }\n\n return tryToRequire();\n}\n\nfunction getNearestPackageJson(filePath: string): Promise<object | null> {\n return new Promise((accept) => {\n let currentPath = filePath;\n\n function searchPackageJson() {\n const nextPath = path.dirname(currentPath);\n\n if (currentPath === nextPath) // the top of the file tree is reached\n accept(null);\n else {\n currentPath = nextPath;\n const potentialPackageJson = path.join(currentPath, \"package.json\");\n\n fs.stat(potentialPackageJson, (err, stats) => {\n if (err != null)\n searchPackageJson();\n else if (stats.isFile()) {\n fs.readFile(potentialPackageJson, \"utf8\", (err, data) => {\n if (err != null)\n accept(null);\n else {\n try {\n accept(JSON.parse(data));\n } catch (err) {\n accept(null);\n }\n }\n });\n } else\n searchPackageJson();\n });\n }\n }\n\n searchPackageJson();\n });\n}\n"],"sourceRoot":".."}