typeorm 0.3.21-dev.d106eed → 0.3.21-dev.d52ecf6

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 (354) hide show
  1. package/README.md +10 -20
  2. package/browser/cache/QueryResultCache.d.ts +4 -2
  3. package/browser/cache/QueryResultCache.js.map +1 -1
  4. package/browser/connection/ConnectionOptionsReader.d.ts +4 -4
  5. package/browser/data-source/DataSource.d.ts +2 -0
  6. package/browser/data-source/DataSource.js +2 -0
  7. package/browser/data-source/DataSource.js.map +1 -1
  8. package/browser/decorator/relations/OneToOne.d.ts +4 -4
  9. package/browser/decorator/relations/OneToOne.js +2 -2
  10. package/browser/decorator/relations/OneToOne.js.map +1 -1
  11. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -1
  12. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  13. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +0 -1
  14. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  15. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  16. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +4 -0
  17. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  18. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -2
  19. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  20. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +1 -1
  21. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  22. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +0 -1
  23. package/browser/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  24. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  25. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +1 -2
  26. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  27. package/browser/driver/mongodb/MongoQueryRunner.d.ts +0 -1
  28. package/browser/driver/mongodb/typings.d.ts +0 -8
  29. package/browser/driver/mongodb/typings.js +0 -1
  30. package/browser/driver/mongodb/typings.js.map +1 -1
  31. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -1
  32. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  33. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +1 -1
  34. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  35. package/browser/driver/mysql/MysqlQueryRunner.d.ts +0 -1
  36. package/browser/driver/oracle/OracleConnectionCredentialsOptions.d.ts +1 -1
  37. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  38. package/browser/driver/oracle/OracleConnectionOptions.d.ts +1 -1
  39. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  40. package/browser/driver/oracle/OracleQueryRunner.d.ts +0 -1
  41. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -2
  42. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  43. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +1 -1
  44. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  45. package/browser/driver/postgres/PostgresQueryRunner.d.ts +0 -1
  46. package/browser/driver/postgres/PostgresQueryRunner.js +5 -1
  47. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  48. package/browser/driver/sap/SapQueryRunner.d.ts +0 -1
  49. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +1 -1
  50. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  51. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +1 -1
  52. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  53. package/browser/driver/spanner/SpannerQueryRunner.d.ts +0 -1
  54. package/browser/driver/sqlite/SqliteDriver.js +2 -2
  55. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  56. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +0 -1
  57. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +1 -1
  58. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  59. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +1 -1
  60. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  61. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +0 -1
  62. package/browser/entity-manager/EntityManager.d.ts +2 -0
  63. package/browser/entity-manager/EntityManager.js +4 -2
  64. package/browser/entity-manager/EntityManager.js.map +1 -1
  65. package/browser/find-options/FindOptionsOrder.d.ts +0 -1
  66. package/browser/find-options/FindOptionsRelations.d.ts +0 -1
  67. package/browser/find-options/FindOptionsSelect.d.ts +0 -1
  68. package/browser/find-options/FindOptionsWhere.d.ts +0 -1
  69. package/browser/persistence/SubjectExecutor.js +3 -3
  70. package/browser/persistence/SubjectExecutor.js.map +1 -1
  71. package/browser/persistence/{SubjectTopoligicalSorter.d.ts → SubjectTopologicalSorter.d.ts} +1 -1
  72. package/browser/persistence/{SubjectTopoligicalSorter.js → SubjectTopologicalSorter.js} +2 -2
  73. package/browser/persistence/{SubjectTopoligicalSorter.js.map → SubjectTopologicalSorter.js.map} +1 -1
  74. package/browser/platform/BrowserPlatformTools.d.ts +2 -6
  75. package/browser/platform/BrowserPlatformTools.js +2 -8
  76. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  77. package/browser/platform/PlatformTools.d.ts +2 -10
  78. package/browser/platform/PlatformTools.js +28 -36
  79. package/browser/platform/PlatformTools.js.map +1 -1
  80. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  81. package/browser/query-builder/QueryBuilder.js +2 -3
  82. package/browser/query-builder/QueryBuilder.js.map +1 -1
  83. package/browser/query-builder/SelectQueryBuilder.d.ts +0 -1
  84. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  85. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +95 -61
  86. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  87. package/browser/query-runner/QueryRunner.d.ts +0 -1
  88. package/browser/repository/Repository.d.ts +2 -0
  89. package/browser/repository/Repository.js +2 -0
  90. package/browser/repository/Repository.js.map +1 -1
  91. package/browser/schema-builder/RdbmsSchemaBuilder.js +1 -1
  92. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  93. package/browser/util/ImportUtils.js +22 -34
  94. package/browser/util/ImportUtils.js.map +1 -1
  95. package/cache/QueryResultCache.d.ts +4 -2
  96. package/cache/QueryResultCache.js.map +1 -1
  97. package/commands/CacheClearCommand.d.ts +1 -1
  98. package/commands/CacheClearCommand.js +3 -3
  99. package/commands/CacheClearCommand.js.map +1 -1
  100. package/commands/CommandUtils.d.ts +1 -1
  101. package/commands/CommandUtils.js +18 -16
  102. package/commands/CommandUtils.js.map +1 -1
  103. package/commands/EntityCreateCommand.d.ts +1 -1
  104. package/commands/EntityCreateCommand.js +7 -7
  105. package/commands/EntityCreateCommand.js.map +1 -1
  106. package/commands/InitCommand.d.ts +1 -1
  107. package/commands/InitCommand.js +9 -9
  108. package/commands/InitCommand.js.map +1 -1
  109. package/commands/MigrationCreateCommand.d.ts +1 -1
  110. package/commands/MigrationCreateCommand.js +5 -5
  111. package/commands/MigrationCreateCommand.js.map +1 -1
  112. package/commands/MigrationGenerateCommand.d.ts +1 -1
  113. package/commands/MigrationGenerateCommand.js +17 -17
  114. package/commands/MigrationGenerateCommand.js.map +1 -1
  115. package/commands/QueryCommand.d.ts +1 -1
  116. package/commands/QueryCommand.js +10 -7
  117. package/commands/QueryCommand.js.map +1 -1
  118. package/commands/SchemaDropCommand.d.ts +1 -1
  119. package/commands/SchemaDropCommand.js +3 -3
  120. package/commands/SchemaDropCommand.js.map +1 -1
  121. package/commands/SchemaLogCommand.d.ts +1 -1
  122. package/commands/SchemaLogCommand.js +12 -18
  123. package/commands/SchemaLogCommand.js.map +1 -1
  124. package/commands/SchemaSyncCommand.d.ts +1 -1
  125. package/commands/SchemaSyncCommand.js +3 -3
  126. package/commands/SchemaSyncCommand.js.map +1 -1
  127. package/commands/SubscriberCreateCommand.d.ts +1 -1
  128. package/commands/SubscriberCreateCommand.js +5 -5
  129. package/commands/SubscriberCreateCommand.js.map +1 -1
  130. package/connection/ConnectionOptionsReader.d.ts +4 -4
  131. package/container.js +2 -3
  132. package/container.js.map +1 -1
  133. package/data-source/DataSource.d.ts +2 -0
  134. package/data-source/DataSource.js +2 -0
  135. package/data-source/DataSource.js.map +1 -1
  136. package/decorator/Check.js +1 -2
  137. package/decorator/Check.js.map +1 -1
  138. package/decorator/EntityRepository.js +1 -2
  139. package/decorator/EntityRepository.js.map +1 -1
  140. package/decorator/Exclusion.js +1 -2
  141. package/decorator/Exclusion.js.map +1 -1
  142. package/decorator/Generated.js +1 -2
  143. package/decorator/Generated.js.map +1 -1
  144. package/decorator/Index.js +1 -2
  145. package/decorator/Index.js.map +1 -1
  146. package/decorator/Unique.js +1 -2
  147. package/decorator/Unique.js.map +1 -1
  148. package/decorator/columns/Column.js +1 -2
  149. package/decorator/columns/Column.js.map +1 -1
  150. package/decorator/columns/CreateDateColumn.js +1 -2
  151. package/decorator/columns/CreateDateColumn.js.map +1 -1
  152. package/decorator/columns/DeleteDateColumn.js +1 -2
  153. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  154. package/decorator/columns/ObjectIdColumn.js +1 -2
  155. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  156. package/decorator/columns/PrimaryColumn.js +1 -2
  157. package/decorator/columns/PrimaryColumn.js.map +1 -1
  158. package/decorator/columns/PrimaryGeneratedColumn.js +1 -2
  159. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  160. package/decorator/columns/UpdateDateColumn.js +1 -2
  161. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  162. package/decorator/columns/VersionColumn.js +1 -2
  163. package/decorator/columns/VersionColumn.js.map +1 -1
  164. package/decorator/columns/ViewColumn.js +1 -2
  165. package/decorator/columns/ViewColumn.js.map +1 -1
  166. package/decorator/columns/VirtualColumn.js +1 -2
  167. package/decorator/columns/VirtualColumn.js.map +1 -1
  168. package/decorator/entity/ChildEntity.js +1 -2
  169. package/decorator/entity/ChildEntity.js.map +1 -1
  170. package/decorator/entity/Entity.js +1 -2
  171. package/decorator/entity/Entity.js.map +1 -1
  172. package/decorator/entity/TableInheritance.js +1 -2
  173. package/decorator/entity/TableInheritance.js.map +1 -1
  174. package/decorator/entity-view/ViewEntity.js +1 -2
  175. package/decorator/entity-view/ViewEntity.js.map +1 -1
  176. package/decorator/listeners/AfterInsert.js +1 -2
  177. package/decorator/listeners/AfterInsert.js.map +1 -1
  178. package/decorator/listeners/AfterLoad.js +1 -2
  179. package/decorator/listeners/AfterLoad.js.map +1 -1
  180. package/decorator/listeners/AfterRecover.js +1 -2
  181. package/decorator/listeners/AfterRecover.js.map +1 -1
  182. package/decorator/listeners/AfterRemove.js +1 -2
  183. package/decorator/listeners/AfterRemove.js.map +1 -1
  184. package/decorator/listeners/AfterSoftRemove.js +1 -2
  185. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  186. package/decorator/listeners/AfterUpdate.js +1 -2
  187. package/decorator/listeners/AfterUpdate.js.map +1 -1
  188. package/decorator/listeners/BeforeInsert.js +1 -2
  189. package/decorator/listeners/BeforeInsert.js.map +1 -1
  190. package/decorator/listeners/BeforeRecover.js +1 -2
  191. package/decorator/listeners/BeforeRecover.js.map +1 -1
  192. package/decorator/listeners/BeforeRemove.js +1 -2
  193. package/decorator/listeners/BeforeRemove.js.map +1 -1
  194. package/decorator/listeners/BeforeSoftRemove.js +1 -2
  195. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  196. package/decorator/listeners/BeforeUpdate.js +1 -2
  197. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  198. package/decorator/listeners/EventSubscriber.js +1 -2
  199. package/decorator/listeners/EventSubscriber.js.map +1 -1
  200. package/decorator/relations/JoinColumn.js +1 -2
  201. package/decorator/relations/JoinColumn.js.map +1 -1
  202. package/decorator/relations/JoinTable.js +1 -2
  203. package/decorator/relations/JoinTable.js.map +1 -1
  204. package/decorator/relations/ManyToMany.js +1 -2
  205. package/decorator/relations/ManyToMany.js.map +1 -1
  206. package/decorator/relations/ManyToOne.js +1 -2
  207. package/decorator/relations/ManyToOne.js.map +1 -1
  208. package/decorator/relations/OneToMany.js +1 -2
  209. package/decorator/relations/OneToMany.js.map +1 -1
  210. package/decorator/relations/OneToOne.d.ts +4 -4
  211. package/decorator/relations/OneToOne.js +3 -4
  212. package/decorator/relations/OneToOne.js.map +1 -1
  213. package/decorator/relations/RelationCount.js +1 -2
  214. package/decorator/relations/RelationCount.js.map +1 -1
  215. package/decorator/relations/RelationId.js +1 -2
  216. package/decorator/relations/RelationId.js.map +1 -1
  217. package/decorator/tree/Tree.js +1 -2
  218. package/decorator/tree/Tree.js.map +1 -1
  219. package/decorator/tree/TreeChildren.js +1 -2
  220. package/decorator/tree/TreeChildren.js.map +1 -1
  221. package/decorator/tree/TreeLevelColumn.js +1 -2
  222. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  223. package/decorator/tree/TreeParent.js +1 -2
  224. package/decorator/tree/TreeParent.js.map +1 -1
  225. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -1
  226. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  227. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +0 -1
  228. package/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  229. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  230. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +4 -0
  231. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  232. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -2
  233. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  234. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +1 -1
  235. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  236. package/driver/cockroachdb/CockroachQueryRunner.d.ts +0 -1
  237. package/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  238. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  239. package/driver/mongodb/MongoConnectionOptions.d.ts +1 -2
  240. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  241. package/driver/mongodb/MongoQueryRunner.d.ts +0 -1
  242. package/driver/mongodb/typings.d.ts +0 -8
  243. package/driver/mongodb/typings.js +0 -1
  244. package/driver/mongodb/typings.js.map +1 -1
  245. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -1
  246. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  247. package/driver/mysql/MysqlConnectionOptions.d.ts +1 -1
  248. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  249. package/driver/mysql/MysqlQueryRunner.d.ts +0 -1
  250. package/driver/oracle/OracleConnectionCredentialsOptions.d.ts +1 -1
  251. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  252. package/driver/oracle/OracleConnectionOptions.d.ts +1 -1
  253. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  254. package/driver/oracle/OracleQueryRunner.d.ts +0 -1
  255. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -2
  256. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  257. package/driver/postgres/PostgresConnectionOptions.d.ts +1 -1
  258. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  259. package/driver/postgres/PostgresQueryRunner.d.ts +0 -1
  260. package/driver/postgres/PostgresQueryRunner.js +5 -1
  261. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  262. package/driver/sap/SapQueryRunner.d.ts +0 -1
  263. package/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +1 -1
  264. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  265. package/driver/spanner/SpannerConnectionOptions.d.ts +1 -1
  266. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  267. package/driver/spanner/SpannerQueryRunner.d.ts +0 -1
  268. package/driver/sqlite/SqliteDriver.js +2 -2
  269. package/driver/sqlite/SqliteDriver.js.map +1 -1
  270. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +0 -1
  271. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +1 -1
  272. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  273. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +1 -1
  274. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  275. package/driver/sqlserver/SqlServerQueryRunner.d.ts +0 -1
  276. package/entity-manager/EntityManager.d.ts +2 -0
  277. package/entity-manager/EntityManager.js +4 -2
  278. package/entity-manager/EntityManager.js.map +1 -1
  279. package/find-options/FindOptionsOrder.d.ts +0 -1
  280. package/find-options/FindOptionsRelations.d.ts +0 -1
  281. package/find-options/FindOptionsSelect.d.ts +0 -1
  282. package/find-options/FindOptionsWhere.d.ts +0 -1
  283. package/find-options/operator/And.js +1 -2
  284. package/find-options/operator/And.js.map +1 -1
  285. package/find-options/operator/Any.js +1 -2
  286. package/find-options/operator/Any.js.map +1 -1
  287. package/find-options/operator/ArrayContainedBy.js +1 -2
  288. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  289. package/find-options/operator/ArrayContains.js +1 -2
  290. package/find-options/operator/ArrayContains.js.map +1 -1
  291. package/find-options/operator/ArrayOverlap.js +1 -2
  292. package/find-options/operator/ArrayOverlap.js.map +1 -1
  293. package/find-options/operator/Between.js +1 -2
  294. package/find-options/operator/Between.js.map +1 -1
  295. package/find-options/operator/Equal.js +1 -2
  296. package/find-options/operator/Equal.js.map +1 -1
  297. package/find-options/operator/ILike.js +1 -2
  298. package/find-options/operator/ILike.js.map +1 -1
  299. package/find-options/operator/In.js +1 -2
  300. package/find-options/operator/In.js.map +1 -1
  301. package/find-options/operator/IsNull.js +1 -2
  302. package/find-options/operator/IsNull.js.map +1 -1
  303. package/find-options/operator/JsonContains.js +1 -2
  304. package/find-options/operator/JsonContains.js.map +1 -1
  305. package/find-options/operator/LessThan.js +1 -2
  306. package/find-options/operator/LessThan.js.map +1 -1
  307. package/find-options/operator/LessThanOrEqual.js +1 -2
  308. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  309. package/find-options/operator/Like.js +1 -2
  310. package/find-options/operator/Like.js.map +1 -1
  311. package/find-options/operator/MoreThan.js +1 -2
  312. package/find-options/operator/MoreThan.js.map +1 -1
  313. package/find-options/operator/MoreThanOrEqual.js +1 -2
  314. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  315. package/find-options/operator/Not.js +1 -2
  316. package/find-options/operator/Not.js.map +1 -1
  317. package/find-options/operator/Or.js +1 -2
  318. package/find-options/operator/Or.js.map +1 -1
  319. package/find-options/operator/Raw.js +1 -2
  320. package/find-options/operator/Raw.js.map +1 -1
  321. package/globals.js +14 -15
  322. package/globals.js.map +1 -1
  323. package/package.json +1 -1
  324. package/persistence/SubjectExecutor.js +3 -3
  325. package/persistence/SubjectExecutor.js.map +1 -1
  326. package/persistence/{SubjectTopoligicalSorter.d.ts → SubjectTopologicalSorter.d.ts} +1 -1
  327. package/persistence/{SubjectTopoligicalSorter.js → SubjectTopologicalSorter.js} +4 -4
  328. package/persistence/{SubjectTopoligicalSorter.js.map → SubjectTopologicalSorter.js.map} +1 -1
  329. package/platform/PlatformTools.d.ts +2 -10
  330. package/platform/PlatformTools.js +37 -45
  331. package/platform/PlatformTools.js.map +1 -1
  332. package/query-builder/InsertQueryBuilder.js.map +1 -1
  333. package/query-builder/QueryBuilder.js +2 -3
  334. package/query-builder/QueryBuilder.js.map +1 -1
  335. package/query-builder/SelectQueryBuilder.d.ts +0 -1
  336. package/query-builder/index.js +1 -2
  337. package/query-builder/index.js.map +1 -1
  338. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  339. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +95 -61
  340. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  341. package/query-runner/QueryRunner.d.ts +0 -1
  342. package/repository/Repository.d.ts +2 -0
  343. package/repository/Repository.js +2 -0
  344. package/repository/Repository.js.map +1 -1
  345. package/schema-builder/RdbmsSchemaBuilder.js +1 -1
  346. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  347. package/util/DirectoryExportedClassesLoader.js +2 -3
  348. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  349. package/util/ImportUtils.js +23 -36
  350. package/util/ImportUtils.js.map +1 -1
  351. package/util/PathUtils.js +3 -4
  352. package/util/PathUtils.js.map +1 -1
  353. package/util/StringUtils.js +6 -7
  354. package/util/StringUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/CacheClearCommand.ts"],"names":[],"mappings":";;;;AAEA,0DAAyB;AACzB,6DAAyD;AACzD,wDAAuB;AACvB,8DAA6B;AAC7B,iDAA6C;AAE7C;;GAEG;AACH,MAAa,iBAAiB;IAA9B;QACI,YAAO,GAAG,aAAa,CAAA;QACvB,aAAQ,GAAG,+CAA+C,CAAA;IA8C9D,CAAC;IA5CG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC7B,KAAK,EAAE,GAAG;YACV,QAAQ,EACJ,6DAA6D;YACjE,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,UAAU,GAA2B,SAAS,CAAA;QAClD,IAAI,CAAC;YACD,UAAU,GAAG,MAAM,2BAAY,CAAC,cAAc,CAC1C,cAAI,CAAC,OAAO,CAAC,iBAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAoB,CAAC,CACzD,CAAA;YACD,UAAU,CAAC,UAAU,CAAC;gBAClB,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,KAAK;gBACpB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC,CAAA;YACF,MAAM,UAAU,CAAC,UAAU,EAAE,CAAA;YAE7B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,6BAAa,CAAC,SAAS,CACnB,2EAA2E,CAC9E,CAAA;gBACD,OAAM;YACV,CAAC;YAED,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;YACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAA;YAE1D,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,6BAAa,CAAC,SAAS,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAEzD,IAAI,UAAU,IAAI,UAAU,CAAC,aAAa;gBACtC,MAAO,UAAyB,CAAC,OAAO,EAAE,CAAA;YAE9C,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;CACJ;AAhDD,8CAgDC","file":"CacheClearCommand.js","sourcesContent":["import { DataSource } from \"../data-source/DataSource\"\nimport * as yargs from \"yargs\"\nimport chalk from \"chalk\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport path from \"path\"\nimport process from \"process\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Clear cache command.\n */\nexport class CacheClearCommand implements yargs.CommandModule {\n command = \"cache:clear\"\n describe = \"Clears all data stored in query runner cache.\"\n\n builder(args: yargs.Argv) {\n return args.option(\"dataSource\", {\n alias: \"d\",\n describe:\n \"Path to the file where your DataSource instance is defined.\",\n demandOption: true,\n })\n }\n\n async handler(args: yargs.Arguments) {\n let dataSource: DataSource | undefined = undefined\n try {\n dataSource = await CommandUtils.loadDataSource(\n path.resolve(process.cwd(), args.dataSource as string),\n )\n dataSource.setOptions({\n subscribers: [],\n synchronize: false,\n migrationsRun: false,\n dropSchema: false,\n logging: [\"schema\"],\n })\n await dataSource.initialize()\n\n if (!dataSource.queryResultCache) {\n PlatformTools.logCmdErr(\n \"Cache is not enabled. To use cache enable it in connection configuration.\",\n )\n return\n }\n\n await dataSource.queryResultCache.clear()\n console.log(chalk.green(\"Cache was successfully cleared\"))\n\n await dataSource.destroy()\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during cache clear.\", err)\n\n if (dataSource && dataSource.isInitialized)\n await (dataSource as DataSource).destroy()\n\n process.exit(1)\n }\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/CacheClearCommand.ts"],"names":[],"mappings":";;;;AAAA,0DAAwB;AACxB,wDAAuB;AACvB,8DAA6B;AAG7B,6DAAyD;AACzD,iDAA6C;AAE7C;;GAEG;AACH,MAAa,iBAAiB;IAA9B;QACI,YAAO,GAAG,aAAa,CAAA;QACvB,aAAQ,GAAG,+CAA+C,CAAA;IA8C9D,CAAC;IA5CG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC7B,KAAK,EAAE,GAAG;YACV,QAAQ,EACJ,6DAA6D;YACjE,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,UAAU,GAA2B,SAAS,CAAA;QAClD,IAAI,CAAC;YACD,UAAU,GAAG,MAAM,2BAAY,CAAC,cAAc,CAC1C,cAAI,CAAC,OAAO,CAAC,iBAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAoB,CAAC,CACzD,CAAA;YACD,UAAU,CAAC,UAAU,CAAC;gBAClB,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,KAAK;gBACpB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC,CAAA;YACF,MAAM,UAAU,CAAC,UAAU,EAAE,CAAA;YAE7B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,6BAAa,CAAC,SAAS,CACnB,2EAA2E,CAC9E,CAAA;gBACD,OAAM;YACV,CAAC;YAED,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;YACzC,OAAO,CAAC,GAAG,CAAC,eAAI,CAAC,KAAK,CAAA,gCAAgC,CAAC,CAAA;YAEvD,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,6BAAa,CAAC,SAAS,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAEzD,IAAI,UAAU,IAAI,UAAU,CAAC,aAAa;gBACtC,MAAO,UAAyB,CAAC,OAAO,EAAE,CAAA;YAE9C,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;CACJ;AAhDD,8CAgDC","file":"CacheClearCommand.js","sourcesContent":["import ansi from \"ansis\"\nimport path from \"path\"\nimport process from \"process\"\nimport yargs from \"yargs\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Clear cache command.\n */\nexport class CacheClearCommand implements yargs.CommandModule {\n command = \"cache:clear\"\n describe = \"Clears all data stored in query runner cache.\"\n\n builder(args: yargs.Argv) {\n return args.option(\"dataSource\", {\n alias: \"d\",\n describe:\n \"Path to the file where your DataSource instance is defined.\",\n demandOption: true,\n })\n }\n\n async handler(args: yargs.Arguments) {\n let dataSource: DataSource | undefined = undefined\n try {\n dataSource = await CommandUtils.loadDataSource(\n path.resolve(process.cwd(), args.dataSource as string),\n )\n dataSource.setOptions({\n subscribers: [],\n synchronize: false,\n migrationsRun: false,\n dropSchema: false,\n logging: [\"schema\"],\n })\n await dataSource.initialize()\n\n if (!dataSource.queryResultCache) {\n PlatformTools.logCmdErr(\n \"Cache is not enabled. To use cache enable it in connection configuration.\",\n )\n return\n }\n\n await dataSource.queryResultCache.clear()\n console.log(ansi.green`Cache was successfully cleared`)\n\n await dataSource.destroy()\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during cache clear.\", err)\n\n if (dataSource && dataSource.isInitialized)\n await (dataSource as DataSource).destroy()\n\n process.exit(1)\n }\n }\n}\n"],"sourceRoot":".."}
