typeorm 0.2.42-dev.f3e2b0e → 0.2.43-dev.4590c9b

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 (530) 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/DeepPartial.d.ts +3 -3
  5. package/browser/common/DeepPartial.js.map +1 -1
  6. package/browser/common/RelationType.d.ts +14 -0
  7. package/browser/common/RelationType.js +3 -0
  8. package/browser/common/RelationType.js.map +1 -0
  9. package/browser/connection/BaseConnectionOptions.d.ts +5 -0
  10. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  11. package/browser/connection/Connection.d.ts +7 -3
  12. package/browser/connection/Connection.js +80 -55
  13. package/browser/connection/Connection.js.map +1 -1
  14. package/browser/connection/ConnectionMetadataBuilder.d.ts +3 -3
  15. package/browser/connection/ConnectionMetadataBuilder.js +54 -22
  16. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  17. package/browser/connection/ConnectionOptionsReader.js +36 -29
  18. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  19. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -0
  20. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  21. package/browser/decorator/Unique.d.ts +5 -4
  22. package/browser/decorator/Unique.js +7 -3
  23. package/browser/decorator/Unique.js.map +1 -1
  24. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +2 -1
  25. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  26. package/browser/decorator/listeners/AfterRecover.d.ts +4 -0
  27. package/browser/decorator/listeners/AfterRecover.js +16 -0
  28. package/browser/decorator/listeners/AfterRecover.js.map +1 -0
  29. package/browser/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  30. package/browser/decorator/listeners/AfterSoftRemove.js +16 -0
  31. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -0
  32. package/browser/decorator/listeners/BeforeRecover.d.ts +4 -0
  33. package/browser/decorator/listeners/BeforeRecover.js +16 -0
  34. package/browser/decorator/listeners/BeforeRecover.js.map +1 -0
  35. package/browser/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  36. package/browser/decorator/listeners/BeforeSoftRemove.js +16 -0
  37. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  38. package/browser/decorator/options/ColumnOptions.d.ts +4 -0
  39. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  40. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  41. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
  42. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  43. package/browser/decorator/options/RelationOptions.d.ts +1 -1
  44. package/browser/decorator/options/RelationOptions.js.map +1 -1
  45. package/browser/decorator/options/UniqueOptions.d.ts +10 -0
  46. package/browser/decorator/options/UniqueOptions.js +3 -0
  47. package/browser/decorator/options/UniqueOptions.js.map +1 -0
  48. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +2 -2
  49. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  50. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +14 -1
  51. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +94 -9
  52. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  53. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +10 -0
  54. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +64 -1
  55. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  56. package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +8 -0
  57. package/browser/driver/capacitor/CapacitorQueryRunner.js +30 -0
  58. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  59. package/browser/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  60. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  61. package/browser/driver/cordova/CordovaQueryRunner.d.ts +8 -0
  62. package/browser/driver/cordova/CordovaQueryRunner.js +30 -0
  63. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  64. package/browser/driver/expo/ExpoQueryRunner.d.ts +8 -0
  65. package/browser/driver/expo/ExpoQueryRunner.js +30 -0
  66. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  67. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +1 -1
  68. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  69. package/browser/driver/mongodb/MongoQueryRunner.d.ts +8 -0
  70. package/browser/driver/mongodb/MongoQueryRunner.js +20 -0
  71. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  72. package/browser/driver/mysql/MysqlQueryRunner.js +1 -1
  73. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  74. package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +8 -0
  75. package/browser/driver/nativescript/NativescriptQueryRunner.js +30 -0
  76. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  77. package/browser/driver/oracle/OracleQueryRunner.js +1 -1
  78. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  79. package/browser/driver/postgres/PostgresQueryRunner.js +52 -19
  80. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  81. package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +8 -0
  82. package/browser/driver/react-native/ReactNativeQueryRunner.js +30 -0
  83. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  84. package/browser/driver/sap/SapQueryRunner.js +1 -1
  85. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  86. package/browser/driver/sqlite/SqliteDriver.d.ts +13 -0
  87. package/browser/driver/sqlite/SqliteDriver.js +95 -11
  88. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  89. package/browser/driver/sqlite/SqliteQueryRunner.d.ts +8 -0
  90. package/browser/driver/sqlite/SqliteQueryRunner.js +30 -0
  91. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  92. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +13 -0
  93. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +25 -2
  94. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  95. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +11 -1
  96. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +119 -58
  97. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  98. package/browser/driver/sqljs/SqljsQueryRunner.d.ts +8 -0
  99. package/browser/driver/sqljs/SqljsQueryRunner.js +30 -0
  100. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  101. package/browser/entity-manager/EntityManager.d.ts +2 -2
  102. package/browser/entity-manager/EntityManager.js +2 -12
  103. package/browser/entity-manager/EntityManager.js.map +1 -1
  104. package/browser/entity-manager/MongoEntityManager.d.ts +2 -0
  105. package/browser/entity-manager/MongoEntityManager.js +37 -5
  106. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  107. package/browser/entity-schema/EntitySchemaOptions.d.ts +6 -0
  108. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  109. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +7 -1
  110. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  111. package/browser/entity-schema/EntitySchemaTransformer.js +4 -1
  112. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  113. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +5 -0
  114. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  115. package/browser/find-options/FindOneOptions.d.ts +6 -0
  116. package/browser/find-options/FindOneOptions.js.map +1 -1
  117. package/browser/find-options/FindOptionsUtils.js +4 -0
  118. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  119. package/browser/find-options/operator/Like.d.ts +1 -1
  120. package/browser/find-options/operator/Like.js +1 -1
  121. package/browser/find-options/operator/Like.js.map +1 -1
  122. package/browser/find-options/operator/Not.d.ts +1 -1
  123. package/browser/find-options/operator/Not.js +1 -1
  124. package/browser/find-options/operator/Not.js.map +1 -1
  125. package/browser/globals.js +34 -7
  126. package/browser/globals.js.map +1 -1
  127. package/browser/index.d.ts +6 -0
  128. package/browser/index.js +6 -0
  129. package/browser/index.js.map +1 -1
  130. package/browser/metadata/ColumnMetadata.d.ts +4 -0
  131. package/browser/metadata/ColumnMetadata.js +2 -0
  132. package/browser/metadata/ColumnMetadata.js.map +1 -1
  133. package/browser/metadata/EntityMetadata.d.ts +16 -0
  134. package/browser/metadata/EntityMetadata.js +16 -0
  135. package/browser/metadata/EntityMetadata.js.map +1 -1
  136. package/browser/metadata/RelationMetadata.d.ts +1 -1
  137. package/browser/metadata/RelationMetadata.js.map +1 -1
  138. package/browser/metadata/UniqueMetadata.d.ts +5 -0
  139. package/browser/metadata/UniqueMetadata.js +1 -0
  140. package/browser/metadata/UniqueMetadata.js.map +1 -1
  141. package/browser/metadata/types/EventListenerTypes.d.ts +5 -1
  142. package/browser/metadata/types/EventListenerTypes.js +4 -0
  143. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  144. package/browser/metadata-args/UniqueMetadataArgs.d.ts +5 -0
  145. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  146. package/browser/metadata-builder/EntityMetadataBuilder.js +4 -0
  147. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  148. package/browser/metadata-builder/EntityMetadataValidator.js +2 -1
  149. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  150. package/browser/migration/MigrationExecutor.js +38 -26
  151. package/browser/migration/MigrationExecutor.js.map +1 -1
  152. package/browser/persistence/SubjectExecutor.d.ts +2 -2
  153. package/browser/persistence/SubjectExecutor.js +6 -6
  154. package/browser/persistence/SubjectExecutor.js.map +1 -1
  155. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +3 -0
  156. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  157. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +1 -1
  158. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  159. package/browser/platform/PlatformTools.d.ts +1 -0
  160. package/browser/platform/PlatformTools.js +5 -0
  161. package/browser/platform/PlatformTools.js.map +1 -1
  162. package/browser/query-builder/DeleteQueryBuilder.d.ts +4 -2
  163. package/browser/query-builder/DeleteQueryBuilder.js +4 -2
  164. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  165. package/browser/query-builder/InsertQueryBuilder.d.ts +1 -1
  166. package/browser/query-builder/InsertQueryBuilder.js +12 -3
  167. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  168. package/browser/query-builder/NotBrackets.d.ts +7 -0
  169. package/browser/query-builder/NotBrackets.js +16 -0
  170. package/browser/query-builder/NotBrackets.js.map +1 -0
  171. package/browser/query-builder/QueryBuilder.d.ts +3 -2
  172. package/browser/query-builder/QueryBuilder.js +2 -1
  173. package/browser/query-builder/QueryBuilder.js.map +1 -1
  174. package/browser/query-builder/RelationLoader.js +11 -6
  175. package/browser/query-builder/RelationLoader.js.map +1 -1
  176. package/browser/query-builder/RelationQueryBuilder.d.ts +1 -1
  177. package/browser/query-builder/RelationQueryBuilder.js +1 -1
  178. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  179. package/browser/query-builder/SelectQueryBuilder.d.ts +10 -1
  180. package/browser/query-builder/SelectQueryBuilder.js +28 -21
  181. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  182. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +1 -1
  183. package/browser/query-builder/SoftDeleteQueryBuilder.js +45 -31
  184. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  185. package/browser/query-builder/UpdateQueryBuilder.d.ts +4 -2
  186. package/browser/query-builder/UpdateQueryBuilder.js +11 -6
  187. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  188. package/browser/query-builder/WhereExpressionBuilder.d.ts +3 -1
  189. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  190. package/browser/query-builder/relation-id/RelationIdLoader.js +9 -9
  191. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  192. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  193. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +94 -50
  194. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  195. package/browser/query-runner/BaseQueryRunner.d.ts +10 -2
  196. package/browser/query-runner/BaseQueryRunner.js +23 -3
  197. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  198. package/browser/query-runner/QueryRunner.d.ts +8 -0
  199. package/browser/query-runner/QueryRunner.js.map +1 -1
  200. package/browser/repository/AbstractRepository.d.ts +2 -2
  201. package/browser/repository/AbstractRepository.js +2 -2
  202. package/browser/repository/AbstractRepository.js.map +1 -1
  203. package/browser/repository/BaseEntity.d.ts +1 -1
  204. package/browser/repository/BaseEntity.js +1 -1
  205. package/browser/repository/BaseEntity.js.map +1 -1
  206. package/browser/repository/Repository.d.ts +1 -1
  207. package/browser/repository/Repository.js +1 -1
  208. package/browser/repository/Repository.js.map +1 -1
  209. package/browser/repository/TreeRepository.js +3 -2
  210. package/browser/repository/TreeRepository.js.map +1 -1
  211. package/browser/schema-builder/RdbmsSchemaBuilder.js +37 -31
  212. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  213. package/browser/schema-builder/options/TableColumnOptions.d.ts +4 -0
  214. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  215. package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  216. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  217. package/browser/schema-builder/table/TableColumn.d.ts +4 -0
  218. package/browser/schema-builder/table/TableColumn.js +2 -0
  219. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  220. package/browser/schema-builder/table/TableUnique.d.ts +5 -0
  221. package/browser/schema-builder/table/TableUnique.js +5 -2
  222. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  223. package/browser/schema-builder/util/TableUtils.js +1 -0
  224. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  225. package/browser/subscriber/Broadcaster.d.ts +40 -0
  226. package/browser/subscriber/Broadcaster.js +191 -31
  227. package/browser/subscriber/Broadcaster.js.map +1 -1
  228. package/browser/subscriber/EntitySubscriberInterface.d.ts +18 -0
  229. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  230. package/browser/subscriber/event/RecoverEvent.d.ts +6 -0
  231. package/browser/subscriber/event/RecoverEvent.js +3 -0
  232. package/browser/subscriber/event/RecoverEvent.js.map +1 -0
  233. package/browser/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  234. package/browser/subscriber/event/SoftRemoveEvent.js +3 -0
  235. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -0
  236. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
  237. package/browser/util/DirectoryExportedClassesLoader.js +55 -31
  238. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  239. package/browser/util/ImportUtils.d.ts +1 -0
  240. package/browser/util/ImportUtils.js +90 -0
  241. package/browser/util/ImportUtils.js.map +1 -0
  242. package/browser/util/PathUtils.d.ts +10 -0
  243. package/browser/util/PathUtils.js +28 -0
  244. package/browser/util/PathUtils.js.map +1 -0
  245. package/browser/util/RandomGenerator.d.ts +0 -4
  246. package/browser/util/RandomGenerator.js +0 -9
  247. package/browser/util/RandomGenerator.js.map +1 -1
  248. package/cache/RedisQueryResultCache.js +39 -34
  249. package/cache/RedisQueryResultCache.js.map +1 -1
  250. package/commands/CacheClearCommand.js +3 -3
  251. package/commands/CacheClearCommand.js.map +1 -1
  252. package/commands/CommandUtils.d.ts +4 -0
  253. package/commands/CommandUtils.js +10 -0
  254. package/commands/CommandUtils.js.map +1 -1
  255. package/commands/EntityCreateCommand.js +2 -2
  256. package/commands/EntityCreateCommand.js.map +1 -1
  257. package/commands/InitCommand.d.ts +9 -7
  258. package/commands/InitCommand.js +74 -45
  259. package/commands/InitCommand.js.map +1 -1
  260. package/commands/MigrationCreateCommand.d.ts +2 -0
  261. package/commands/MigrationCreateCommand.js +9 -3
  262. package/commands/MigrationCreateCommand.js.map +1 -1
  263. package/commands/MigrationGenerateCommand.d.ts +2 -0
  264. package/commands/MigrationGenerateCommand.js +9 -3
  265. package/commands/MigrationGenerateCommand.js.map +1 -1
  266. package/commands/MigrationRevertCommand.js +2 -3
  267. package/commands/MigrationRevertCommand.js.map +1 -1
  268. package/commands/MigrationRunCommand.js +2 -3
  269. package/commands/MigrationRunCommand.js.map +1 -1
  270. package/commands/MigrationShowCommand.js +5 -7
  271. package/commands/MigrationShowCommand.js.map +1 -1
  272. package/commands/QueryCommand.d.ts +1 -1
  273. package/commands/QueryCommand.js +2 -3
  274. package/commands/QueryCommand.js.map +1 -1
  275. package/commands/SchemaDropCommand.js +2 -2
  276. package/commands/SchemaDropCommand.js.map +1 -1
  277. package/commands/SchemaLogCommand.js +2 -2
  278. package/commands/SchemaLogCommand.js.map +1 -1
  279. package/commands/SchemaSyncCommand.js +2 -2
  280. package/commands/SchemaSyncCommand.js.map +1 -1
  281. package/commands/SubscriberCreateCommand.js +3 -3
  282. package/commands/SubscriberCreateCommand.js.map +1 -1
  283. package/common/DeepPartial.d.ts +3 -3
  284. package/common/DeepPartial.js.map +1 -1
  285. package/common/RelationType.d.ts +14 -0
  286. package/common/RelationType.js +4 -0
  287. package/common/RelationType.js.map +1 -0
  288. package/connection/BaseConnectionOptions.d.ts +5 -0
  289. package/connection/BaseConnectionOptions.js.map +1 -1
  290. package/connection/Connection.d.ts +7 -3
  291. package/connection/Connection.js +80 -55
  292. package/connection/Connection.js.map +1 -1
  293. package/connection/ConnectionMetadataBuilder.d.ts +3 -3
  294. package/connection/ConnectionMetadataBuilder.js +53 -21
  295. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  296. package/connection/ConnectionOptionsReader.js +35 -28
  297. package/connection/ConnectionOptionsReader.js.map +1 -1
  298. package/connection/options-reader/ConnectionOptionsEnvReader.js +1 -0
  299. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  300. package/decorator/Unique.d.ts +5 -4
  301. package/decorator/Unique.js +7 -3
  302. package/decorator/Unique.js.map +1 -1
  303. package/decorator/columns/PrimaryGeneratedColumn.d.ts +2 -1
  304. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  305. package/decorator/listeners/AfterRecover.d.ts +4 -0
  306. package/decorator/listeners/AfterRecover.js +20 -0
  307. package/decorator/listeners/AfterRecover.js.map +1 -0
  308. package/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  309. package/decorator/listeners/AfterSoftRemove.js +20 -0
  310. package/decorator/listeners/AfterSoftRemove.js.map +1 -0
  311. package/decorator/listeners/BeforeRecover.d.ts +4 -0
  312. package/decorator/listeners/BeforeRecover.js +20 -0
  313. package/decorator/listeners/BeforeRecover.js.map +1 -0
  314. package/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  315. package/decorator/listeners/BeforeSoftRemove.js +20 -0
  316. package/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  317. package/decorator/options/ColumnOptions.d.ts +4 -0
  318. package/decorator/options/ColumnOptions.js.map +1 -1
  319. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  320. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
  321. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  322. package/decorator/options/RelationOptions.d.ts +1 -1
  323. package/decorator/options/RelationOptions.js.map +1 -1
  324. package/decorator/options/UniqueOptions.d.ts +10 -0
  325. package/decorator/options/UniqueOptions.js +4 -0
  326. package/decorator/options/UniqueOptions.js.map +1 -0
  327. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +2 -2
  328. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  329. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +14 -1
  330. package/driver/better-sqlite3/BetterSqlite3Driver.js +93 -8
  331. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  332. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +10 -0
  333. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +63 -0
  334. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  335. package/driver/capacitor/CapacitorQueryRunner.d.ts +8 -0
  336. package/driver/capacitor/CapacitorQueryRunner.js +30 -0
  337. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  338. package/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  339. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  340. package/driver/cordova/CordovaQueryRunner.d.ts +8 -0
  341. package/driver/cordova/CordovaQueryRunner.js +30 -0
  342. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  343. package/driver/expo/ExpoQueryRunner.d.ts +8 -0
  344. package/driver/expo/ExpoQueryRunner.js +30 -0
  345. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  346. package/driver/mongodb/MongoConnectionOptions.d.ts +1 -1
  347. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  348. package/driver/mongodb/MongoQueryRunner.d.ts +8 -0
  349. package/driver/mongodb/MongoQueryRunner.js +20 -0
  350. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  351. package/driver/mysql/MysqlQueryRunner.js +1 -1
  352. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  353. package/driver/nativescript/NativescriptQueryRunner.d.ts +8 -0
  354. package/driver/nativescript/NativescriptQueryRunner.js +30 -0
  355. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  356. package/driver/oracle/OracleQueryRunner.js +1 -1
  357. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  358. package/driver/postgres/PostgresQueryRunner.js +52 -19
  359. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  360. package/driver/react-native/ReactNativeQueryRunner.d.ts +8 -0
  361. package/driver/react-native/ReactNativeQueryRunner.js +30 -0
  362. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  363. package/driver/sap/SapQueryRunner.js +1 -1
  364. package/driver/sap/SapQueryRunner.js.map +1 -1
  365. package/driver/sqlite/SqliteDriver.d.ts +13 -0
  366. package/driver/sqlite/SqliteDriver.js +94 -10
  367. package/driver/sqlite/SqliteDriver.js.map +1 -1
  368. package/driver/sqlite/SqliteQueryRunner.d.ts +8 -0
  369. package/driver/sqlite/SqliteQueryRunner.js +30 -0
  370. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  371. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +13 -0
  372. package/driver/sqlite-abstract/AbstractSqliteDriver.js +25 -2
  373. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  374. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +11 -1
  375. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +119 -58
  376. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  377. package/driver/sqljs/SqljsQueryRunner.d.ts +8 -0
  378. package/driver/sqljs/SqljsQueryRunner.js +30 -0
  379. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  380. package/entity-manager/EntityManager.d.ts +2 -2
  381. package/entity-manager/EntityManager.js +2 -12
  382. package/entity-manager/EntityManager.js.map +1 -1
  383. package/entity-manager/MongoEntityManager.d.ts +2 -0
  384. package/entity-manager/MongoEntityManager.js +37 -5
  385. package/entity-manager/MongoEntityManager.js.map +1 -1
  386. package/entity-schema/EntitySchemaOptions.d.ts +6 -0
  387. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  388. package/entity-schema/EntitySchemaRelationOptions.d.ts +7 -1
  389. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  390. package/entity-schema/EntitySchemaTransformer.js +4 -1
  391. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  392. package/entity-schema/EntitySchemaUniqueOptions.d.ts +5 -0
  393. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  394. package/find-options/FindOneOptions.d.ts +6 -0
  395. package/find-options/FindOneOptions.js.map +1 -1
  396. package/find-options/FindOptionsUtils.js +4 -0
  397. package/find-options/FindOptionsUtils.js.map +1 -1
  398. package/find-options/operator/Like.d.ts +1 -1
  399. package/find-options/operator/Like.js +1 -1
  400. package/find-options/operator/Like.js.map +1 -1
  401. package/find-options/operator/Not.d.ts +1 -1
  402. package/find-options/operator/Not.js +1 -1
  403. package/find-options/operator/Not.js.map +1 -1
  404. package/globals.js +33 -6
  405. package/globals.js.map +1 -1
  406. package/index.d.ts +6 -0
  407. package/index.js +8 -1
  408. package/index.js.map +1 -1
  409. package/index.mjs +360 -0
  410. package/metadata/ColumnMetadata.d.ts +4 -0
  411. package/metadata/ColumnMetadata.js +2 -0
  412. package/metadata/ColumnMetadata.js.map +1 -1
  413. package/metadata/EntityMetadata.d.ts +16 -0
  414. package/metadata/EntityMetadata.js +16 -0
  415. package/metadata/EntityMetadata.js.map +1 -1
  416. package/metadata/RelationMetadata.d.ts +1 -1
  417. package/metadata/RelationMetadata.js.map +1 -1
  418. package/metadata/UniqueMetadata.d.ts +5 -0
  419. package/metadata/UniqueMetadata.js +1 -0
  420. package/metadata/UniqueMetadata.js.map +1 -1
  421. package/metadata/types/EventListenerTypes.d.ts +5 -1
  422. package/metadata/types/EventListenerTypes.js +4 -0
  423. package/metadata/types/EventListenerTypes.js.map +1 -1
  424. package/metadata-args/UniqueMetadataArgs.d.ts +5 -0
  425. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  426. package/metadata-builder/EntityMetadataBuilder.js +4 -0
  427. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  428. package/metadata-builder/EntityMetadataValidator.js +2 -1
  429. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  430. package/migration/MigrationExecutor.js +38 -26
  431. package/migration/MigrationExecutor.js.map +1 -1
  432. package/package.json +1 -1
  433. package/persistence/SubjectExecutor.d.ts +2 -2
  434. package/persistence/SubjectExecutor.js +6 -6
  435. package/persistence/SubjectExecutor.js.map +1 -1
  436. package/persistence/subject-builder/OneToManySubjectBuilder.js +3 -0
  437. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  438. package/persistence/tree/MaterializedPathSubjectExecutor.js +1 -1
  439. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  440. package/platform/PlatformTools.d.ts +1 -0
  441. package/platform/PlatformTools.js +5 -0
  442. package/platform/PlatformTools.js.map +1 -1
  443. package/query-builder/DeleteQueryBuilder.d.ts +4 -2
  444. package/query-builder/DeleteQueryBuilder.js +4 -2
  445. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  446. package/query-builder/InsertQueryBuilder.d.ts +1 -1
  447. package/query-builder/InsertQueryBuilder.js +12 -3
  448. package/query-builder/InsertQueryBuilder.js.map +1 -1
  449. package/query-builder/NotBrackets.d.ts +7 -0
  450. package/query-builder/NotBrackets.js +19 -0
  451. package/query-builder/NotBrackets.js.map +1 -0
  452. package/query-builder/QueryBuilder.d.ts +3 -2
  453. package/query-builder/QueryBuilder.js +2 -1
  454. package/query-builder/QueryBuilder.js.map +1 -1
  455. package/query-builder/RelationLoader.js +11 -6
  456. package/query-builder/RelationLoader.js.map +1 -1
  457. package/query-builder/RelationQueryBuilder.d.ts +1 -1
  458. package/query-builder/RelationQueryBuilder.js +1 -1
  459. package/query-builder/RelationQueryBuilder.js.map +1 -1
  460. package/query-builder/SelectQueryBuilder.d.ts +10 -1
  461. package/query-builder/SelectQueryBuilder.js +28 -21
  462. package/query-builder/SelectQueryBuilder.js.map +1 -1
  463. package/query-builder/SoftDeleteQueryBuilder.d.ts +1 -1
  464. package/query-builder/SoftDeleteQueryBuilder.js +45 -31
  465. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  466. package/query-builder/UpdateQueryBuilder.d.ts +4 -2
  467. package/query-builder/UpdateQueryBuilder.js +11 -6
  468. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  469. package/query-builder/WhereExpressionBuilder.d.ts +3 -1
  470. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  471. package/query-builder/relation-id/RelationIdLoader.js +9 -9
  472. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  473. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  474. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +94 -50
  475. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  476. package/query-runner/BaseQueryRunner.d.ts +10 -2
  477. package/query-runner/BaseQueryRunner.js +23 -3
  478. package/query-runner/BaseQueryRunner.js.map +1 -1
  479. package/query-runner/QueryRunner.d.ts +8 -0
  480. package/query-runner/QueryRunner.js.map +1 -1
  481. package/repository/AbstractRepository.d.ts +2 -2
  482. package/repository/AbstractRepository.js +2 -2
  483. package/repository/AbstractRepository.js.map +1 -1
  484. package/repository/BaseEntity.d.ts +1 -1
  485. package/repository/BaseEntity.js +1 -1
  486. package/repository/BaseEntity.js.map +1 -1
  487. package/repository/Repository.d.ts +1 -1
  488. package/repository/Repository.js +1 -1
  489. package/repository/Repository.js.map +1 -1
  490. package/repository/TreeRepository.js +3 -2
  491. package/repository/TreeRepository.js.map +1 -1
  492. package/schema-builder/RdbmsSchemaBuilder.js +37 -31
  493. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  494. package/schema-builder/options/TableColumnOptions.d.ts +4 -0
  495. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  496. package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  497. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  498. package/schema-builder/table/TableColumn.d.ts +4 -0
  499. package/schema-builder/table/TableColumn.js +2 -0
  500. package/schema-builder/table/TableColumn.js.map +1 -1
  501. package/schema-builder/table/TableUnique.d.ts +5 -0
  502. package/schema-builder/table/TableUnique.js +5 -2
  503. package/schema-builder/table/TableUnique.js.map +1 -1
  504. package/schema-builder/util/TableUtils.js +1 -0
  505. package/schema-builder/util/TableUtils.js.map +1 -1
  506. package/subscriber/Broadcaster.d.ts +40 -0
  507. package/subscriber/Broadcaster.js +191 -31
  508. package/subscriber/Broadcaster.js.map +1 -1
  509. package/subscriber/EntitySubscriberInterface.d.ts +18 -0
  510. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  511. package/subscriber/event/RecoverEvent.d.ts +6 -0
  512. package/subscriber/event/RecoverEvent.js +4 -0
  513. package/subscriber/event/RecoverEvent.js.map +1 -0
  514. package/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  515. package/subscriber/event/SoftRemoveEvent.js +4 -0
  516. package/subscriber/event/SoftRemoveEvent.js.map +1 -0
  517. package/typeorm-class-transformer-shim.js +20 -0
  518. package/typeorm-model-shim.js +20 -0
  519. package/util/DirectoryExportedClassesLoader.d.ts +1 -1
  520. package/util/DirectoryExportedClassesLoader.js +54 -31
  521. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  522. package/util/ImportUtils.d.ts +1 -0
  523. package/util/ImportUtils.js +94 -0
  524. package/util/ImportUtils.js.map +1 -0
  525. package/util/PathUtils.d.ts +10 -0
  526. package/util/PathUtils.js +34 -0
  527. package/util/PathUtils.js.map +1 -0
  528. package/util/RandomGenerator.d.ts +0 -4
  529. package/util/RandomGenerator.js +0 -9
  530. package/util/RandomGenerator.js.map +1 -1
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
5
5
  var ConnectionOptionsReader_1 = require("../connection/ConnectionOptionsReader");
6
6
  var CommandUtils_1 = require("./CommandUtils");
7
7
  var chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
8
+ var PlatformTools_1 = require("../platform/PlatformTools");
8
9
  /**
9
10
  * Generates a new entity.
10
11
  */
@@ -79,8 +80,7 @@ var EntityCreateCommand = /** @class */ (function () {
79
80
  return [3 /*break*/, 8];
80
81
  case 7:
81
82
  err_2 = _a.sent();
82
- console.log(chalk_1.default.black.bgRed("Error during entity creation:"));
83
- console.error(err_2);
83
+ PlatformTools_1.PlatformTools.logCmdErr("Error during entity creation:", err_2);
84
84
  process.exit(1);
85
85
  return [3 /*break*/, 8];
86
86
  case 8: return [2 /*return*/];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":"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","file":"EntityCreateCommand.js","sourcesContent":["import {ConnectionOptionsReader} from \"../connection/ConnectionOptionsReader\";\nimport {CommandUtils} from \"./CommandUtils\";\nimport * as yargs from \"yargs\";\nimport chalk from \"chalk\";\n\n/**\n * Generates a new entity.\n */\nexport class EntityCreateCommand implements yargs.CommandModule {\n command = \"entity:create\";\n describe = \"Generates a new entity.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"c\", {\n alias: \"connection\",\n default: \"default\",\n describe: \"Name of the connection on which to run a query\"\n })\n .option(\"n\", {\n alias: \"name\",\n describe: \"Name of the entity class.\",\n demand: true\n })\n .option(\"d\", {\n alias: \"dir\",\n describe: \"Directory where entity should be created.\"\n })\n .option(\"f\", {\n alias: \"config\",\n default: \"ormconfig\",\n describe: \"Name of the file with connection configuration.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const fileContent = EntityCreateCommand.getTemplate(args.name as any);\n const filename = args.name + \".ts\";\n let directory = args.dir as string | undefined;\n\n // if directory is not set then try to open tsconfig and find default path there\n if (!directory) {\n try {\n const connectionOptionsReader = new ConnectionOptionsReader({\n root: process.cwd(),\n configName: args.config as any\n });\n const connectionOptions = await connectionOptionsReader.get(args.connection as any);\n directory = connectionOptions.cli ? (connectionOptions.cli.entitiesDir || \"\") : \"\";\n } catch (err) { }\n }\n\n if (directory && !directory.startsWith(\"/\")) {\n directory = process.cwd() + \"/\" + directory;\n }\n const path = (directory ? (directory + \"/\") : \"\") + filename;\n const fileExists = await CommandUtils.fileExists(path);\n if (fileExists) {\n throw `File ${chalk.blue(path)} already exists`;\n }\n await CommandUtils.createFile(path, fileContent);\n console.log(chalk.green(`Entity ${chalk.blue(path)} has been created successfully.`));\n\n } catch (err) {\n console.log(chalk.black.bgRed(\"Error during entity creation:\"));\n console.error(err);\n process.exit(1);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets contents of the entity file.\n */\n protected static getTemplate(name: string): string {\n return `import {Entity} from \"typeorm\";\n\n@Entity()\nexport class ${name} {\n\n}\n`;\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":";;;;AAAA,iFAA8E;AAC9E,+CAA4C;AAE5C,6DAA0B;AAC1B,2DAA0D;AAE1D;;GAEG;AACH;IAAA;QACI,YAAO,GAAG,eAAe,CAAC;QAC1B,aAAQ,GAAG,yBAAyB,CAAC;IA6EzC,CAAC;IA3EG,qCAAO,GAAP,UAAQ,IAAgB;QACpB,OAAO,IAAI;aACN,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,gDAAgD;SAC7D,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,2BAA2B;YACrC,MAAM,EAAE,IAAI;SACf,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,2CAA2C;SACxD,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,iDAAiD;SAC9D,CAAC,CAAC;IACX,CAAC;IAEK,qCAAO,GAAb,UAAc,IAAqB;;;;;;;wBAErB,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;wBAChE,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;wBAC/B,SAAS,GAAG,IAAI,CAAC,GAAyB,CAAC;6BAG3C,CAAC,SAAS,EAAV,wBAAU;;;;wBAEA,uBAAuB,GAAG,IAAI,iDAAuB,CAAC;4BACxD,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;4BACnB,UAAU,EAAE,IAAI,CAAC,MAAa;yBACjC,CAAC,CAAC;wBACuB,qBAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAiB,CAAC,EAAA;;wBAA7E,iBAAiB,GAAG,SAAyD;wBACnF,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;;;;;wBAI3F,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;4BACzC,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;yBAC/C;wBACK,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;wBAC1C,qBAAM,2BAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAA;;wBAAhD,UAAU,GAAG,SAAmC;wBACtD,IAAI,UAAU,EAAE;4BACZ,MAAM,UAAQ,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAiB,CAAC;yBACnD;wBACD,qBAAM,2BAAY,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAA;;wBAAhD,SAAgD,CAAC;wBACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAU,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAiC,CAAC,CAAC,CAAC;;;;wBAGtF,6BAAa,CAAC,SAAS,CAAC,+BAA+B,EAAE,KAAG,CAAC,CAAC;wBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;KAEvB;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACc,+BAAW,GAA5B,UAA6B,IAAY;QACrC,OAAO,kEAGA,IAAI,cAGlB,CAAC;IACE,CAAC;IAEL,0BAAC;AAAD,CA/EA,AA+EC,IAAA;AA/EY,kDAAmB","file":"EntityCreateCommand.js","sourcesContent":["import {ConnectionOptionsReader} from \"../connection/ConnectionOptionsReader\";\nimport {CommandUtils} from \"./CommandUtils\";\nimport * as yargs from \"yargs\";\nimport chalk from \"chalk\";\nimport { PlatformTools } from \"../platform/PlatformTools\";\n\n/**\n * Generates a new entity.\n */\nexport class EntityCreateCommand implements yargs.CommandModule {\n command = \"entity:create\";\n describe = \"Generates a new entity.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"c\", {\n alias: \"connection\",\n default: \"default\",\n describe: \"Name of the connection on which to run a query\"\n })\n .option(\"n\", {\n alias: \"name\",\n describe: \"Name of the entity class.\",\n demand: true\n })\n .option(\"d\", {\n alias: \"dir\",\n describe: \"Directory where entity should be created.\"\n })\n .option(\"f\", {\n alias: \"config\",\n default: \"ormconfig\",\n describe: \"Name of the file with connection configuration.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const fileContent = EntityCreateCommand.getTemplate(args.name as any);\n const filename = args.name + \".ts\";\n let directory = args.dir as string | undefined;\n\n // if directory is not set then try to open tsconfig and find default path there\n if (!directory) {\n try {\n const connectionOptionsReader = new ConnectionOptionsReader({\n root: process.cwd(),\n configName: args.config as any\n });\n const connectionOptions = await connectionOptionsReader.get(args.connection as any);\n directory = connectionOptions.cli ? (connectionOptions.cli.entitiesDir || \"\") : \"\";\n } catch (err) { }\n }\n\n if (directory && !directory.startsWith(\"/\")) {\n directory = process.cwd() + \"/\" + directory;\n }\n const path = (directory ? (directory + \"/\") : \"\") + filename;\n const fileExists = await CommandUtils.fileExists(path);\n if (fileExists) {\n throw `File ${chalk.blue(path)} already exists`;\n }\n await CommandUtils.createFile(path, fileContent);\n console.log(chalk.green(`Entity ${chalk.blue(path)} has been created successfully.`));\n\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during entity creation:\", err);\n process.exit(1);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets contents of the entity file.\n */\n protected static getTemplate(name: string): string {\n return `import {Entity} from \"typeorm\";\n\n@Entity()\nexport class ${name} {\n\n}\n`;\n }\n\n}\n"],"sourceRoot":".."}
@@ -17,9 +17,11 @@ export declare class InitCommand implements yargs.CommandModule {
17
17
  docker: unknown;
18
18
  } & {
19
19
  pm: string;
20
+ } & {
21
+ ms: string;
20
22
  }>;
21
23
  handler(args: yargs.Arguments): Promise<void>;
22
- protected static executeCommand(command: string): Promise<string>;
24
+ protected static executeCommand(command: string, cwd: string): Promise<string>;
23
25
  /**
24
26
  * Gets contents of the ormconfig file.
25
27
  */
@@ -27,7 +29,7 @@ export declare class InitCommand implements yargs.CommandModule {
27
29
  /**
28
30
  * Gets contents of the ormconfig file.
29
31
  */
30
- protected static getTsConfigTemplate(): string;
32
+ protected static getTsConfigTemplate(esmModule: boolean): string;
31
33
  /**
32
34
  * Gets contents of the .gitignore file.
33
35
  */
@@ -39,19 +41,19 @@ export declare class InitCommand implements yargs.CommandModule {
39
41
  /**
40
42
  * Gets contents of the route file (used when express is enabled).
41
43
  */
42
- protected static getRoutesTemplate(): string;
44
+ protected static getRoutesTemplate(isEsm: boolean): string;
43
45
  /**
44
46
  * Gets contents of the user controller file (used when express is enabled).
45
47
  */
46
- protected static getControllerTemplate(): string;
48
+ protected static getControllerTemplate(isEsm: boolean): string;
47
49
  /**
48
50
  * Gets contents of the main (index) application file.
49
51
  */
50
- protected static getAppIndexTemplate(express: boolean): string;
52
+ protected static getAppIndexTemplate(express: boolean, isEsm: boolean): string;
51
53
  /**
52
54
  * Gets contents of the new package.json file.
53
55
  */
54
- protected static getPackageJsonTemplate(projectName?: string): string;
56
+ protected static getPackageJsonTemplate(projectName?: string, projectIsEsm?: boolean): string;
55
57
  /**
56
58
  * Gets contents of the new docker-compose.yml file.
57
59
  */
@@ -65,5 +67,5 @@ export declare class InitCommand implements yargs.CommandModule {
65
67
  /**
66
68
  * Appends to a given package.json template everything needed.
67
69
  */
68
- protected static appendPackageJson(packageJsonContents: string, database: string, express: boolean): string;
70
+ protected static appendPackageJson(packageJsonContents: string, database: string, express: boolean, projectIsEsm: boolean): string;
69
71
  }
@@ -7,6 +7,7 @@ var path = (0, tslib_1.__importStar)(require("path"));
7
7
  var chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
8
8
  var child_process_1 = require("child_process");
9
9
  var TypeORMError_1 = require("../error/TypeORMError");
10
+ var PlatformTools_1 = require("../platform/PlatformTools");
10
11
  /**
11
12
  * Generates a new project with TypeORM.
12
13
  */
@@ -43,11 +44,17 @@ var InitCommand = /** @class */ (function () {
43
44
  choices: ["npm", "yarn"],
44
45
  default: "npm",
45
46
  describe: "Install packages, expected values are npm or yarn."
47
+ })
48
+ .option("ms", {
49
+ alias: "module",
50
+ choices: ["commonjs", "esm"],
51
+ default: "commonjs",
52
+ describe: "Module system to use for project, expected values are commonjs or esm."
46
53
  });
47
54
  };
48
55
  InitCommand.prototype.handler = function (args) {
49
56
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
50
- var database, isExpress, isDocker, basePath, projectName, installNpm, packageJsonContents, err_1;
57
+ var database, isExpress, isDocker, basePath, projectName, installNpm, projectIsEsm, packageJsonContents, err_1;
51
58
  return (0, tslib_1.__generator)(this, function (_a) {
52
59
  switch (_a.label) {
53
60
  case 0:
@@ -58,7 +65,8 @@ var InitCommand = /** @class */ (function () {
58
65
  basePath = process.cwd() + (args.name ? ("/" + args.name) : "");
59
66
  projectName = args.name ? path.basename(args.name) : undefined;
60
67
  installNpm = args.pm === "yarn" ? false : true;
61
- return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/package.json", InitCommand.getPackageJsonTemplate(projectName), false)];
68
+ projectIsEsm = args.ms === "esm";
69
+ return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/package.json", InitCommand.getPackageJsonTemplate(projectName, projectIsEsm), false)];
62
70
  case 1:
63
71
  _a.sent();
64
72
  if (!isDocker) return [3 /*break*/, 3];
@@ -72,7 +80,7 @@ var InitCommand = /** @class */ (function () {
72
80
  return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/README.md", InitCommand.getReadmeTemplate({ docker: isDocker }), false)];
73
81
  case 5:
74
82
  _a.sent();
75
- return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/tsconfig.json", InitCommand.getTsConfigTemplate())];
83
+ return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/tsconfig.json", InitCommand.getTsConfigTemplate(projectIsEsm))];
76
84
  case 6:
77
85
  _a.sent();
78
86
  return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/ormconfig.json", InitCommand.getOrmConfigTemplate(database))];
@@ -81,24 +89,24 @@ var InitCommand = /** @class */ (function () {
81
89
  return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/src/entity/User.ts", InitCommand.getUserEntityTemplate(database))];
82
90
  case 8:
83
91
  _a.sent();
84
- return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/src/index.ts", InitCommand.getAppIndexTemplate(isExpress))];
92
+ return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/src/index.ts", InitCommand.getAppIndexTemplate(isExpress, projectIsEsm))];
85
93
  case 9:
86
94
  _a.sent();
87
95
  return [4 /*yield*/, CommandUtils_1.CommandUtils.createDirectories(basePath + "/src/migration")];
88
96
  case 10:
89
97
  _a.sent();
90
98
  if (!isExpress) return [3 /*break*/, 13];
91
- return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/src/routes.ts", InitCommand.getRoutesTemplate())];
99
+ return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/src/routes.ts", InitCommand.getRoutesTemplate(projectIsEsm))];
92
100
  case 11:
93
101
  _a.sent();
94
- return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/src/controller/UserController.ts", InitCommand.getControllerTemplate())];
102
+ return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/src/controller/UserController.ts", InitCommand.getControllerTemplate(projectIsEsm))];
95
103
  case 12:
96
104
  _a.sent();
97
105
  _a.label = 13;
98
106
  case 13: return [4 /*yield*/, CommandUtils_1.CommandUtils.readFile(basePath + "/package.json")];
99
107
  case 14:
100
108
  packageJsonContents = _a.sent();
101
- return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/package.json", InitCommand.appendPackageJson(packageJsonContents, database, isExpress))];
109
+ return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(basePath + "/package.json", InitCommand.appendPackageJson(packageJsonContents, database, isExpress, projectIsEsm))];
102
110
  case 15:
103
111
  _a.sent();
104
112
  if (args.name) {
@@ -108,19 +116,18 @@ var InitCommand = /** @class */ (function () {
108
116
  console.log(chalk_1.default.green("Project created inside current directory."));
109
117
  }
110
118
  if (!(args.pm && installNpm)) return [3 /*break*/, 17];
111
- return [4 /*yield*/, InitCommand.executeCommand("npm install")];
119
+ return [4 /*yield*/, InitCommand.executeCommand("npm install", basePath)];
112
120
  case 16:
113
121
  _a.sent();
114
122
  return [3 /*break*/, 19];
115
- case 17: return [4 /*yield*/, InitCommand.executeCommand("yarn install")];
123
+ case 17: return [4 /*yield*/, InitCommand.executeCommand("yarn install", basePath)];
116
124
  case 18:
117
125
  _a.sent();
118
126
  _a.label = 19;
119
127
  case 19: return [3 /*break*/, 21];
120
128
  case 20:
121
129
  err_1 = _a.sent();
122
- console.log(chalk_1.default.black.bgRed("Error during project initialization:"));
123
- console.error(err_1);
130
+ PlatformTools_1.PlatformTools.logCmdErr("Error during project initialization:", err_1);
124
131
  process.exit(1);
125
132
  return [3 /*break*/, 21];
126
133
  case 21: return [2 /*return*/];
@@ -131,9 +138,9 @@ var InitCommand = /** @class */ (function () {
131
138
  // -------------------------------------------------------------------------
132
139
  // Protected Static Methods
133
140
  // -------------------------------------------------------------------------
134
- InitCommand.executeCommand = function (command) {
141
+ InitCommand.executeCommand = function (command, cwd) {
135
142
  return new Promise(function (ok, fail) {
136
- (0, child_process_1.exec)(command, function (error, stdout, stderr) {
143
+ (0, child_process_1.exec)(command, { cwd: cwd }, function (error, stdout, stderr) {
137
144
  if (stdout)
138
145
  return ok(stdout);
139
146
  if (stderr)
@@ -251,19 +258,34 @@ var InitCommand = /** @class */ (function () {
251
258
  /**
252
259
  * Gets contents of the ormconfig file.
253
260
  */
254
- InitCommand.getTsConfigTemplate = function () {
255
- return JSON.stringify({
256
- compilerOptions: {
257
- lib: ["es5", "es6"],
258
- target: "es5",
259
- module: "commonjs",
260
- moduleResolution: "node",
261
- outDir: "./build",
262
- emitDecoratorMetadata: true,
263
- experimentalDecorators: true,
264
- sourceMap: true
265
- }
266
- }, undefined, 3);
261
+ InitCommand.getTsConfigTemplate = function (esmModule) {
262
+ if (esmModule)
263
+ return JSON.stringify({
264
+ compilerOptions: {
265
+ lib: ["es2021"],
266
+ target: "es2021",
267
+ module: "es2022",
268
+ moduleResolution: "node",
269
+ allowSyntheticDefaultImports: true,
270
+ outDir: "./build",
271
+ emitDecoratorMetadata: true,
272
+ experimentalDecorators: true,
273
+ sourceMap: true
274
+ }
275
+ }, undefined, 3);
276
+ else
277
+ return JSON.stringify({
278
+ compilerOptions: {
279
+ lib: ["es5", "es6"],
280
+ target: "es5",
281
+ module: "commonjs",
282
+ moduleResolution: "node",
283
+ outDir: "./build",
284
+ emitDecoratorMetadata: true,
285
+ experimentalDecorators: true,
286
+ sourceMap: true
287
+ }
288
+ }, undefined, 3);
267
289
  };
268
290
  /**
269
291
  * Gets contents of the .gitignore file.
@@ -280,34 +302,35 @@ var InitCommand = /** @class */ (function () {
280
302
  /**
281
303
  * Gets contents of the route file (used when express is enabled).
282
304
  */
283
- InitCommand.getRoutesTemplate = function () {
284
- return "import {UserController} from \"./controller/UserController\";\n\nexport const Routes = [{\n method: \"get\",\n route: \"/users\",\n controller: UserController,\n action: \"all\"\n}, {\n method: \"get\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"one\"\n}, {\n method: \"post\",\n route: \"/users\",\n controller: UserController,\n action: \"save\"\n}, {\n method: \"delete\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"remove\"\n}];";
305
+ InitCommand.getRoutesTemplate = function (isEsm) {
306
+ return "import {UserController} from \"./controller/UserController" + (isEsm ? ".js" : "") + "\";\n\nexport const Routes = [{\n method: \"get\",\n route: \"/users\",\n controller: UserController,\n action: \"all\"\n}, {\n method: \"get\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"one\"\n}, {\n method: \"post\",\n route: \"/users\",\n controller: UserController,\n action: \"save\"\n}, {\n method: \"delete\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"remove\"\n}];";
285
307
  };
286
308
  /**
287
309
  * Gets contents of the user controller file (used when express is enabled).
288
310
  */
289
- InitCommand.getControllerTemplate = function () {
290
- return "import {getRepository} from \"typeorm\";\nimport {NextFunction, Request, Response} from \"express\";\nimport {User} from \"../entity/User\";\n\nexport class UserController {\n\n private userRepository = getRepository(User);\n\n async all(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.find();\n }\n\n async one(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.findOne(request.params.id);\n }\n\n async save(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.save(request.body);\n }\n\n async remove(request: Request, response: Response, next: NextFunction) {\n let userToRemove = await this.userRepository.findOne(request.params.id);\n await this.userRepository.remove(userToRemove);\n }\n\n}";
311
+ InitCommand.getControllerTemplate = function (isEsm) {
312
+ return "import {getRepository} from \"typeorm\";\nimport {NextFunction, Request, Response} from \"express\";\nimport {User} from \"../entity/User" + (isEsm ? ".js" : "") + "\";\n\nexport class UserController {\n\n private userRepository = getRepository(User);\n\n async all(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.find();\n }\n\n async one(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.findOne(request.params.id);\n }\n\n async save(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.save(request.body);\n }\n\n async remove(request: Request, response: Response, next: NextFunction) {\n let userToRemove = await this.userRepository.findOne(request.params.id);\n await this.userRepository.remove(userToRemove);\n }\n\n}";
291
313
  };
292
314
  /**
293
315
  * Gets contents of the main (index) application file.
294
316
  */
295
- InitCommand.getAppIndexTemplate = function (express) {
317
+ InitCommand.getAppIndexTemplate = function (express, isEsm) {
296
318
  if (express) {
297
- return "import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport * as express from \"express\";\nimport * as bodyParser from \"body-parser\";\nimport {Request, Response} from \"express\";\nimport {Routes} from \"./routes\";\nimport {User} from \"./entity/User\";\n\ncreateConnection().then(async connection => {\n\n // create express app\n const app = express();\n app.use(bodyParser.json());\n\n // register express routes from defined application routes\n Routes.forEach(route => {\n (app as any)[route.method](route.route, (req: Request, res: Response, next: Function) => {\n const result = (new (route.controller as any))[route.action](req, res, next);\n if (result instanceof Promise) {\n result.then(result => result !== null && result !== undefined ? res.send(result) : undefined);\n\n } else if (result !== null && result !== undefined) {\n res.json(result);\n }\n });\n });\n\n // setup express app here\n // ...\n\n // start express server\n app.listen(3000);\n\n // insert new users for test\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Timber\",\n lastName: \"Saw\",\n age: 27\n }));\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Phantom\",\n lastName: \"Assassin\",\n age: 24\n }));\n\n console.log(\"Express server has started on port 3000. Open http://localhost:3000/users to see results\");\n\n}).catch(error => console.log(error));\n";
319
+ return "import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport " + (!isEsm ? "* as " : "") + "express from \"express\";\nimport " + (!isEsm ? "* as " : "") + "bodyParser from \"body-parser\";\nimport {Request, Response} from \"express\";\nimport {Routes} from \"./routes" + (isEsm ? ".js" : "") + "\";\nimport {User} from \"./entity/User" + (isEsm ? ".js" : "") + "\";\n\ncreateConnection().then(async connection => {\n\n // create express app\n const app = express();\n app.use(bodyParser.json());\n\n // register express routes from defined application routes\n Routes.forEach(route => {\n (app as any)[route.method](route.route, (req: Request, res: Response, next: Function) => {\n const result = (new (route.controller as any))[route.action](req, res, next);\n if (result instanceof Promise) {\n result.then(result => result !== null && result !== undefined ? res.send(result) : undefined);\n\n } else if (result !== null && result !== undefined) {\n res.json(result);\n }\n });\n });\n\n // setup express app here\n // ...\n\n // start express server\n app.listen(3000);\n\n // insert new users for test\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Timber\",\n lastName: \"Saw\",\n age: 27\n }));\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Phantom\",\n lastName: \"Assassin\",\n age: 24\n }));\n\n console.log(\"Express server has started on port 3000. Open http://localhost:3000/users to see results\");\n\n}).catch(error => console.log(error));\n";
298
320
  }
299
321
  else {
300
- return "import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport {User} from \"./entity/User\";\n\ncreateConnection().then(async connection => {\n\n console.log(\"Inserting a new user into the database...\");\n const user = new User();\n user.firstName = \"Timber\";\n user.lastName = \"Saw\";\n user.age = 25;\n await connection.manager.save(user);\n console.log(\"Saved a new user with id: \" + user.id);\n\n console.log(\"Loading users from the database...\");\n const users = await connection.manager.find(User);\n console.log(\"Loaded users: \", users);\n\n console.log(\"Here you can setup and run express/koa/any other framework.\");\n\n}).catch(error => console.log(error));\n";
322
+ return "import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport {User} from \"./entity/User" + (isEsm ? ".js" : "") + "\";\n\ncreateConnection().then(async connection => {\n\n console.log(\"Inserting a new user into the database...\");\n const user = new User();\n user.firstName = \"Timber\";\n user.lastName = \"Saw\";\n user.age = 25;\n await connection.manager.save(user);\n console.log(\"Saved a new user with id: \" + user.id);\n\n console.log(\"Loading users from the database...\");\n const users = await connection.manager.find(User);\n console.log(\"Loaded users: \", users);\n\n console.log(\"Here you can setup and run express/koa/any other framework.\");\n\n}).catch(error => console.log(error));\n";
301
323
  }
302
324
  };
303
325
  /**
304
326
  * Gets contents of the new package.json file.
305
327
  */
306
- InitCommand.getPackageJsonTemplate = function (projectName) {
328
+ InitCommand.getPackageJsonTemplate = function (projectName, projectIsEsm) {
307
329
  return JSON.stringify({
308
330
  name: projectName || "new-typeorm-project",
309
331
  version: "0.0.1",
310
332
  description: "Awesome project developed with TypeORM.",
333
+ type: projectIsEsm ? "module" : "commonjs",
311
334
  devDependencies: {},
312
335
  dependencies: {},
313
336
  scripts: {}
@@ -355,20 +378,20 @@ var InitCommand = /** @class */ (function () {
355
378
  /**
356
379
  * Appends to a given package.json template everything needed.
357
380
  */
358
- InitCommand.appendPackageJson = function (packageJsonContents, database, express /*, docker: boolean*/) {
381
+ InitCommand.appendPackageJson = function (packageJsonContents, database, express, projectIsEsm /*, docker: boolean*/) {
359
382
  var packageJson = JSON.parse(packageJsonContents);
360
383
  if (!packageJson.devDependencies)
361
384
  packageJson.devDependencies = {};
362
385
  Object.assign(packageJson.devDependencies, {
363
- "ts-node": "3.3.0",
364
- "@types/node": "^8.0.29",
365
- "typescript": "3.3.3333"
386
+ "ts-node": "10.4.0",
387
+ "@types/node": "^16.11.10",
388
+ "typescript": "4.5.2"
366
389
  });
367
390
  if (!packageJson.dependencies)
368
391
  packageJson.dependencies = {};
369
392
  Object.assign(packageJson.dependencies, {
370
393
  "typeorm": require("../package.json").version,
371
- "reflect-metadata": "^0.1.10"
394
+ "reflect-metadata": "^0.1.13"
372
395
  });
373
396
  switch (database) {
374
397
  case "mysql":
@@ -396,15 +419,21 @@ var InitCommand = /** @class */ (function () {
396
419
  break;
397
420
  }
398
421
  if (express) {
399
- packageJson.dependencies["express"] = "^4.15.4";
400
- packageJson.dependencies["body-parser"] = "^1.18.1";
422
+ packageJson.dependencies["express"] = "^4.17.2";
423
+ packageJson.dependencies["body-parser"] = "^1.19.1";
401
424
  }
402
425
  if (!packageJson.scripts)
403
426
  packageJson.scripts = {};
404
- Object.assign(packageJson.scripts, {
405
- start: /*(docker ? "docker-compose up && " : "") + */ "ts-node src/index.ts",
406
- typeorm: "node --require ts-node/register ./node_modules/typeorm/cli.js"
407
- });
427
+ if (projectIsEsm)
428
+ Object.assign(packageJson.scripts, {
429
+ start: /*(docker ? "docker-compose up && " : "") + */ "node --loader ts-node/esm src/index.ts",
430
+ typeorm: "node --loader ts-node/esm ./node_modules/typeorm/cli.js"
431
+ });
432
+ else
433
+ Object.assign(packageJson.scripts, {
434
+ start: /*(docker ? "docker-compose up && " : "") + */ "ts-node src/index.ts",
435
+ typeorm: "node --require ts-node/register ./node_modules/typeorm/cli.js"
436
+ });
408
437
  return JSON.stringify(packageJson, undefined, 3);
409
438
  };
410
439
  return InitCommand;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"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","file":"InitCommand.js","sourcesContent":["import { CommandUtils } from \"./CommandUtils\";\nimport { ObjectLiteral } from \"../common/ObjectLiteral\";\nimport * as path from \"path\";\nimport * as yargs from \"yargs\";\nimport chalk from \"chalk\";\nimport { exec } from \"child_process\";\nimport { TypeORMError } from \"../error/TypeORMError\";\n\n/**\n * Generates a new project with TypeORM.\n */\nexport class InitCommand implements yargs.CommandModule {\n command = \"init\";\n describe = \"Generates initial TypeORM project structure. \" +\n \"If name specified then creates files inside directory called as name. \" +\n \"If its not specified then creates files inside current directory.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"c\", {\n alias: \"connection\",\n default: \"default\",\n describe: \"Name of the connection on which to run a query\"\n })\n .option(\"n\", {\n alias: \"name\",\n describe: \"Name of the project directory.\"\n })\n .option(\"db\", {\n alias: \"database\",\n describe: \"Database type you'll use in your project.\"\n })\n .option(\"express\", {\n describe: \"Indicates if express should be included in the project.\"\n })\n .option(\"docker\", {\n describe: \"Set to true if docker-compose must be generated as well. False by default.\"\n })\n .option(\"pm\", {\n alias: \"manager\",\n choices: [\"npm\", \"yarn\"],\n default: \"npm\",\n describe: \"Install packages, expected values are npm or yarn.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const database: string = args.database as any || \"mysql\";\n const isExpress = args.express !== undefined ? true : false;\n const isDocker = args.docker !== undefined ? true : false;\n const basePath = process.cwd() + (args.name ? (\"/\" + args.name) : \"\");\n const projectName = args.name ? path.basename(args.name as any) : undefined;\n const installNpm = args.pm === \"yarn\" ? false : true;\n await CommandUtils.createFile(basePath + \"/package.json\", InitCommand.getPackageJsonTemplate(projectName), false);\n if (isDocker)\n await CommandUtils.createFile(basePath + \"/docker-compose.yml\", InitCommand.getDockerComposeTemplate(database), false);\n await CommandUtils.createFile(basePath + \"/.gitignore\", InitCommand.getGitIgnoreFile());\n await CommandUtils.createFile(basePath + \"/README.md\", InitCommand.getReadmeTemplate({ docker: isDocker }), false);\n await CommandUtils.createFile(basePath + \"/tsconfig.json\", InitCommand.getTsConfigTemplate());\n await CommandUtils.createFile(basePath + \"/ormconfig.json\", InitCommand.getOrmConfigTemplate(database));\n await CommandUtils.createFile(basePath + \"/src/entity/User.ts\", InitCommand.getUserEntityTemplate(database));\n await CommandUtils.createFile(basePath + \"/src/index.ts\", InitCommand.getAppIndexTemplate(isExpress));\n await CommandUtils.createDirectories(basePath + \"/src/migration\");\n\n // generate extra files for express application\n if (isExpress) {\n await CommandUtils.createFile(basePath + \"/src/routes.ts\", InitCommand.getRoutesTemplate());\n await CommandUtils.createFile(basePath + \"/src/controller/UserController.ts\", InitCommand.getControllerTemplate());\n }\n\n const packageJsonContents = await CommandUtils.readFile(basePath + \"/package.json\");\n await CommandUtils.createFile(basePath + \"/package.json\", InitCommand.appendPackageJson(packageJsonContents, database, isExpress));\n\n if (args.name) {\n console.log(chalk.green(`Project created inside ${chalk.blue(basePath)} directory.`));\n\n } else {\n console.log(chalk.green(`Project created inside current directory.`));\n }\n\n if (args.pm && installNpm) {\n await InitCommand.executeCommand(\"npm install\");\n } else {\n await InitCommand.executeCommand(\"yarn install\");\n }\n\n } catch (err) {\n console.log(chalk.black.bgRed(\"Error during project initialization:\"));\n console.error(err);\n process.exit(1);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n protected static executeCommand(command: string) {\n return new Promise<string>((ok, fail) => {\n exec(command, (error: any, stdout: any, stderr: any) => {\n if (stdout) return ok(stdout);\n if (stderr) return fail(stderr);\n if (error) return fail(error);\n ok(\"\");\n });\n });\n }\n\n /**\n * Gets contents of the ormconfig file.\n */\n protected static getOrmConfigTemplate(database: string): string {\n const options: ObjectLiteral = {};\n switch (database) {\n case \"mysql\":\n Object.assign(options, {\n type: \"mysql\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",\n });\n break;\n case \"mariadb\":\n Object.assign(options, {\n type: \"mariadb\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",\n });\n break;\n case \"sqlite\":\n Object.assign(options, {\n type: \"sqlite\",\n \"database\": \"database.sqlite\",\n });\n break;\n case \"better-sqlite3\":\n Object.assign(options, {\n type: \"better-sqlite3\",\n \"database\": \"database.sqlite\",\n });\n break;\n case \"postgres\":\n Object.assign(options, {\n \"type\": \"postgres\",\n \"host\": \"localhost\",\n \"port\": 5432,\n \"username\": \"test\",\n \"password\": \"test\",\n \"database\": \"test\",\n });\n break;\n case \"cockroachdb\":\n Object.assign(options, {\n \"type\": \"cockroachdb\",\n \"host\": \"localhost\",\n \"port\": 26257,\n \"username\": \"root\",\n \"password\": \"\",\n \"database\": \"defaultdb\",\n });\n break;\n case \"mssql\":\n Object.assign(options, {\n \"type\": \"mssql\",\n \"host\": \"localhost\",\n \"username\": \"sa\",\n \"password\": \"Admin12345\",\n \"database\": \"tempdb\",\n });\n break;\n case \"oracle\":\n Object.assign(options, {\n \"type\": \"oracle\",\n \"host\": \"localhost\",\n \"username\": \"system\",\n \"password\": \"oracle\",\n \"port\": 1521,\n \"sid\": \"xe.oracle.docker\",\n });\n break;\n case \"mongodb\":\n Object.assign(options, {\n \"type\": \"mongodb\",\n \"database\": \"test\",\n });\n break;\n }\n Object.assign(options, {\n synchronize: true,\n logging: false,\n entities: [\n \"src/entity/**/*.ts\"\n ],\n migrations: [\n \"src/migration/**/*.ts\"\n ],\n subscribers: [\n \"src/subscriber/**/*.ts\"\n ],\n cli: {\n entitiesDir: \"src/entity\",\n migrationsDir: \"src/migration\",\n subscribersDir: \"src/subscriber\"\n }\n });\n return JSON.stringify(options, undefined, 3);\n }\n\n /**\n * Gets contents of the ormconfig file.\n */\n protected static getTsConfigTemplate(): string {\n return JSON.stringify({\n compilerOptions: {\n lib: [\"es5\", \"es6\"],\n target: \"es5\",\n module: \"commonjs\",\n moduleResolution: \"node\",\n outDir: \"./build\",\n emitDecoratorMetadata: true,\n experimentalDecorators: true,\n sourceMap: true\n }\n }\n , undefined, 3);\n }\n\n /**\n * Gets contents of the .gitignore file.\n */\n protected static getGitIgnoreFile(): string {\n return `.idea/\n.vscode/\nnode_modules/\nbuild/\ntmp/\ntemp/`;\n }\n\n /**\n * Gets contents of the user entity.\n */\n protected static getUserEntityTemplate(database: string): string {\n return `import {Entity, ${ database === \"mongodb\" ? \"ObjectIdColumn, ObjectID\" : \"PrimaryGeneratedColumn\" }, Column} from \"typeorm\";\n\n@Entity()\nexport class User {\n\n ${ database === \"mongodb\" ? \"@ObjectIdColumn()\" : \"@PrimaryGeneratedColumn()\" }\n id: ${ database === \"mongodb\" ? \"ObjectID\" : \"number\" };\n\n @Column()\n firstName: string;\n\n @Column()\n lastName: string;\n\n @Column()\n age: number;\n\n}\n`;\n }\n\n /**\n * Gets contents of the route file (used when express is enabled).\n */\n protected static getRoutesTemplate(): string {\n return `import {UserController} from \"./controller/UserController\";\n\nexport const Routes = [{\n method: \"get\",\n route: \"/users\",\n controller: UserController,\n action: \"all\"\n}, {\n method: \"get\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"one\"\n}, {\n method: \"post\",\n route: \"/users\",\n controller: UserController,\n action: \"save\"\n}, {\n method: \"delete\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"remove\"\n}];`;\n }\n\n /**\n * Gets contents of the user controller file (used when express is enabled).\n */\n protected static getControllerTemplate(): string {\n return `import {getRepository} from \"typeorm\";\nimport {NextFunction, Request, Response} from \"express\";\nimport {User} from \"../entity/User\";\n\nexport class UserController {\n\n private userRepository = getRepository(User);\n\n async all(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.find();\n }\n\n async one(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.findOne(request.params.id);\n }\n\n async save(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.save(request.body);\n }\n\n async remove(request: Request, response: Response, next: NextFunction) {\n let userToRemove = await this.userRepository.findOne(request.params.id);\n await this.userRepository.remove(userToRemove);\n }\n\n}`;\n }\n\n /**\n * Gets contents of the main (index) application file.\n */\n protected static getAppIndexTemplate(express: boolean): string {\n if (express) {\n return `import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport * as express from \"express\";\nimport * as bodyParser from \"body-parser\";\nimport {Request, Response} from \"express\";\nimport {Routes} from \"./routes\";\nimport {User} from \"./entity/User\";\n\ncreateConnection().then(async connection => {\n\n // create express app\n const app = express();\n app.use(bodyParser.json());\n\n // register express routes from defined application routes\n Routes.forEach(route => {\n (app as any)[route.method](route.route, (req: Request, res: Response, next: Function) => {\n const result = (new (route.controller as any))[route.action](req, res, next);\n if (result instanceof Promise) {\n result.then(result => result !== null && result !== undefined ? res.send(result) : undefined);\n\n } else if (result !== null && result !== undefined) {\n res.json(result);\n }\n });\n });\n\n // setup express app here\n // ...\n\n // start express server\n app.listen(3000);\n\n // insert new users for test\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Timber\",\n lastName: \"Saw\",\n age: 27\n }));\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Phantom\",\n lastName: \"Assassin\",\n age: 24\n }));\n\n console.log(\"Express server has started on port 3000. Open http://localhost:3000/users to see results\");\n\n}).catch(error => console.log(error));\n`;\n\n } else {\n return `import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport {User} from \"./entity/User\";\n\ncreateConnection().then(async connection => {\n\n console.log(\"Inserting a new user into the database...\");\n const user = new User();\n user.firstName = \"Timber\";\n user.lastName = \"Saw\";\n user.age = 25;\n await connection.manager.save(user);\n console.log(\"Saved a new user with id: \" + user.id);\n\n console.log(\"Loading users from the database...\");\n const users = await connection.manager.find(User);\n console.log(\"Loaded users: \", users);\n\n console.log(\"Here you can setup and run express/koa/any other framework.\");\n\n}).catch(error => console.log(error));\n`;\n }\n }\n\n /**\n * Gets contents of the new package.json file.\n */\n protected static getPackageJsonTemplate(projectName?: string): string {\n return JSON.stringify({\n name: projectName || \"new-typeorm-project\",\n version: \"0.0.1\",\n description: \"Awesome project developed with TypeORM.\",\n devDependencies: {\n },\n dependencies: {\n },\n scripts: {\n }\n }, undefined, 3);\n }\n\n /**\n * Gets contents of the new docker-compose.yml file.\n */\n protected static getDockerComposeTemplate(database: string): string {\n\n switch (database) {\n case \"mysql\":\n return `version: '3'\nservices:\n\n mysql:\n image: \"mysql:5.7.10\"\n ports:\n - \"3306:3306\"\n environment:\n MYSQL_ROOT_PASSWORD: \"admin\"\n MYSQL_USER: \"test\"\n MYSQL_PASSWORD: \"test\"\n MYSQL_DATABASE: \"test\"\n\n`;\n case \"mariadb\":\n return `version: '3'\nservices:\n\n mariadb:\n image: \"mariadb:10.1.16\"\n ports:\n - \"3306:3306\"\n environment:\n MYSQL_ROOT_PASSWORD: \"admin\"\n MYSQL_USER: \"test\"\n MYSQL_PASSWORD: \"test\"\n MYSQL_DATABASE: \"test\"\n\n`;\n case \"postgres\":\n return `version: '3'\nservices:\n\n postgres:\n image: \"postgres:9.6.1\"\n ports:\n - \"5432:5432\"\n environment:\n POSTGRES_USER: \"test\"\n POSTGRES_PASSWORD: \"test\"\n POSTGRES_DB: \"test\"\n\n`;\n case \"cockroachdb\":\n return `version: '3'\nservices:\n\n cockroachdb:\n image: \"cockroachdb/cockroach:v2.1.4\"\n command: start --insecure\n ports:\n - \"26257:26257\"\n\n`;\n case \"sqlite\":\n case \"better-sqlite3\":\n return `version: '3'\nservices:\n`;\n case \"oracle\":\n throw new TypeORMError(`You cannot initialize a project with docker for Oracle driver yet.`); // todo: implement for oracle as well\n\n case \"mssql\":\n return `version: '3'\nservices:\n\n mssql:\n image: \"microsoft/mssql-server-linux:rc2\"\n ports:\n - \"1433:1433\"\n environment:\n SA_PASSWORD: \"Admin12345\"\n ACCEPT_EULA: \"Y\"\n\n`;\n case \"mongodb\":\n return `version: '3'\nservices:\n\n mongodb:\n image: \"mongo:4.0.6\"\n container_name: \"typeorm-mongodb\"\n ports:\n - \"27017:27017\"\n\n`;\n }\n return \"\";\n }\n\n /**\n * Gets contents of the new readme.md file.\n */\n protected static getReadmeTemplate(options: { docker: boolean }): string {\n let template = `# Awesome Project Build with TypeORM\n\nSteps to run this project:\n\n1. Run \\`npm i\\` command\n`;\n\n if (options.docker) {\n template += `2. Run \\`docker-compose up\\` command\n`;\n } else {\n template += `2. Setup database settings inside \\`ormconfig.json\\` file\n`;\n }\n\n template += `3. Run \\`npm start\\` command\n`;\n return template;\n }\n\n /**\n * Appends to a given package.json template everything needed.\n */\n protected static appendPackageJson(packageJsonContents: string, database: string, express: boolean /*, docker: boolean*/): string {\n const packageJson = JSON.parse(packageJsonContents);\n\n if (!packageJson.devDependencies) packageJson.devDependencies = {};\n Object.assign(packageJson.devDependencies, {\n \"ts-node\": \"3.3.0\",\n \"@types/node\": \"^8.0.29\",\n \"typescript\": \"3.3.3333\"\n });\n\n if (!packageJson.dependencies) packageJson.dependencies = {};\n Object.assign(packageJson.dependencies, {\n \"typeorm\": require(\"../package.json\").version,\n \"reflect-metadata\": \"^0.1.10\"\n });\n\n switch (database) {\n case \"mysql\":\n case \"mariadb\":\n packageJson.dependencies[\"mysql\"] = \"^2.14.1\";\n break;\n case \"postgres\":\n case \"cockroachdb\":\n packageJson.dependencies[\"pg\"] = \"^8.4.0\";\n break;\n case \"sqlite\":\n packageJson.dependencies[\"sqlite3\"] = \"^4.0.3\";\n break;\n case \"better-sqlite3\":\n packageJson.dependencies[\"better-sqlite3\"] = \"^7.0.0\";\n break;\n case \"oracle\":\n packageJson.dependencies[\"oracledb\"] = \"^1.13.1\";\n break;\n case \"mssql\":\n packageJson.dependencies[\"mssql\"] = \"^4.0.4\";\n break;\n case \"mongodb\":\n packageJson.dependencies[\"mongodb\"] = \"^3.0.8\";\n break;\n }\n\n if (express) {\n packageJson.dependencies[\"express\"] = \"^4.15.4\";\n packageJson.dependencies[\"body-parser\"] = \"^1.18.1\";\n }\n\n if (!packageJson.scripts) packageJson.scripts = {};\n Object.assign(packageJson.scripts, {\n start: /*(docker ? \"docker-compose up && \" : \"\") + */\"ts-node src/index.ts\",\n typeorm: \"node --require ts-node/register ./node_modules/typeorm/cli.js\"\n });\n return JSON.stringify(packageJson, undefined, 3);\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"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","file":"InitCommand.js","sourcesContent":["import { CommandUtils } from \"./CommandUtils\";\nimport { ObjectLiteral } from \"../common/ObjectLiteral\";\nimport * as path from \"path\";\nimport * as yargs from \"yargs\";\nimport chalk from \"chalk\";\nimport { exec } from \"child_process\";\nimport { TypeORMError } from \"../error/TypeORMError\";\nimport { PlatformTools } from \"../platform/PlatformTools\";\n\n/**\n * Generates a new project with TypeORM.\n */\nexport class InitCommand implements yargs.CommandModule {\n command = \"init\";\n describe = \"Generates initial TypeORM project structure. \" +\n \"If name specified then creates files inside directory called as name. \" +\n \"If its not specified then creates files inside current directory.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"c\", {\n alias: \"connection\",\n default: \"default\",\n describe: \"Name of the connection on which to run a query\"\n })\n .option(\"n\", {\n alias: \"name\",\n describe: \"Name of the project directory.\"\n })\n .option(\"db\", {\n alias: \"database\",\n describe: \"Database type you'll use in your project.\"\n })\n .option(\"express\", {\n describe: \"Indicates if express should be included in the project.\"\n })\n .option(\"docker\", {\n describe: \"Set to true if docker-compose must be generated as well. False by default.\"\n })\n .option(\"pm\", {\n alias: \"manager\",\n choices: [\"npm\", \"yarn\"],\n default: \"npm\",\n describe: \"Install packages, expected values are npm or yarn.\"\n })\n .option(\"ms\", {\n alias: \"module\",\n choices: [\"commonjs\", \"esm\"],\n default: \"commonjs\",\n describe: \"Module system to use for project, expected values are commonjs or esm.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const database: string = args.database as any || \"mysql\";\n const isExpress = args.express !== undefined ? true : false;\n const isDocker = args.docker !== undefined ? true : false;\n const basePath = process.cwd() + (args.name ? (\"/\" + args.name) : \"\");\n const projectName = args.name ? path.basename(args.name as any) : undefined;\n const installNpm = args.pm === \"yarn\" ? false : true;\n const projectIsEsm = args.ms === \"esm\";\n await CommandUtils.createFile(basePath + \"/package.json\", InitCommand.getPackageJsonTemplate(projectName, projectIsEsm), false);\n if (isDocker)\n await CommandUtils.createFile(basePath + \"/docker-compose.yml\", InitCommand.getDockerComposeTemplate(database), false);\n await CommandUtils.createFile(basePath + \"/.gitignore\", InitCommand.getGitIgnoreFile());\n await CommandUtils.createFile(basePath + \"/README.md\", InitCommand.getReadmeTemplate({ docker: isDocker }), false);\n await CommandUtils.createFile(basePath + \"/tsconfig.json\", InitCommand.getTsConfigTemplate(projectIsEsm));\n await CommandUtils.createFile(basePath + \"/ormconfig.json\", InitCommand.getOrmConfigTemplate(database));\n await CommandUtils.createFile(basePath + \"/src/entity/User.ts\", InitCommand.getUserEntityTemplate(database));\n await CommandUtils.createFile(basePath + \"/src/index.ts\", InitCommand.getAppIndexTemplate(isExpress, projectIsEsm));\n await CommandUtils.createDirectories(basePath + \"/src/migration\");\n\n // generate extra files for express application\n if (isExpress) {\n await CommandUtils.createFile(basePath + \"/src/routes.ts\", InitCommand.getRoutesTemplate(projectIsEsm));\n await CommandUtils.createFile(basePath + \"/src/controller/UserController.ts\", InitCommand.getControllerTemplate(projectIsEsm));\n }\n\n const packageJsonContents = await CommandUtils.readFile(basePath + \"/package.json\");\n await CommandUtils.createFile(basePath + \"/package.json\", InitCommand.appendPackageJson(packageJsonContents, database, isExpress, projectIsEsm));\n\n if (args.name) {\n console.log(chalk.green(`Project created inside ${chalk.blue(basePath)} directory.`));\n\n } else {\n console.log(chalk.green(`Project created inside current directory.`));\n }\n\n if (args.pm && installNpm) {\n await InitCommand.executeCommand(\"npm install\", basePath);\n } else {\n await InitCommand.executeCommand(\"yarn install\", basePath);\n }\n\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during project initialization:\", err);\n process.exit(1);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n protected static executeCommand(command: string, cwd: string) {\n return new Promise<string>((ok, fail) => {\n exec(command, {cwd}, (error: any, stdout: any, stderr: any) => {\n if (stdout) return ok(stdout);\n if (stderr) return fail(stderr);\n if (error) return fail(error);\n ok(\"\");\n });\n });\n }\n\n /**\n * Gets contents of the ormconfig file.\n */\n protected static getOrmConfigTemplate(database: string): string {\n const options: ObjectLiteral = {};\n switch (database) {\n case \"mysql\":\n Object.assign(options, {\n type: \"mysql\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",\n });\n break;\n case \"mariadb\":\n Object.assign(options, {\n type: \"mariadb\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",\n });\n break;\n case \"sqlite\":\n Object.assign(options, {\n type: \"sqlite\",\n \"database\": \"database.sqlite\",\n });\n break;\n case \"better-sqlite3\":\n Object.assign(options, {\n type: \"better-sqlite3\",\n \"database\": \"database.sqlite\",\n });\n break;\n case \"postgres\":\n Object.assign(options, {\n \"type\": \"postgres\",\n \"host\": \"localhost\",\n \"port\": 5432,\n \"username\": \"test\",\n \"password\": \"test\",\n \"database\": \"test\",\n });\n break;\n case \"cockroachdb\":\n Object.assign(options, {\n \"type\": \"cockroachdb\",\n \"host\": \"localhost\",\n \"port\": 26257,\n \"username\": \"root\",\n \"password\": \"\",\n \"database\": \"defaultdb\",\n });\n break;\n case \"mssql\":\n Object.assign(options, {\n \"type\": \"mssql\",\n \"host\": \"localhost\",\n \"username\": \"sa\",\n \"password\": \"Admin12345\",\n \"database\": \"tempdb\",\n });\n break;\n case \"oracle\":\n Object.assign(options, {\n \"type\": \"oracle\",\n \"host\": \"localhost\",\n \"username\": \"system\",\n \"password\": \"oracle\",\n \"port\": 1521,\n \"sid\": \"xe.oracle.docker\",\n });\n break;\n case \"mongodb\":\n Object.assign(options, {\n \"type\": \"mongodb\",\n \"database\": \"test\",\n });\n break;\n }\n Object.assign(options, {\n synchronize: true,\n logging: false,\n entities: [\n \"src/entity/**/*.ts\"\n ],\n migrations: [\n \"src/migration/**/*.ts\"\n ],\n subscribers: [\n \"src/subscriber/**/*.ts\"\n ],\n cli: {\n entitiesDir: \"src/entity\",\n migrationsDir: \"src/migration\",\n subscribersDir: \"src/subscriber\"\n }\n });\n return JSON.stringify(options, undefined, 3);\n }\n\n /**\n * Gets contents of the ormconfig file.\n */\n protected static getTsConfigTemplate(esmModule: boolean): string {\n if (esmModule)\n return JSON.stringify({\n compilerOptions: {\n lib: [\"es2021\"],\n target: \"es2021\",\n module: \"es2022\",\n moduleResolution: \"node\",\n allowSyntheticDefaultImports: true,\n outDir: \"./build\",\n emitDecoratorMetadata: true,\n experimentalDecorators: true,\n sourceMap: true\n }\n }\n , undefined, 3);\n else\n return JSON.stringify({\n compilerOptions: {\n lib: [\"es5\", \"es6\"],\n target: \"es5\",\n module: \"commonjs\",\n moduleResolution: \"node\",\n outDir: \"./build\",\n emitDecoratorMetadata: true,\n experimentalDecorators: true,\n sourceMap: true\n }\n }\n , undefined, 3);\n }\n\n /**\n * Gets contents of the .gitignore file.\n */\n protected static getGitIgnoreFile(): string {\n return `.idea/\n.vscode/\nnode_modules/\nbuild/\ntmp/\ntemp/`;\n }\n\n /**\n * Gets contents of the user entity.\n */\n protected static getUserEntityTemplate(database: string): string {\n return `import {Entity, ${ database === \"mongodb\" ? \"ObjectIdColumn, ObjectID\" : \"PrimaryGeneratedColumn\" }, Column} from \"typeorm\";\n\n@Entity()\nexport class User {\n\n ${ database === \"mongodb\" ? \"@ObjectIdColumn()\" : \"@PrimaryGeneratedColumn()\" }\n id: ${ database === \"mongodb\" ? \"ObjectID\" : \"number\" };\n\n @Column()\n firstName: string;\n\n @Column()\n lastName: string;\n\n @Column()\n age: number;\n\n}\n`;\n }\n\n /**\n * Gets contents of the route file (used when express is enabled).\n */\n protected static getRoutesTemplate(isEsm: boolean): string {\n return `import {UserController} from \"./controller/UserController${isEsm ? \".js\" : \"\"}\";\n\nexport const Routes = [{\n method: \"get\",\n route: \"/users\",\n controller: UserController,\n action: \"all\"\n}, {\n method: \"get\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"one\"\n}, {\n method: \"post\",\n route: \"/users\",\n controller: UserController,\n action: \"save\"\n}, {\n method: \"delete\",\n route: \"/users/:id\",\n controller: UserController,\n action: \"remove\"\n}];`;\n }\n\n /**\n * Gets contents of the user controller file (used when express is enabled).\n */\n protected static getControllerTemplate(isEsm: boolean): string {\n return `import {getRepository} from \"typeorm\";\nimport {NextFunction, Request, Response} from \"express\";\nimport {User} from \"../entity/User${isEsm ? \".js\" : \"\"}\";\n\nexport class UserController {\n\n private userRepository = getRepository(User);\n\n async all(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.find();\n }\n\n async one(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.findOne(request.params.id);\n }\n\n async save(request: Request, response: Response, next: NextFunction) {\n return this.userRepository.save(request.body);\n }\n\n async remove(request: Request, response: Response, next: NextFunction) {\n let userToRemove = await this.userRepository.findOne(request.params.id);\n await this.userRepository.remove(userToRemove);\n }\n\n}`;\n }\n\n /**\n * Gets contents of the main (index) application file.\n */\n protected static getAppIndexTemplate(express: boolean, isEsm: boolean): string {\n if (express) {\n return `import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport ${!isEsm ? \"* as \" : \"\"}express from \"express\";\nimport ${!isEsm ? \"* as \" : \"\"}bodyParser from \"body-parser\";\nimport {Request, Response} from \"express\";\nimport {Routes} from \"./routes${isEsm ? \".js\" : \"\"}\";\nimport {User} from \"./entity/User${isEsm ? \".js\" : \"\"}\";\n\ncreateConnection().then(async connection => {\n\n // create express app\n const app = express();\n app.use(bodyParser.json());\n\n // register express routes from defined application routes\n Routes.forEach(route => {\n (app as any)[route.method](route.route, (req: Request, res: Response, next: Function) => {\n const result = (new (route.controller as any))[route.action](req, res, next);\n if (result instanceof Promise) {\n result.then(result => result !== null && result !== undefined ? res.send(result) : undefined);\n\n } else if (result !== null && result !== undefined) {\n res.json(result);\n }\n });\n });\n\n // setup express app here\n // ...\n\n // start express server\n app.listen(3000);\n\n // insert new users for test\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Timber\",\n lastName: \"Saw\",\n age: 27\n }));\n await connection.manager.save(connection.manager.create(User, {\n firstName: \"Phantom\",\n lastName: \"Assassin\",\n age: 24\n }));\n\n console.log(\"Express server has started on port 3000. Open http://localhost:3000/users to see results\");\n\n}).catch(error => console.log(error));\n`;\n\n } else {\n return `import \"reflect-metadata\";\nimport {createConnection} from \"typeorm\";\nimport {User} from \"./entity/User${isEsm ? \".js\" : \"\"}\";\n\ncreateConnection().then(async connection => {\n\n console.log(\"Inserting a new user into the database...\");\n const user = new User();\n user.firstName = \"Timber\";\n user.lastName = \"Saw\";\n user.age = 25;\n await connection.manager.save(user);\n console.log(\"Saved a new user with id: \" + user.id);\n\n console.log(\"Loading users from the database...\");\n const users = await connection.manager.find(User);\n console.log(\"Loaded users: \", users);\n\n console.log(\"Here you can setup and run express/koa/any other framework.\");\n\n}).catch(error => console.log(error));\n`;\n }\n }\n\n /**\n * Gets contents of the new package.json file.\n */\n protected static getPackageJsonTemplate(projectName?: string, projectIsEsm?: boolean): string {\n return JSON.stringify({\n name: projectName || \"new-typeorm-project\",\n version: \"0.0.1\",\n description: \"Awesome project developed with TypeORM.\",\n type: projectIsEsm ? \"module\" : \"commonjs\",\n devDependencies: {\n },\n dependencies: {\n },\n scripts: {\n }\n }, undefined, 3);\n }\n\n /**\n * Gets contents of the new docker-compose.yml file.\n */\n protected static getDockerComposeTemplate(database: string): string {\n\n switch (database) {\n case \"mysql\":\n return `version: '3'\nservices:\n\n mysql:\n image: \"mysql:5.7.10\"\n ports:\n - \"3306:3306\"\n environment:\n MYSQL_ROOT_PASSWORD: \"admin\"\n MYSQL_USER: \"test\"\n MYSQL_PASSWORD: \"test\"\n MYSQL_DATABASE: \"test\"\n\n`;\n case \"mariadb\":\n return `version: '3'\nservices:\n\n mariadb:\n image: \"mariadb:10.1.16\"\n ports:\n - \"3306:3306\"\n environment:\n MYSQL_ROOT_PASSWORD: \"admin\"\n MYSQL_USER: \"test\"\n MYSQL_PASSWORD: \"test\"\n MYSQL_DATABASE: \"test\"\n\n`;\n case \"postgres\":\n return `version: '3'\nservices:\n\n postgres:\n image: \"postgres:9.6.1\"\n ports:\n - \"5432:5432\"\n environment:\n POSTGRES_USER: \"test\"\n POSTGRES_PASSWORD: \"test\"\n POSTGRES_DB: \"test\"\n\n`;\n case \"cockroachdb\":\n return `version: '3'\nservices:\n\n cockroachdb:\n image: \"cockroachdb/cockroach:v2.1.4\"\n command: start --insecure\n ports:\n - \"26257:26257\"\n\n`;\n case \"sqlite\":\n case \"better-sqlite3\":\n return `version: '3'\nservices:\n`;\n case \"oracle\":\n throw new TypeORMError(`You cannot initialize a project with docker for Oracle driver yet.`); // todo: implement for oracle as well\n\n case \"mssql\":\n return `version: '3'\nservices:\n\n mssql:\n image: \"microsoft/mssql-server-linux:rc2\"\n ports:\n - \"1433:1433\"\n environment:\n SA_PASSWORD: \"Admin12345\"\n ACCEPT_EULA: \"Y\"\n\n`;\n case \"mongodb\":\n return `version: '3'\nservices:\n\n mongodb:\n image: \"mongo:4.0.6\"\n container_name: \"typeorm-mongodb\"\n ports:\n - \"27017:27017\"\n\n`;\n }\n return \"\";\n }\n\n /**\n * Gets contents of the new readme.md file.\n */\n protected static getReadmeTemplate(options: { docker: boolean }): string {\n let template = `# Awesome Project Build with TypeORM\n\nSteps to run this project:\n\n1. Run \\`npm i\\` command\n`;\n\n if (options.docker) {\n template += `2. Run \\`docker-compose up\\` command\n`;\n } else {\n template += `2. Setup database settings inside \\`ormconfig.json\\` file\n`;\n }\n\n template += `3. Run \\`npm start\\` command\n`;\n return template;\n }\n\n /**\n * Appends to a given package.json template everything needed.\n */\n protected static appendPackageJson(packageJsonContents: string, database: string, express: boolean, projectIsEsm: boolean /*, docker: boolean*/): string {\n const packageJson = JSON.parse(packageJsonContents);\n\n if (!packageJson.devDependencies) packageJson.devDependencies = {};\n Object.assign(packageJson.devDependencies, {\n \"ts-node\": \"10.4.0\",\n \"@types/node\": \"^16.11.10\",\n \"typescript\": \"4.5.2\"\n });\n\n if (!packageJson.dependencies) packageJson.dependencies = {};\n Object.assign(packageJson.dependencies, {\n \"typeorm\": require(\"../package.json\").version,\n \"reflect-metadata\": \"^0.1.13\"\n });\n\n switch (database) {\n case \"mysql\":\n case \"mariadb\":\n packageJson.dependencies[\"mysql\"] = \"^2.14.1\";\n break;\n case \"postgres\":\n case \"cockroachdb\":\n packageJson.dependencies[\"pg\"] = \"^8.4.0\";\n break;\n case \"sqlite\":\n packageJson.dependencies[\"sqlite3\"] = \"^4.0.3\";\n break;\n case \"better-sqlite3\":\n packageJson.dependencies[\"better-sqlite3\"] = \"^7.0.0\";\n break;\n case \"oracle\":\n packageJson.dependencies[\"oracledb\"] = \"^1.13.1\";\n break;\n case \"mssql\":\n packageJson.dependencies[\"mssql\"] = \"^4.0.4\";\n break;\n case \"mongodb\":\n packageJson.dependencies[\"mongodb\"] = \"^3.0.8\";\n break;\n }\n\n if (express) {\n packageJson.dependencies[\"express\"] = \"^4.17.2\";\n packageJson.dependencies[\"body-parser\"] = \"^1.19.1\";\n }\n\n if (!packageJson.scripts) packageJson.scripts = {};\n\n if (projectIsEsm)\n Object.assign(packageJson.scripts, {\n start: /*(docker ? \"docker-compose up && \" : \"\") + */\"node --loader ts-node/esm src/index.ts\",\n typeorm: \"node --loader ts-node/esm ./node_modules/typeorm/cli.js\"\n });\n else\n Object.assign(packageJson.scripts, {\n start: /*(docker ? \"docker-compose up && \" : \"\") + */\"ts-node src/index.ts\",\n typeorm: \"node --require ts-node/register ./node_modules/typeorm/cli.js\"\n });\n\n return JSON.stringify(packageJson, undefined, 3);\n }\n\n}\n"],"sourceRoot":".."}
@@ -16,6 +16,8 @@ export declare class MigrationCreateCommand implements yargs.CommandModule {
16
16
  f: string;
17
17
  } & {
18
18
  o: boolean;
19
+ } & {
20
+ t: boolean;
19
21
  }>;
20
22
  handler(args: yargs.Arguments): Promise<void>;
21
23
  /**
@@ -6,6 +6,7 @@ var ConnectionOptionsReader_1 = require("../connection/ConnectionOptionsReader")
6
6
  var CommandUtils_1 = require("./CommandUtils");
7
7
  var StringUtils_1 = require("../util/StringUtils");
8
8
  var chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
9
+ var PlatformTools_1 = require("../platform/PlatformTools");
9
10
  /**
10
11
  * Creates a new migration file.
11
12
  */
@@ -41,6 +42,12 @@ var MigrationCreateCommand = /** @class */ (function () {
41
42
  type: "boolean",
42
43
  default: false,
43
44
  describe: "Generate a migration file on Javascript instead of Typescript",
45
+ })
46
+ .option("t", {
47
+ alias: "timestamp",
48
+ type: "number",
49
+ default: false,
50
+ describe: "Custom timestamp for the migration name",
44
51
  });
45
52
  };
46
53
  MigrationCreateCommand.prototype.handler = function (args) {
@@ -55,7 +62,7 @@ var MigrationCreateCommand = /** @class */ (function () {
55
62
  _a.label = 1;
56
63
  case 1:
57
64
  _a.trys.push([1, 7, , 8]);
58
- timestamp = new Date().getTime();
65
+ timestamp = CommandUtils_1.CommandUtils.getTimestamp(args.timestamp);
59
66
  fileContent = args.outputJs ?
60
67
  MigrationCreateCommand.getJavascriptTemplate(args.name, timestamp)
61
68
  : MigrationCreateCommand.getTemplate(args.name, timestamp);
@@ -90,8 +97,7 @@ var MigrationCreateCommand = /** @class */ (function () {
90
97
  return [3 /*break*/, 8];
91
98
  case 7:
92
99
  err_2 = _a.sent();
93
- console.log(chalk_1.default.black.bgRed("Error during migration creation:"));
94
- console.error(err_2);
100
+ PlatformTools_1.PlatformTools.logCmdErr("Error during migration creation:", err_2);
95
101
  process.exit(1);
96
102
  return [3 /*break*/, 8];
97
103
  case 8: return [2 /*return*/];