@@ -7,7 +7,7 @@ export declare class CommandUtils {
7
7
  /**
8
8
  * Creates directories recursively.
9
9
  */
10
- static createDirectories(directory: string): Promise<string | void | undefined>;
10
+ static createDirectories(directory: string): Promise<void>;
11
11
  /**
12
12
  * Creates a file with the given content in the given path.
13
13
  */
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CommandUtils = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const fs = tslib_1.__importStar(require("fs"));
6
- const path = tslib_1.__importStar(require("path"));
7
- const mkdirp_1 = tslib_1.__importDefault(require("mkdirp"));
5
+ const promises_1 = tslib_1.__importDefault(require("fs/promises"));
6
+ const path_1 = tslib_1.__importDefault(require("path"));
8
7
  const error_1 = require("../error");
9
8
  const InstanceChecker_1 = require("../util/InstanceChecker");
10
9
  const ImportUtils_1 = require("../util/ImportUtils");
@@ -15,7 +14,6 @@ class CommandUtils {
15
14
  static async loadDataSource(dataSourceFilePath) {
16
15
  let dataSourceFileExports;
17
16
  try {
18
- ;
19
17
  [dataSourceFileExports] = await (0, ImportUtils_1.importOrRequireFile)(dataSourceFilePath);
20
18
  }
21
19
  catch (err) {
@@ -51,30 +49,34 @@ class CommandUtils {
51
49
  /**
52
50
  * Creates directories recursively.
53
51
  */
54
- static createDirectories(directory) {
55
- return (0, mkdirp_1.default)(directory);
52
+ static async createDirectories(directory) {
53
+ await promises_1.default.mkdir(directory, { recursive: true });
56
54
  }
57
55
  /**
58
56
  * Creates a file with the given content in the given path.
59
57
  */
60
58
  static async createFile(filePath, content, override = true) {
61
- await CommandUtils.createDirectories(path.dirname(filePath));
62
- return new Promise((ok, fail) => {
63
- if (override === false && fs.existsSync(filePath))
64
- return ok();
65
- fs.writeFile(filePath, content, (err) => (err ? fail(err) : ok()));
66
- });
59
+ await CommandUtils.createDirectories(path_1.default.dirname(filePath));
60
+ if (override === false && (await CommandUtils.fileExists(filePath))) {
61
+ return;
62
+ }
63
+ await promises_1.default.writeFile(filePath, content);
67
64
  }
68
65
  /**
69
66
  * Reads everything from a given file and returns its content as a string.
70
67
  */
71
68
  static async readFile(filePath) {
72
- return new Promise((ok, fail) => {
73
- fs.readFile(filePath, (err, data) => err ? fail(err) : ok(data.toString()));
74
- });
69
+ const file = await promises_1.default.readFile(filePath);
70
+ return file.toString();
75
71
  }
76
72
  static async fileExists(filePath) {
77
- return fs.existsSync(filePath);
73
+ try {
74
+ await promises_1.default.access(filePath, promises_1.default.constants.F_OK);
75
+ return true;
76
+ }
77
+ catch {
78
+ return false;
79
+ }
78
80
  }
79
81
  /**
80
82
  * Gets migration timestamp and validates argument (if sent)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/CommandUtils.ts"],"names":[],"mappings":"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","file":"CommandUtils.js","sourcesContent":["import * as fs from \"fs\"\nimport * as path from \"path\"\nimport mkdirp from \"mkdirp\"\nimport { TypeORMError } from \"../error\"\nimport { DataSource } from \"../data-source\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\nimport { importOrRequireFile } from \"../util/ImportUtils\"\n\n/**\n * Command line utils functions.\n */\nexport class CommandUtils {\n static async loadDataSource(\n dataSourceFilePath: string,\n ): Promise<DataSource> {\n let dataSourceFileExports\n try {\n ;[dataSourceFileExports] = await importOrRequireFile(\n dataSourceFilePath,\n )\n } catch (err) {\n throw new Error(\n `Unable to open file: \"${dataSourceFilePath}\". ${err.message}`,\n )\n }\n\n if (\n !dataSourceFileExports ||\n typeof dataSourceFileExports !== \"object\"\n ) {\n throw new Error(\n `Given data source file must contain export of a DataSource instance`,\n )\n }\n\n if (InstanceChecker.isDataSource(dataSourceFileExports)) {\n return dataSourceFileExports\n }\n\n const dataSourceExports = []\n for (const fileExportKey in dataSourceFileExports) {\n const fileExport = dataSourceFileExports[fileExportKey]\n // It is necessary to await here in case of the exported async value (Promise<DataSource>).\n // e.g. the DataSource is instantiated with an async factory in the source file\n // It is safe to await regardless of the export being async or not due to `awaits` definition:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#return_value\n const awaitedFileExport = await fileExport\n if (InstanceChecker.isDataSource(awaitedFileExport)) {\n dataSourceExports.push(awaitedFileExport)\n }\n }\n\n if (dataSourceExports.length === 0) {\n throw new Error(\n `Given data source file must contain export of a DataSource instance`,\n )\n }\n if (dataSourceExports.length > 1) {\n throw new Error(\n `Given data source file must contain only one export of DataSource instance`,\n )\n }\n return dataSourceExports[0]\n }\n\n /**\n * Creates directories recursively.\n */\n static createDirectories(directory: string) {\n return mkdirp(directory)\n }\n\n /**\n * Creates a file with the given content in the given path.\n */\n static async createFile(\n filePath: string,\n content: string,\n override: boolean = true,\n ): Promise<void> {\n await CommandUtils.createDirectories(path.dirname(filePath))\n return new Promise<void>((ok, fail) => {\n if (override === false && fs.existsSync(filePath)) return ok()\n\n fs.writeFile(filePath, content, (err) => (err ? fail(err) : ok()))\n })\n }\n\n /**\n * Reads everything from a given file and returns its content as a string.\n */\n static async readFile(filePath: string): Promise<string> {\n return new Promise<string>((ok, fail) => {\n fs.readFile(filePath, (err, data) =>\n err ? fail(err) : ok(data.toString()),\n )\n })\n }\n\n static async fileExists(filePath: string) {\n return fs.existsSync(filePath)\n }\n\n /**\n * Gets migration timestamp and validates argument (if sent)\n */\n static getTimestamp(timestampOptionArgument: any): number {\n if (\n timestampOptionArgument &&\n (isNaN(timestampOptionArgument) || timestampOptionArgument < 0)\n ) {\n throw new TypeORMError(\n `timestamp option should be a non-negative number. received: ${timestampOptionArgument}`,\n )\n }\n return timestampOptionArgument\n ? new Date(Number(timestampOptionArgument)).getTime()\n : Date.now()\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/CommandUtils.ts"],"names":[],"mappings":"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","file":"CommandUtils.js","sourcesContent":["import fs from \"fs/promises\"\nimport path from \"path\"\nimport { TypeORMError } from \"../error\"\nimport { DataSource } from \"../data-source\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\nimport { importOrRequireFile } from \"../util/ImportUtils\"\n\n/**\n * Command line utils functions.\n */\nexport class CommandUtils {\n static async loadDataSource(\n dataSourceFilePath: string,\n ): Promise<DataSource> {\n let dataSourceFileExports\n try {\n [dataSourceFileExports] = await importOrRequireFile(\n dataSourceFilePath,\n )\n } catch (err) {\n throw new Error(\n `Unable to open file: \"${dataSourceFilePath}\". ${err.message}`,\n )\n }\n\n if (\n !dataSourceFileExports ||\n typeof dataSourceFileExports !== \"object\"\n ) {\n throw new Error(\n `Given data source file must contain export of a DataSource instance`,\n )\n }\n\n if (InstanceChecker.isDataSource(dataSourceFileExports)) {\n return dataSourceFileExports\n }\n\n const dataSourceExports = []\n for (const fileExportKey in dataSourceFileExports) {\n const fileExport = dataSourceFileExports[fileExportKey]\n // It is necessary to await here in case of the exported async value (Promise<DataSource>).\n // e.g. the DataSource is instantiated with an async factory in the source file\n // It is safe to await regardless of the export being async or not due to `awaits` definition:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#return_value\n const awaitedFileExport = await fileExport\n if (InstanceChecker.isDataSource(awaitedFileExport)) {\n dataSourceExports.push(awaitedFileExport)\n }\n }\n\n if (dataSourceExports.length === 0) {\n throw new Error(\n `Given data source file must contain export of a DataSource instance`,\n )\n }\n if (dataSourceExports.length > 1) {\n throw new Error(\n `Given data source file must contain only one export of DataSource instance`,\n )\n }\n return dataSourceExports[0]\n }\n\n /**\n * Creates directories recursively.\n */\n static async createDirectories(directory: string): Promise<void> {\n await fs.mkdir(directory, { recursive: true })\n }\n\n /**\n * Creates a file with the given content in the given path.\n */\n static async createFile(\n filePath: string,\n content: string,\n override: boolean = true,\n ): Promise<void> {\n await CommandUtils.createDirectories(path.dirname(filePath))\n if (override === false && (await CommandUtils.fileExists(filePath))) {\n return\n }\n await fs.writeFile(filePath, content)\n }\n\n /**\n * Reads everything from a given file and returns its content as a string.\n */\n static async readFile(filePath: string): Promise<string> {\n const file = await fs.readFile(filePath)\n\n return file.toString()\n }\n\n static async fileExists(filePath: string) {\n try {\n await fs.access(filePath, fs.constants.F_OK)\n return true\n } catch {\n return false\n }\n }\n\n /**\n * Gets migration timestamp and validates argument (if sent)\n */\n static getTimestamp(timestampOptionArgument: any): number {\n if (\n timestampOptionArgument &&\n (isNaN(timestampOptionArgument) || timestampOptionArgument < 0)\n ) {\n throw new TypeORMError(\n `timestamp option should be a non-negative number. received: ${timestampOptionArgument}`,\n )\n }\n return timestampOptionArgument\n ? new Date(Number(timestampOptionArgument)).getTime()\n : Date.now()\n }\n}\n"],"sourceRoot":".."}
@@ -1,4 +1,4 @@
1
- import * as yargs from "yargs";
1
+ import yargs from "yargs";
2
2
  /**
3
3
  * Generates a new entity.
4
4
  */
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EntityCreateCommand = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const CommandUtils_1 = require("./CommandUtils");
6
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
- const PlatformTools_1 = require("../platform/PlatformTools");
5
+ const ansis_1 = tslib_1.__importDefault(require("ansis"));
8
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
+ const PlatformTools_1 = require("../platform/PlatformTools");
8
+ const CommandUtils_1 = require("./CommandUtils");
9
9
  /**
10
10
  * Generates a new entity.
11
11
  */
@@ -30,13 +30,13 @@ class EntityCreateCommand {
30
30
  const fileContent = EntityCreateCommand.getTemplate(filename);
31
31
  const fileExists = await CommandUtils_1.CommandUtils.fileExists(fullPath + ".ts");
32
32
  if (fileExists) {
33
- throw `File ${chalk_1.default.blue(fullPath + ".ts")} already exists`;
33
+ throw new Error(`File "${fullPath}.ts" already exists`);
34
34
  }
35
35
  await CommandUtils_1.CommandUtils.createFile(fullPath + ".ts", fileContent);
36
- console.log(chalk_1.default.green(`Entity ${chalk_1.default.blue(fullPath + ".ts")} has been created successfully.`));
36
+ console.log(ansis_1.default.green `Entity ${ansis_1.default.blue `${fullPath}.ts`} has been created successfully.`);
37
37
  }
38
- catch (err) {
39
- PlatformTools_1.PlatformTools.logCmdErr("Error during entity creation:", err);
38
+ catch (error) {
39
+ PlatformTools_1.PlatformTools.logCmdErr("Error during entity creation:", error);
40
40
  process.exit(1);
41
41
  }
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":";;;;AAAA,iDAA6C;AAE7C,0DAAyB;AACzB,6DAAyD;AACzD,wDAAuB;AAEvB;;GAEG;AACH,MAAa,mBAAmB;IAAhC;QACI,YAAO,GAAG,sBAAsB,CAAA;QAChC,aAAQ,GAAG,yBAAyB,CAAA;IAmDxC,CAAC;IAjDG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,yBAAyB;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,CAAC,UAAU,CAAC,GAAG,CAAC;gBAClD,CAAC,CAAE,IAAI,CAAC,IAAe;gBACvB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAc,CAAC,CAAA;YACtD,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC7D,MAAM,UAAU,GAAG,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAA;YAClE,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,QAAQ,eAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAA;YAC/D,CAAC;YACD,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,EAAE,WAAW,CAAC,CAAA;YAC5D,OAAO,CAAC,GAAG,CACP,eAAK,CAAC,KAAK,CACP,UAAU,eAAK,CAAC,IAAI,CAChB,QAAQ,GAAG,KAAK,CACnB,iCAAiC,CACrC,CACJ,CAAA;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,6BAAa,CAAC,SAAS,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACO,MAAM,CAAC,WAAW,CAAC,IAAY;QACrC,OAAO;;;eAGA,IAAI;;;CAGlB,CAAA;IACG,CAAC;CACJ;AArDD,kDAqDC","file":"EntityCreateCommand.js","sourcesContent":["import { CommandUtils } from \"./CommandUtils\"\nimport * as yargs from \"yargs\"\nimport chalk from \"chalk\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport path from \"path\"\n\n/**\n * Generates a new entity.\n */\nexport class EntityCreateCommand implements yargs.CommandModule {\n command = \"entity:create <path>\"\n describe = \"Generates a new entity.\"\n\n builder(args: yargs.Argv) {\n return args.positional(\"path\", {\n type: \"string\",\n describe: \"Path of the entity file\",\n demandOption: true,\n })\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const fullPath = (args.path as string).startsWith(\"/\")\n ? (args.path as string)\n : path.resolve(process.cwd(), args.path as string)\n const filename = path.basename(fullPath)\n const fileContent = EntityCreateCommand.getTemplate(filename)\n const fileExists = await CommandUtils.fileExists(fullPath + \".ts\")\n if (fileExists) {\n throw `File ${chalk.blue(fullPath + \".ts\")} already exists`\n }\n await CommandUtils.createFile(fullPath + \".ts\", fileContent)\n console.log(\n chalk.green(\n `Entity ${chalk.blue(\n fullPath + \".ts\",\n )} has been created successfully.`,\n ),\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"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":";;;;AAAA,0DAAwB;AACxB,wDAAuB;AAEvB,6DAAyD;AACzD,iDAA6C;AAE7C;;GAEG;AACH,MAAa,mBAAmB;IAAhC;QACI,YAAO,GAAG,sBAAsB,CAAA;QAChC,aAAQ,GAAG,yBAAyB,CAAA;IA+CxC,CAAC;IA7CG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,yBAAyB;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,CAAC,UAAU,CAAC,GAAG,CAAC;gBAClD,CAAC,CAAE,IAAI,CAAC,IAAe;gBACvB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAc,CAAC,CAAA;YACtD,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC7D,MAAM,UAAU,GAAG,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAA;YAClE,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,qBAAqB,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,EAAE,WAAW,CAAC,CAAA;YAC5D,OAAO,CAAC,GAAG,CACP,eAAI,CAAC,KAAK,CAAA,UAAU,eAAI,CAAC,IAAI,CAAA,GAAG,QAAQ,KAAK,iCAAiC,CACjF,CAAA;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,6BAAa,CAAC,SAAS,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACO,MAAM,CAAC,WAAW,CAAC,IAAY;QACrC,OAAO;;;eAGA,IAAI;;;CAGlB,CAAA;IACG,CAAC;CACJ;AAjDD,kDAiDC","file":"EntityCreateCommand.js","sourcesContent":["import ansi from \"ansis\"\nimport path from \"path\"\nimport yargs from \"yargs\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Generates a new entity.\n */\nexport class EntityCreateCommand implements yargs.CommandModule {\n command = \"entity:create <path>\"\n describe = \"Generates a new entity.\"\n\n builder(args: yargs.Argv) {\n return args.positional(\"path\", {\n type: \"string\",\n describe: \"Path of the entity file\",\n demandOption: true,\n })\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const fullPath = (args.path as string).startsWith(\"/\")\n ? (args.path as string)\n : path.resolve(process.cwd(), args.path as string)\n const filename = path.basename(fullPath)\n const fileContent = EntityCreateCommand.getTemplate(filename)\n const fileExists = await CommandUtils.fileExists(fullPath + \".ts\")\n if (fileExists) {\n throw new Error(`File \"${fullPath}.ts\" already exists`)\n }\n await CommandUtils.createFile(fullPath + \".ts\", fileContent)\n console.log(\n ansi.green`Entity ${ansi.blue`${fullPath}.ts`} has been created successfully.`,\n )\n } catch (error) {\n PlatformTools.logCmdErr(\"Error during entity creation:\", error)\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"],"sourceRoot":".."}
@@ -1,4 +1,4 @@
1
- import * as yargs from "yargs";
1
+ import yargs from "yargs";
2
2
  /**
3
3
  * Generates a new project with TypeORM.
4
4
  */
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InitCommand = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const CommandUtils_1 = require("./CommandUtils");
6
- const path = tslib_1.__importStar(require("path"));
7
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
5
+ const ansis_1 = tslib_1.__importDefault(require("ansis"));
8
6
  const child_process_1 = require("child_process");
7
+ const path_1 = tslib_1.__importDefault(require("path"));
9
8
  const error_1 = require("../error");
10
9
  const PlatformTools_1 = require("../platform/PlatformTools");
10
+ const CommandUtils_1 = require("./CommandUtils");
11
11
  /**
12
12
  * Generates a new project with TypeORM.
13
13
  */
@@ -54,7 +54,7 @@ class InitCommand {
54
54
  const isDocker = args.docker !== undefined ? true : false;
55
55
  const basePath = process.cwd() + (args.name ? "/" + args.name : "");
56
56
  const projectName = args.name
57
- ? path.basename(args.name)
57
+ ? path_1.default.basename(args.name)
58
58
  : undefined;
59
59
  const installNpm = args.pm === "yarn" ? false : true;
60
60
  const projectIsEsm = args.ms === "esm";
@@ -76,19 +76,19 @@ class InitCommand {
76
76
  const packageJsonContents = await CommandUtils_1.CommandUtils.readFile(basePath + "/package.json");
77
77
  await CommandUtils_1.CommandUtils.createFile(basePath + "/package.json", InitCommand.appendPackageJson(packageJsonContents, database, isExpress, projectIsEsm));
78
78
  if (args.name) {
79
- console.log(chalk_1.default.green(`Project created inside ${chalk_1.default.blue(basePath)} directory.`));
79
+ console.log(ansis_1.default.green `Project created inside ${ansis_1.default.blue(basePath)} directory.`);
80
80
  }
81
81
  else {
82
- console.log(chalk_1.default.green(`Project created inside current directory.`));
82
+ console.log(ansis_1.default.green `Project created inside current directory.`);
83
83
  }
84
- console.log(chalk_1.default.green(`Please wait, installing dependencies...`));
84
+ console.log(ansis_1.default.green `Please wait, installing dependencies...`);
85
85
  if (args.pm && installNpm) {
86
86
  await InitCommand.executeCommand("npm install", basePath);
87
87
  }
88
88
  else {
89
89
  await InitCommand.executeCommand("yarn install", basePath);
90
90
  }
91
- console.log(chalk_1.default.green(`Done! Start playing with a new project!`));
91
+ console.log(ansis_1.default.green `Done! Start playing with a new project!`);
92
92
  }
93
93
  catch (err) {
94
94
  PlatformTools_1.PlatformTools.logCmdErr("Error during project initialization:", err);
@@ -611,7 +611,7 @@ Steps to run this project:
611
611
  packageJson.dependencies["sqlite3"] = "^5.0.2";
612
612
  break;
613
613
  case "better-sqlite3":
614
- packageJson.dependencies["better-sqlite3"] = "^7.0.0";
614
+ packageJson.dependencies["better-sqlite3"] = "^8.0.0";
615
615
  break;
616
616
  case "oracle":
617
617
  packageJson.dependencies["oracledb"] = "^5.1.0";
@@ -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 * as path from \"path\"\nimport * as yargs from \"yargs\"\nimport chalk from \"chalk\"\nimport { exec } from \"child_process\"\nimport { TypeORMError } from \"../error\"\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 =\n \"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(\"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:\n \"Indicates if express server sample code should be included in the project. False by default.\",\n })\n .option(\"docker\", {\n describe:\n \"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:\n \"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) || \"postgres\"\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\n ? path.basename(args.name as any)\n : undefined\n const installNpm = args.pm === \"yarn\" ? false : true\n const projectIsEsm = args.ms === \"esm\"\n await CommandUtils.createFile(\n basePath + \"/package.json\",\n InitCommand.getPackageJsonTemplate(projectName, projectIsEsm),\n false,\n )\n if (isDocker)\n await CommandUtils.createFile(\n basePath + \"/docker-compose.yml\",\n InitCommand.getDockerComposeTemplate(database),\n false,\n )\n await CommandUtils.createFile(\n basePath + \"/.gitignore\",\n InitCommand.getGitIgnoreFile(),\n )\n await CommandUtils.createFile(\n basePath + \"/README.md\",\n InitCommand.getReadmeTemplate({ docker: isDocker }),\n false,\n )\n await CommandUtils.createFile(\n basePath + \"/tsconfig.json\",\n InitCommand.getTsConfigTemplate(projectIsEsm),\n )\n await CommandUtils.createFile(\n basePath + \"/src/entity/User.ts\",\n InitCommand.getUserEntityTemplate(database),\n )\n await CommandUtils.createFile(\n basePath + \"/src/data-source.ts\",\n InitCommand.getAppDataSourceTemplate(projectIsEsm, database),\n )\n await CommandUtils.createFile(\n basePath + \"/src/index.ts\",\n InitCommand.getAppIndexTemplate(isExpress, projectIsEsm),\n )\n await CommandUtils.createDirectories(basePath + \"/src/migration\")\n\n // generate extra files for express application\n if (isExpress) {\n await CommandUtils.createFile(\n basePath + \"/src/routes.ts\",\n InitCommand.getRoutesTemplate(projectIsEsm),\n )\n await CommandUtils.createFile(\n basePath + \"/src/controller/UserController.ts\",\n InitCommand.getControllerTemplate(projectIsEsm),\n )\n }\n\n const packageJsonContents = await CommandUtils.readFile(\n basePath + \"/package.json\",\n )\n await CommandUtils.createFile(\n basePath + \"/package.json\",\n InitCommand.appendPackageJson(\n packageJsonContents,\n database,\n isExpress,\n projectIsEsm,\n ),\n )\n\n if (args.name) {\n console.log(\n chalk.green(\n `Project created inside ${chalk.blue(\n basePath,\n )} directory.`,\n ),\n )\n } else {\n console.log(\n chalk.green(`Project created inside current directory.`),\n )\n }\n\n console.log(chalk.green(`Please wait, installing dependencies...`))\n if (args.pm && installNpm) {\n await InitCommand.executeCommand(\"npm install\", basePath)\n } else {\n await InitCommand.executeCommand(\"yarn install\", basePath)\n }\n\n console.log(chalk.green(`Done! Start playing with a new project!`))\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 getAppDataSourceTemplate(\n isEsm: boolean,\n database: string,\n ): string {\n let dbSettings = \"\"\n switch (database) {\n case \"mysql\":\n dbSettings = `type: \"mysql\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",`\n break\n case \"mariadb\":\n dbSettings = `type: \"mariadb\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",`\n break\n case \"sqlite\":\n dbSettings = `type: \"sqlite\",\n database: \"database.sqlite\",`\n break\n case \"better-sqlite3\":\n dbSettings = `type: \"better-sqlite3\",\n database: \"database.sqlite\",`\n break\n case \"postgres\":\n dbSettings = `type: \"postgres\",\n host: \"localhost\",\n port: 5432,\n username: \"test\",\n password: \"test\",\n database: \"test\",`\n break\n case \"cockroachdb\":\n dbSettings = `type: \"cockroachdb\",\n host: \"localhost\",\n port: 26257,\n username: \"root\",\n password: \"\",\n database: \"defaultdb\",`\n break\n case \"mssql\":\n dbSettings = `type: \"mssql\",\n host: \"localhost\",\n username: \"sa\",\n password: \"Admin12345\",\n database: \"tempdb\",`\n break\n case \"oracle\":\n dbSettings = `type: \"oracle\",\nhost: \"localhost\",\nusername: \"system\",\npassword: \"oracle\",\nport: 1521,\nsid: \"xe.oracle.docker\",`\n break\n case \"mongodb\":\n dbSettings = `type: \"mongodb\",\n database: \"test\",`\n break\n case \"spanner\":\n dbSettings = `type: \"spanner\",\n projectId: \"test\",\n instanceId: \"test\",\n databaseId: \"test\",`\n break\n }\n return `import \"reflect-metadata\"\nimport { DataSource } from \"typeorm\"\nimport { User } from \"./entity/User${isEsm ? \".js\" : \"\"}\"\n\nexport const AppDataSource = new DataSource({\n ${dbSettings}\n synchronize: true,\n logging: false,\n entities: [User],\n migrations: [],\n subscribers: [],\n})\n`\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 {\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,\n 3,\n )\n else\n return JSON.stringify(\n {\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,\n 3,\n )\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, ${\n database === \"mongodb\"\n ? \"ObjectIdColumn, ObjectId\"\n : \"PrimaryGeneratedColumn\"\n }, Column } from \"typeorm\"\n\n@Entity()\nexport class User {\n\n ${\n database === \"mongodb\"\n ? \"@ObjectIdColumn()\"\n : \"@PrimaryGeneratedColumn()\"\n }\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${\n isEsm ? \".js\" : \"\"\n }\"\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 { AppDataSource } from \"../data-source${\n isEsm ? \".js\" : \"\"\n }\"\nimport { NextFunction, Request, Response } from \"express\"\nimport { User } from \"../entity/User${isEsm ? \".js\" : \"\"}\"\n\nexport class UserController {\n\n private userRepository = AppDataSource.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 const id = parseInt(request.params.id)\n\n\n const user = await this.userRepository.findOne({\n where: { id }\n })\n\n if (!user) {\n return \"unregistered user\"\n }\n return user\n }\n\n async save(request: Request, response: Response, next: NextFunction) {\n const { firstName, lastName, age } = request.body;\n\n const user = Object.assign(new User(), {\n firstName,\n lastName,\n age\n })\n\n return this.userRepository.save(user)\n }\n\n async remove(request: Request, response: Response, next: NextFunction) {\n const id = parseInt(request.params.id)\n\n let userToRemove = await this.userRepository.findOneBy({ id })\n\n if (!userToRemove) {\n return \"this user not exist\"\n }\n\n await this.userRepository.remove(userToRemove)\n\n return \"user has been removed\"\n }\n\n}`\n }\n\n /**\n * Gets contents of the main (index) application file.\n */\n protected static getAppIndexTemplate(\n express: boolean,\n isEsm: boolean,\n ): string {\n if (express) {\n return `import ${!isEsm ? \"* as \" : \"\"}express from \"express\"\nimport ${!isEsm ? \"* as \" : \"\"}bodyParser from \"body-parser\"\nimport { Request, Response } from \"express\"\nimport { AppDataSource } from \"./data-source${isEsm ? \".js\" : \"\"}\"\nimport { Routes } from \"./routes${isEsm ? \".js\" : \"\"}\"\nimport { User } from \"./entity/User${isEsm ? \".js\" : \"\"}\"\n\nAppDataSource.initialize().then(async () => {\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 AppDataSource.manager.save(\n AppDataSource.manager.create(User, {\n firstName: \"Timber\",\n lastName: \"Saw\",\n age: 27\n })\n )\n\n await AppDataSource.manager.save(\n AppDataSource.manager.create(User, {\n firstName: \"Phantom\",\n lastName: \"Assassin\",\n age: 24\n })\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 } else {\n return `import { AppDataSource } from \"./data-source${\n isEsm ? \".js\" : \"\"\n }\"\nimport { User } from \"./entity/User${isEsm ? \".js\" : \"\"}\"\n\nAppDataSource.initialize().then(async () => {\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 AppDataSource.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 AppDataSource.manager.find(User)\n console.log(\"Loaded users: \", users)\n\n console.log(\"Here you can setup and run express / fastify / 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(\n projectName?: string,\n projectIsEsm?: boolean,\n ): string {\n return JSON.stringify(\n {\n name: projectName || \"typeorm-sample\",\n version: \"0.0.1\",\n description: \"Awesome project developed with TypeORM.\",\n type: projectIsEsm ? \"module\" : \"commonjs\",\n devDependencies: {},\n dependencies: {},\n scripts: {},\n },\n undefined,\n 3,\n )\n }\n\n /**\n * Gets contents of the new docker-compose.yml file.\n */\n protected static getDockerComposeTemplate(database: string): string {\n switch (database) {\n case \"mysql\":\n return `version: '3'\nservices:\n\n mysql:\n image: \"mysql:8.0.30\"\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.8.4\"\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:14.5\"\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:v22.1.6\"\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(\n `You cannot initialize a project with docker for Oracle driver yet.`,\n ) // 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:5.0.12\"\n container_name: \"typeorm-mongodb\"\n ports:\n - \"27017:27017\"\n\n`\n case \"spanner\":\n return `version: '3'\nservices:\n\n spanner:\n image: gcr.io/cloud-spanner-emulator/emulator:1.4.1\n ports:\n - \"9010:9010\"\n - \"9020:9020\"\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 \\`data-source.ts\\` 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(\n packageJsonContents: string,\n database: string,\n express: boolean,\n projectIsEsm: boolean /*, docker: boolean*/,\n ): string {\n const packageJson = JSON.parse(packageJsonContents)\n\n if (!packageJson.devDependencies) packageJson.devDependencies = {}\n Object.assign(packageJson.devDependencies, {\n \"ts-node\": \"10.9.1\",\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:\n require(\"../package.json\").version !== \"0.0.0\"\n ? require(\"../package.json\").version // install version from package.json if present\n : require(\"../package.json\").installFrom, // else use custom source\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\"] = \"^5.0.2\"\n break\n case \"better-sqlite3\":\n packageJson.dependencies[\"better-sqlite3\"] = \"^7.0.0\"\n break\n case \"oracle\":\n packageJson.dependencies[\"oracledb\"] = \"^5.1.0\"\n break\n case \"mssql\":\n packageJson.dependencies[\"mssql\"] = \"^9.1.1\"\n break\n case \"mongodb\":\n packageJson.dependencies[\"mongodb\"] = \"^5.2.0\"\n break\n case \"spanner\":\n packageJson.dependencies[\"@google-cloud/spanner\"] = \"^5.18.0\"\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: \"typeorm-ts-node-esm\",\n })\n else\n Object.assign(packageJson.scripts, {\n start: /*(docker ? \"docker-compose up && \" : \"\") + */ \"ts-node src/index.ts\",\n typeorm: \"typeorm-ts-node-commonjs\",\n })\n\n return JSON.stringify(packageJson, undefined, 3)\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"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","file":"InitCommand.js","sourcesContent":["import ansi from \"ansis\"\nimport { exec } from \"child_process\"\nimport path from \"path\"\nimport yargs from \"yargs\"\nimport { TypeORMError } from \"../error\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Generates a new project with TypeORM.\n */\nexport class InitCommand implements yargs.CommandModule {\n command = \"init\"\n describe =\n \"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(\"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:\n \"Indicates if express server sample code should be included in the project. False by default.\",\n })\n .option(\"docker\", {\n describe:\n \"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:\n \"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) || \"postgres\"\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\n ? path.basename(args.name as any)\n : undefined\n const installNpm = args.pm === \"yarn\" ? false : true\n const projectIsEsm = args.ms === \"esm\"\n await CommandUtils.createFile(\n basePath + \"/package.json\",\n InitCommand.getPackageJsonTemplate(projectName, projectIsEsm),\n false,\n )\n if (isDocker)\n await CommandUtils.createFile(\n basePath + \"/docker-compose.yml\",\n InitCommand.getDockerComposeTemplate(database),\n false,\n )\n await CommandUtils.createFile(\n basePath + \"/.gitignore\",\n InitCommand.getGitIgnoreFile(),\n )\n await CommandUtils.createFile(\n basePath + \"/README.md\",\n InitCommand.getReadmeTemplate({ docker: isDocker }),\n false,\n )\n await CommandUtils.createFile(\n basePath + \"/tsconfig.json\",\n InitCommand.getTsConfigTemplate(projectIsEsm),\n )\n await CommandUtils.createFile(\n basePath + \"/src/entity/User.ts\",\n InitCommand.getUserEntityTemplate(database),\n )\n await CommandUtils.createFile(\n basePath + \"/src/data-source.ts\",\n InitCommand.getAppDataSourceTemplate(projectIsEsm, database),\n )\n await CommandUtils.createFile(\n basePath + \"/src/index.ts\",\n InitCommand.getAppIndexTemplate(isExpress, projectIsEsm),\n )\n await CommandUtils.createDirectories(basePath + \"/src/migration\")\n\n // generate extra files for express application\n if (isExpress) {\n await CommandUtils.createFile(\n basePath + \"/src/routes.ts\",\n InitCommand.getRoutesTemplate(projectIsEsm),\n )\n await CommandUtils.createFile(\n basePath + \"/src/controller/UserController.ts\",\n InitCommand.getControllerTemplate(projectIsEsm),\n )\n }\n\n const packageJsonContents = await CommandUtils.readFile(\n basePath + \"/package.json\",\n )\n await CommandUtils.createFile(\n basePath + \"/package.json\",\n InitCommand.appendPackageJson(\n packageJsonContents,\n database,\n isExpress,\n projectIsEsm,\n ),\n )\n\n if (args.name) {\n console.log(\n ansi.green`Project created inside ${ansi.blue(\n basePath,\n )} directory.`,\n )\n } else {\n console.log(\n ansi.green`Project created inside current directory.`,\n )\n }\n\n console.log(ansi.green`Please wait, installing dependencies...`)\n if (args.pm && installNpm) {\n await InitCommand.executeCommand(\"npm install\", basePath)\n } else {\n await InitCommand.executeCommand(\"yarn install\", basePath)\n }\n\n console.log(ansi.green`Done! Start playing with a new project!`)\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 getAppDataSourceTemplate(\n isEsm: boolean,\n database: string,\n ): string {\n let dbSettings = \"\"\n switch (database) {\n case \"mysql\":\n dbSettings = `type: \"mysql\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",`\n break\n case \"mariadb\":\n dbSettings = `type: \"mariadb\",\n host: \"localhost\",\n port: 3306,\n username: \"test\",\n password: \"test\",\n database: \"test\",`\n break\n case \"sqlite\":\n dbSettings = `type: \"sqlite\",\n database: \"database.sqlite\",`\n break\n case \"better-sqlite3\":\n dbSettings = `type: \"better-sqlite3\",\n database: \"database.sqlite\",`\n break\n case \"postgres\":\n dbSettings = `type: \"postgres\",\n host: \"localhost\",\n port: 5432,\n username: \"test\",\n password: \"test\",\n database: \"test\",`\n break\n case \"cockroachdb\":\n dbSettings = `type: \"cockroachdb\",\n host: \"localhost\",\n port: 26257,\n username: \"root\",\n password: \"\",\n database: \"defaultdb\",`\n break\n case \"mssql\":\n dbSettings = `type: \"mssql\",\n host: \"localhost\",\n username: \"sa\",\n password: \"Admin12345\",\n database: \"tempdb\",`\n break\n case \"oracle\":\n dbSettings = `type: \"oracle\",\nhost: \"localhost\",\nusername: \"system\",\npassword: \"oracle\",\nport: 1521,\nsid: \"xe.oracle.docker\",`\n break\n case \"mongodb\":\n dbSettings = `type: \"mongodb\",\n database: \"test\",`\n break\n case \"spanner\":\n dbSettings = `type: \"spanner\",\n projectId: \"test\",\n instanceId: \"test\",\n databaseId: \"test\",`\n break\n }\n return `import \"reflect-metadata\"\nimport { DataSource } from \"typeorm\"\nimport { User } from \"./entity/User${isEsm ? \".js\" : \"\"}\"\n\nexport const AppDataSource = new DataSource({\n ${dbSettings}\n synchronize: true,\n logging: false,\n entities: [User],\n migrations: [],\n subscribers: [],\n})\n`\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 {\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,\n 3,\n )\n else\n return JSON.stringify(\n {\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,\n 3,\n )\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, ${\n database === \"mongodb\"\n ? \"ObjectIdColumn, ObjectId\"\n : \"PrimaryGeneratedColumn\"\n }, Column } from \"typeorm\"\n\n@Entity()\nexport class User {\n\n ${\n database === \"mongodb\"\n ? \"@ObjectIdColumn()\"\n : \"@PrimaryGeneratedColumn()\"\n }\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${\n isEsm ? \".js\" : \"\"\n }\"\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 { AppDataSource } from \"../data-source${\n isEsm ? \".js\" : \"\"\n }\"\nimport { NextFunction, Request, Response } from \"express\"\nimport { User } from \"../entity/User${isEsm ? \".js\" : \"\"}\"\n\nexport class UserController {\n\n private userRepository = AppDataSource.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 const id = parseInt(request.params.id)\n\n\n const user = await this.userRepository.findOne({\n where: { id }\n })\n\n if (!user) {\n return \"unregistered user\"\n }\n return user\n }\n\n async save(request: Request, response: Response, next: NextFunction) {\n const { firstName, lastName, age } = request.body;\n\n const user = Object.assign(new User(), {\n firstName,\n lastName,\n age\n })\n\n return this.userRepository.save(user)\n }\n\n async remove(request: Request, response: Response, next: NextFunction) {\n const id = parseInt(request.params.id)\n\n let userToRemove = await this.userRepository.findOneBy({ id })\n\n if (!userToRemove) {\n return \"this user not exist\"\n }\n\n await this.userRepository.remove(userToRemove)\n\n return \"user has been removed\"\n }\n\n}`\n }\n\n /**\n * Gets contents of the main (index) application file.\n */\n protected static getAppIndexTemplate(\n express: boolean,\n isEsm: boolean,\n ): string {\n if (express) {\n return `import ${!isEsm ? \"* as \" : \"\"}express from \"express\"\nimport ${!isEsm ? \"* as \" : \"\"}bodyParser from \"body-parser\"\nimport { Request, Response } from \"express\"\nimport { AppDataSource } from \"./data-source${isEsm ? \".js\" : \"\"}\"\nimport { Routes } from \"./routes${isEsm ? \".js\" : \"\"}\"\nimport { User } from \"./entity/User${isEsm ? \".js\" : \"\"}\"\n\nAppDataSource.initialize().then(async () => {\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 AppDataSource.manager.save(\n AppDataSource.manager.create(User, {\n firstName: \"Timber\",\n lastName: \"Saw\",\n age: 27\n })\n )\n\n await AppDataSource.manager.save(\n AppDataSource.manager.create(User, {\n firstName: \"Phantom\",\n lastName: \"Assassin\",\n age: 24\n })\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 } else {\n return `import { AppDataSource } from \"./data-source${\n isEsm ? \".js\" : \"\"\n }\"\nimport { User } from \"./entity/User${isEsm ? \".js\" : \"\"}\"\n\nAppDataSource.initialize().then(async () => {\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 AppDataSource.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 AppDataSource.manager.find(User)\n console.log(\"Loaded users: \", users)\n\n console.log(\"Here you can setup and run express / fastify / 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(\n projectName?: string,\n projectIsEsm?: boolean,\n ): string {\n return JSON.stringify(\n {\n name: projectName || \"typeorm-sample\",\n version: \"0.0.1\",\n description: \"Awesome project developed with TypeORM.\",\n type: projectIsEsm ? \"module\" : \"commonjs\",\n devDependencies: {},\n dependencies: {},\n scripts: {},\n },\n undefined,\n 3,\n )\n }\n\n /**\n * Gets contents of the new docker-compose.yml file.\n */\n protected static getDockerComposeTemplate(database: string): string {\n switch (database) {\n case \"mysql\":\n return `version: '3'\nservices:\n\n mysql:\n image: \"mysql:8.0.30\"\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.8.4\"\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:14.5\"\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:v22.1.6\"\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(\n `You cannot initialize a project with docker for Oracle driver yet.`,\n ) // 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:5.0.12\"\n container_name: \"typeorm-mongodb\"\n ports:\n - \"27017:27017\"\n\n`\n case \"spanner\":\n return `version: '3'\nservices:\n\n spanner:\n image: gcr.io/cloud-spanner-emulator/emulator:1.4.1\n ports:\n - \"9010:9010\"\n - \"9020:9020\"\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 \\`data-source.ts\\` 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(\n packageJsonContents: string,\n database: string,\n express: boolean,\n projectIsEsm: boolean /*, docker: boolean*/,\n ): string {\n const packageJson = JSON.parse(packageJsonContents)\n\n if (!packageJson.devDependencies) packageJson.devDependencies = {}\n Object.assign(packageJson.devDependencies, {\n \"ts-node\": \"10.9.1\",\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:\n require(\"../package.json\").version !== \"0.0.0\"\n ? require(\"../package.json\").version // install version from package.json if present\n : require(\"../package.json\").installFrom, // else use custom source\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\"] = \"^5.0.2\"\n break\n case \"better-sqlite3\":\n packageJson.dependencies[\"better-sqlite3\"] = \"^8.0.0\"\n break\n case \"oracle\":\n packageJson.dependencies[\"oracledb\"] = \"^5.1.0\"\n break\n case \"mssql\":\n packageJson.dependencies[\"mssql\"] = \"^9.1.1\"\n break\n case \"mongodb\":\n packageJson.dependencies[\"mongodb\"] = \"^5.2.0\"\n break\n case \"spanner\":\n packageJson.dependencies[\"@google-cloud/spanner\"] = \"^5.18.0\"\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: \"typeorm-ts-node-esm\",\n })\n else\n Object.assign(packageJson.scripts, {\n start: /*(docker ? \"docker-compose up && \" : \"\") + */ \"ts-node src/index.ts\",\n typeorm: \"typeorm-ts-node-commonjs\",\n })\n\n return JSON.stringify(packageJson, undefined, 3)\n }\n}\n"],"sourceRoot":".."}
@@ -1,4 +1,4 @@
1
- import * as yargs from "yargs";
1
+ import yargs from "yargs";
2
2
  /**
3
3
  * Creates a new migration file.
4
4
  */
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MigrationCreateCommand = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const CommandUtils_1 = require("./CommandUtils");
6
- const StringUtils_1 = require("../util/StringUtils");
7
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
- const PlatformTools_1 = require("../platform/PlatformTools");
5
+ const ansis_1 = tslib_1.__importDefault(require("ansis"));
9
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
+ const PlatformTools_1 = require("../platform/PlatformTools");
8
+ const StringUtils_1 = require("../util/StringUtils");
9
+ const CommandUtils_1 = require("./CommandUtils");
10
10
  /**
11
11
  * Creates a new migration file.
12
12
  */
@@ -47,7 +47,7 @@ class MigrationCreateCommand {
47
47
  ? MigrationCreateCommand.getJavascriptTemplate(filename, timestamp)
48
48
  : MigrationCreateCommand.getTemplate(filename, timestamp);
49
49
  await CommandUtils_1.CommandUtils.createFile(fullPath + (args.outputJs ? ".js" : ".ts"), fileContent);
50
- console.log(`Migration ${chalk_1.default.blue(fullPath + (args.outputJs ? ".js" : ".ts"))} has been generated successfully.`);
50
+ console.log(`Migration ${ansis_1.default.blue(fullPath + (args.outputJs ? ".js" : ".ts"))} has been generated successfully.`);
51
51
  }
52
52
  catch (err) {
53
53
  PlatformTools_1.PlatformTools.logCmdErr("Error during migration creation:", err);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/MigrationCreateCommand.ts"],"names":[],"mappings":";;;;AAAA,iDAA6C;AAC7C,qDAA+C;AAE/C,0DAAyB;AACzB,6DAAyD;AACzD,wDAAuB;AAEvB;;GAEG;AACH,MAAa,sBAAsB;IAAnC;QACI,YAAO,GAAG,yBAAyB,CAAA;QACnC,aAAQ,GAAG,+BAA+B,CAAA;IAqG9C,CAAC;IAnGG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI;aACN,UAAU,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,4BAA4B;YACtC,YAAY,EAAE,IAAI;SACrB,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EACJ,+DAA+D;SACtE,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,yCAAyC;SACtD,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6C;QACvD,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,2BAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YACzC,MAAM,QAAQ,GACV,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,QAAQ,CAAA;YAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ;gBAC7B,CAAC,CAAC,sBAAsB,CAAC,qBAAqB,CACxC,QAAQ,EACR,SAAS,CACZ;gBACH,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YAE7D,MAAM,2BAAY,CAAC,UAAU,CACzB,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAC1C,WAAW,CACd,CAAA;YACD,OAAO,CAAC,GAAG,CACP,aAAa,eAAK,CAAC,IAAI,CACnB,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAC7C,mCAAmC,CACvC,CAAA;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,6BAAa,CAAC,SAAS,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACO,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,SAAiB;QACxD,OAAO;;eAEA,IAAA,uBAAS,EACZ,IAAI,EACJ,IAAI,CACP,GAAG,SAAS;;;;;;;;;CASpB,CAAA;IACG,CAAC;IAED;;OAEG;IACO,MAAM,CAAC,qBAAqB,CAClC,IAAY,EACZ,SAAiB;QAEjB,OAAO;;yBAEU,IAAA,uBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS;;;;;;;;;CASzD,CAAA;IACG,CAAC;CACJ;AAvGD,wDAuGC","file":"MigrationCreateCommand.js","sourcesContent":["import { CommandUtils } from \"./CommandUtils\"\nimport { camelCase } from \"../util/StringUtils\"\nimport * as yargs from \"yargs\"\nimport chalk from \"chalk\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport path from \"path\"\n\n/**\n * Creates a new migration file.\n */\nexport class MigrationCreateCommand implements yargs.CommandModule {\n command = \"migration:create <path>\"\n describe = \"Creates a new migration file.\"\n\n builder(args: yargs.Argv) {\n return args\n .positional(\"path\", {\n type: \"string\",\n describe: \"Path of the migration file\",\n demandOption: true,\n })\n .option(\"o\", {\n alias: \"outputJs\",\n type: \"boolean\",\n default: false,\n describe:\n \"Generate a migration file on Javascript instead of Typescript\",\n })\n .option(\"t\", {\n alias: \"timestamp\",\n type: \"number\",\n default: false,\n describe: \"Custom timestamp for the migration name\",\n })\n }\n\n async handler(args: yargs.Arguments<any & { path: string }>) {\n try {\n const timestamp = CommandUtils.getTimestamp(args.timestamp)\n const inputPath = args.path.startsWith(\"/\")\n ? args.path\n : path.resolve(process.cwd(), args.path)\n const filename = path.basename(inputPath)\n const fullPath =\n path.dirname(inputPath) + \"/\" + timestamp + \"-\" + filename\n\n const fileContent = args.outputJs\n ? MigrationCreateCommand.getJavascriptTemplate(\n filename,\n timestamp,\n )\n : MigrationCreateCommand.getTemplate(filename, timestamp)\n\n await CommandUtils.createFile(\n fullPath + (args.outputJs ? \".js\" : \".ts\"),\n fileContent,\n )\n console.log(\n `Migration ${chalk.blue(\n fullPath + (args.outputJs ? \".js\" : \".ts\"),\n )} has been generated successfully.`,\n )\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during migration creation:\", err)\n process.exit(1)\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets contents of the migration file.\n */\n protected static getTemplate(name: string, timestamp: number): string {\n return `import { MigrationInterface, QueryRunner } from \"typeorm\";\n\nexport class ${camelCase(\n name,\n true,\n )}${timestamp} implements MigrationInterface {\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n }\n\n}\n`\n }\n\n /**\n * Gets contents of the migration file in Javascript.\n */\n protected static getJavascriptTemplate(\n name: string,\n timestamp: number,\n ): string {\n return `const { MigrationInterface, QueryRunner } = require(\"typeorm\");\n\nmodule.exports = class ${camelCase(name, true)}${timestamp} {\n\n async up(queryRunner) {\n }\n\n async down(queryRunner) {\n }\n\n}\n`\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/MigrationCreateCommand.ts"],"names":[],"mappings":";;;;AAAA,0DAAwB;AACxB,wDAAuB;AAEvB,6DAAyD;AACzD,qDAA+C;AAC/C,iDAA6C;AAE7C;;GAEG;AACH,MAAa,sBAAsB;IAAnC;QACI,YAAO,GAAG,yBAAyB,CAAA;QACnC,aAAQ,GAAG,+BAA+B,CAAA;IAqG9C,CAAC;IAnGG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI;aACN,UAAU,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,4BAA4B;YACtC,YAAY,EAAE,IAAI;SACrB,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EACJ,+DAA+D;SACtE,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,yCAAyC;SACtD,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6C;QACvD,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,2BAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YACzC,MAAM,QAAQ,GACV,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,QAAQ,CAAA;YAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ;gBAC7B,CAAC,CAAC,sBAAsB,CAAC,qBAAqB,CACxC,QAAQ,EACR,SAAS,CACZ;gBACH,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YAE7D,MAAM,2BAAY,CAAC,UAAU,CACzB,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAC1C,WAAW,CACd,CAAA;YACD,OAAO,CAAC,GAAG,CACP,aAAa,eAAI,CAAC,IAAI,CAClB,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAC7C,mCAAmC,CACvC,CAAA;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,6BAAa,CAAC,SAAS,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACO,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,SAAiB;QACxD,OAAO;;eAEA,IAAA,uBAAS,EACZ,IAAI,EACJ,IAAI,CACP,GAAG,SAAS;;;;;;;;;CASpB,CAAA;IACG,CAAC;IAED;;OAEG;IACO,MAAM,CAAC,qBAAqB,CAClC,IAAY,EACZ,SAAiB;QAEjB,OAAO;;yBAEU,IAAA,uBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS;;;;;;;;;CASzD,CAAA;IACG,CAAC;CACJ;AAvGD,wDAuGC","file":"MigrationCreateCommand.js","sourcesContent":["import ansi from \"ansis\"\nimport path from \"path\"\nimport yargs from \"yargs\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { camelCase } from \"../util/StringUtils\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Creates a new migration file.\n */\nexport class MigrationCreateCommand implements yargs.CommandModule {\n command = \"migration:create <path>\"\n describe = \"Creates a new migration file.\"\n\n builder(args: yargs.Argv) {\n return args\n .positional(\"path\", {\n type: \"string\",\n describe: \"Path of the migration file\",\n demandOption: true,\n })\n .option(\"o\", {\n alias: \"outputJs\",\n type: \"boolean\",\n default: false,\n describe:\n \"Generate a migration file on Javascript instead of Typescript\",\n })\n .option(\"t\", {\n alias: \"timestamp\",\n type: \"number\",\n default: false,\n describe: \"Custom timestamp for the migration name\",\n })\n }\n\n async handler(args: yargs.Arguments<any & { path: string }>) {\n try {\n const timestamp = CommandUtils.getTimestamp(args.timestamp)\n const inputPath = args.path.startsWith(\"/\")\n ? args.path\n : path.resolve(process.cwd(), args.path)\n const filename = path.basename(inputPath)\n const fullPath =\n path.dirname(inputPath) + \"/\" + timestamp + \"-\" + filename\n\n const fileContent = args.outputJs\n ? MigrationCreateCommand.getJavascriptTemplate(\n filename,\n timestamp,\n )\n : MigrationCreateCommand.getTemplate(filename, timestamp)\n\n await CommandUtils.createFile(\n fullPath + (args.outputJs ? \".js\" : \".ts\"),\n fileContent,\n )\n console.log(\n `Migration ${ansi.blue(\n fullPath + (args.outputJs ? \".js\" : \".ts\"),\n )} has been generated successfully.`,\n )\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during migration creation:\", err)\n process.exit(1)\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets contents of the migration file.\n */\n protected static getTemplate(name: string, timestamp: number): string {\n return `import { MigrationInterface, QueryRunner } from \"typeorm\";\n\nexport class ${camelCase(\n name,\n true,\n )}${timestamp} implements MigrationInterface {\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n }\n\n}\n`\n }\n\n /**\n * Gets contents of the migration file in Javascript.\n */\n protected static getJavascriptTemplate(\n name: string,\n timestamp: number,\n ): string {\n return `const { MigrationInterface, QueryRunner } = require(\"typeorm\");\n\nmodule.exports = class ${camelCase(name, true)}${timestamp} {\n\n async up(queryRunner) {\n }\n\n async down(queryRunner) {\n }\n\n}\n`\n }\n}\n"],"sourceRoot":".."}
@@ -1,4 +1,4 @@
1
- import * as yargs from "yargs";
1
+ import yargs from "yargs";
2
2
  /**
3
3
  * Generates a new migration file with sql needs to be executed to update schema.
4
4
  */
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MigrationGenerateCommand = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const CommandUtils_1 = require("./CommandUtils");
6
- const StringUtils_1 = require("../util/StringUtils");
7
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
5
  const sqlFormatter_1 = require("@sqltools/formatter/lib/sqlFormatter");
9
- const PlatformTools_1 = require("../platform/PlatformTools");
10
- const path = tslib_1.__importStar(require("path"));
6
+ const ansis_1 = tslib_1.__importDefault(require("ansis"));
7
+ const path_1 = tslib_1.__importDefault(require("path"));
11
8
  const process_1 = tslib_1.__importDefault(require("process"));
9
+ const PlatformTools_1 = require("../platform/PlatformTools");
10
+ const StringUtils_1 = require("../util/StringUtils");
11
+ const CommandUtils_1 = require("./CommandUtils");
12
12
  /**
13
13
  * Generates a new migration file with sql needs to be executed to update schema.
14
14
  */
@@ -66,11 +66,11 @@ class MigrationGenerateCommand {
66
66
  const extension = args.outputJs ? ".js" : ".ts";
67
67
  const fullPath = args.path.startsWith("/")
68
68
  ? args.path
69
- : path.resolve(process_1.default.cwd(), args.path);
70
- const filename = timestamp + "-" + path.basename(fullPath) + extension;
69
+ : path_1.default.resolve(process_1.default.cwd(), args.path);
70
+ const filename = timestamp + "-" + path_1.default.basename(fullPath) + extension;
71
71
  let dataSource = undefined;
72
72
  try {
73
- dataSource = await CommandUtils_1.CommandUtils.loadDataSource(path.resolve(process_1.default.cwd(), args.dataSource));
73
+ dataSource = await CommandUtils_1.CommandUtils.loadDataSource(path_1.default.resolve(process_1.default.cwd(), args.dataSource));
74
74
  dataSource.setOptions({
75
75
  synchronize: false,
76
76
  migrationsRun: false,
@@ -112,32 +112,32 @@ class MigrationGenerateCommand {
112
112
  }
113
113
  if (!upSqls.length) {
114
114
  if (args.check) {
115
- console.log(chalk_1.default.green(`No changes in database schema were found`));
115
+ console.log(ansis_1.default.green `No changes in database schema were found`);
116
116
  process_1.default.exit(0);
117
117
  }
118
118
  else {
119
- console.log(chalk_1.default.yellow(`No changes in database schema were found - cannot generate a migration. To create a new empty migration use "typeorm migration:create" command`));
119
+ console.log(ansis_1.default.yellow `No changes in database schema were found - cannot generate a migration. To create a new empty migration use "typeorm migration:create" command`);
120
120
  process_1.default.exit(1);
121
121
  }
122
122
  }
123
123
  else if (!args.path) {
124
- console.log(chalk_1.default.yellow("Please specify a migration path"));
124
+ console.log(ansis_1.default.yellow `Please specify a migration path`);
125
125
  process_1.default.exit(1);
126
126
  }
127
127
  const fileContent = args.outputJs
128
- ? MigrationGenerateCommand.getJavascriptTemplate(path.basename(fullPath), timestamp, upSqls, downSqls.reverse())
129
- : MigrationGenerateCommand.getTemplate(path.basename(fullPath), timestamp, upSqls, downSqls.reverse());
128
+ ? MigrationGenerateCommand.getJavascriptTemplate(path_1.default.basename(fullPath), timestamp, upSqls, downSqls.reverse())
129
+ : MigrationGenerateCommand.getTemplate(path_1.default.basename(fullPath), timestamp, upSqls, downSqls.reverse());
130
130
  if (args.check) {
131
- console.log(chalk_1.default.yellow(`Unexpected changes in database schema were found in check mode:\n\n${chalk_1.default.white(fileContent)}`));
131
+ console.log(ansis_1.default.yellow `Unexpected changes in database schema were found in check mode:\n\n${ansis_1.default.white(fileContent)}`);
132
132
  process_1.default.exit(1);
133
133
  }
134
134
  if (args.dryrun) {
135
- console.log(chalk_1.default.green(`Migration ${chalk_1.default.blue(fullPath + extension)} has content:\n\n${chalk_1.default.white(fileContent)}`));
135
+ console.log(ansis_1.default.green(`Migration ${ansis_1.default.blue(fullPath + extension)} has content:\n\n${ansis_1.default.white(fileContent)}`));
136
136
  }
137
137
  else {
138
- const migrationFileName = path.dirname(fullPath) + "/" + filename;
138
+ const migrationFileName = path_1.default.dirname(fullPath) + "/" + filename;
139
139
  await CommandUtils_1.CommandUtils.createFile(migrationFileName, fileContent);
140
- console.log(chalk_1.default.green(`Migration ${chalk_1.default.blue(migrationFileName)} has been generated successfully.`));
140
+ console.log(ansis_1.default.green `Migration ${ansis_1.default.blue(migrationFileName)} has been generated successfully.`);
141
141
  if (args.exitProcess !== false) {
142
142
  process_1.default.exit(0);
143
143
  }