fragment-ts 1.0.2 → 1.0.3

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 (304) hide show
  1. package/README.md +401 -0
  2. package/USAGE.md +1439 -0
  3. package/bin/fragment.js +2 -0
  4. package/dist/ai/ai.module.d.ts +27 -0
  5. package/dist/ai/ai.module.d.ts.map +1 -0
  6. package/dist/ai/ai.module.js +77 -0
  7. package/dist/ai/ai.module.js.map +1 -0
  8. package/dist/auth/auth.module.d.ts +18 -0
  9. package/dist/auth/auth.module.d.ts.map +1 -0
  10. package/dist/auth/auth.module.js +89 -0
  11. package/dist/auth/auth.module.js.map +1 -0
  12. package/dist/cli/commands/build.command.d.ts +6 -1
  13. package/dist/cli/commands/build.command.d.ts.map +1 -0
  14. package/dist/cli/commands/build.command.js +130 -10
  15. package/dist/cli/commands/build.command.js.map +1 -1
  16. package/dist/cli/commands/diagnostics.command.d.ts +16 -0
  17. package/dist/cli/commands/diagnostics.command.d.ts.map +1 -0
  18. package/dist/cli/commands/diagnostics.command.js +419 -0
  19. package/dist/cli/commands/diagnostics.command.js.map +1 -0
  20. package/dist/cli/commands/generate.command.d.ts +13 -6
  21. package/dist/cli/commands/generate.command.d.ts.map +1 -0
  22. package/dist/cli/commands/generate.command.js +200 -128
  23. package/dist/cli/commands/generate.command.js.map +1 -1
  24. package/dist/cli/commands/init.command.d.ts +11 -5
  25. package/dist/cli/commands/init.command.d.ts.map +1 -0
  26. package/dist/cli/commands/init.command.js +267 -305
  27. package/dist/cli/commands/init.command.js.map +1 -1
  28. package/dist/cli/commands/migrate.command.d.ts +12 -5
  29. package/dist/cli/commands/migrate.command.d.ts.map +1 -0
  30. package/dist/cli/commands/migrate.command.js +211 -83
  31. package/dist/cli/commands/migrate.command.js.map +1 -1
  32. package/dist/cli/commands/serve.command.d.ts +5 -4
  33. package/dist/cli/commands/serve.command.d.ts.map +1 -0
  34. package/dist/cli/commands/serve.command.js +178 -21
  35. package/dist/cli/commands/serve.command.js.map +1 -1
  36. package/dist/cli/index.d.ts +2 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +22 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/core/container/di-container.d.ts +13 -7
  41. package/dist/core/container/di-container.d.ts.map +1 -0
  42. package/dist/core/container/di-container.js +75 -25
  43. package/dist/core/container/di-container.js.map +1 -1
  44. package/dist/core/decorators/application.decorator.d.ts +8 -0
  45. package/dist/core/decorators/application.decorator.d.ts.map +1 -0
  46. package/dist/core/decorators/application.decorator.js +16 -0
  47. package/dist/core/decorators/application.decorator.js.map +1 -0
  48. package/dist/core/decorators/auto-configuration.decorator.d.ts +2 -0
  49. package/dist/core/decorators/auto-configuration.decorator.d.ts.map +1 -0
  50. package/dist/core/decorators/auto-configuration.decorator.js +19 -0
  51. package/dist/core/decorators/auto-configuration.decorator.js.map +1 -0
  52. package/dist/core/decorators/conditional.decorators.d.ts +4 -0
  53. package/dist/core/decorators/conditional.decorators.d.ts.map +1 -0
  54. package/dist/core/decorators/conditional.decorators.js +22 -0
  55. package/dist/core/decorators/conditional.decorators.js.map +1 -0
  56. package/dist/core/decorators/controller.decorator.d.ts +1 -3
  57. package/dist/core/decorators/controller.decorator.d.ts.map +1 -0
  58. package/dist/core/decorators/controller.decorator.js +12 -9
  59. package/dist/core/decorators/controller.decorator.js.map +1 -1
  60. package/dist/core/decorators/http.decorators.d.ts +12 -0
  61. package/dist/core/decorators/http.decorators.d.ts.map +1 -0
  62. package/dist/core/decorators/http.decorators.js +52 -0
  63. package/dist/core/decorators/http.decorators.js.map +1 -0
  64. package/dist/core/decorators/injectable.decorator.d.ts +3 -3
  65. package/dist/core/decorators/injectable.decorator.d.ts.map +1 -0
  66. package/dist/core/decorators/injectable.decorator.js +11 -8
  67. package/dist/core/decorators/injectable.decorator.js.map +1 -1
  68. package/dist/core/decorators/injection.decorators.d.ts +5 -0
  69. package/dist/core/decorators/injection.decorators.d.ts.map +1 -0
  70. package/dist/core/decorators/injection.decorators.js +29 -0
  71. package/dist/core/decorators/injection.decorators.js.map +1 -0
  72. package/dist/core/decorators/repository.decorator.d.ts +1 -0
  73. package/dist/core/decorators/repository.decorator.d.ts.map +1 -0
  74. package/dist/core/decorators/repository.decorator.js +12 -1
  75. package/dist/core/decorators/repository.decorator.js.map +1 -1
  76. package/dist/core/decorators/service.decorator.d.ts +1 -0
  77. package/dist/core/decorators/service.decorator.d.ts.map +1 -0
  78. package/dist/core/decorators/service.decorator.js +12 -1
  79. package/dist/core/decorators/service.decorator.js.map +1 -1
  80. package/dist/core/index.d.ts +13 -0
  81. package/dist/core/index.d.ts.map +1 -0
  82. package/dist/core/index.js +29 -0
  83. package/dist/core/index.js.map +1 -0
  84. package/dist/core/loader/file-loader.d.ts +5 -0
  85. package/dist/core/loader/file-loader.d.ts.map +1 -0
  86. package/dist/core/loader/file-loader.js +85 -0
  87. package/dist/core/loader/file-loader.js.map +1 -0
  88. package/dist/core/metadata/metadata-keys.d.ts +20 -0
  89. package/dist/core/metadata/metadata-keys.d.ts.map +1 -0
  90. package/dist/core/metadata/metadata-keys.js +23 -0
  91. package/dist/core/metadata/metadata-keys.js.map +1 -0
  92. package/dist/core/metadata/metadata-storage.d.ts +36 -0
  93. package/dist/core/metadata/metadata-storage.d.ts.map +1 -0
  94. package/dist/core/metadata/metadata-storage.js +53 -0
  95. package/dist/core/metadata/metadata-storage.js.map +1 -0
  96. package/dist/core/scanner/component-scanner.d.ts +16 -0
  97. package/dist/core/scanner/component-scanner.d.ts.map +1 -0
  98. package/dist/core/scanner/component-scanner.js +147 -0
  99. package/dist/core/scanner/component-scanner.js.map +1 -0
  100. package/dist/index.d.ts +22 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +60 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/plugins/plugin-manager.d.ts +14 -0
  105. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  106. package/dist/{cli/utils/file-generator.js → plugins/plugin-manager.js} +32 -24
  107. package/dist/plugins/plugin-manager.js.map +1 -0
  108. package/dist/shared/errors.d.ts +18 -0
  109. package/dist/shared/errors.d.ts.map +1 -0
  110. package/dist/shared/errors.js +41 -0
  111. package/dist/shared/errors.js.map +1 -0
  112. package/dist/testing/runner.d.ts +26 -0
  113. package/dist/testing/runner.d.ts.map +1 -0
  114. package/dist/testing/runner.js +143 -0
  115. package/dist/testing/runner.js.map +1 -0
  116. package/dist/typeorm/typeorm-module.d.ts +36 -0
  117. package/dist/typeorm/typeorm-module.d.ts.map +1 -0
  118. package/dist/typeorm/typeorm-module.js +150 -0
  119. package/dist/typeorm/typeorm-module.js.map +1 -0
  120. package/dist/web/application.d.ts +29 -0
  121. package/dist/web/application.d.ts.map +1 -0
  122. package/dist/web/application.js +301 -0
  123. package/dist/web/application.js.map +1 -0
  124. package/dist/web/interfaces.d.ts +14 -0
  125. package/dist/web/interfaces.d.ts.map +1 -0
  126. package/dist/{auth/dto/login.dto.js → web/interfaces.js} +1 -1
  127. package/dist/web/interfaces.js.map +1 -0
  128. package/examples/blog-api/fragment.json +14 -0
  129. package/examples/blog-api/package-lock.json +3405 -0
  130. package/examples/blog-api/package.json +19 -0
  131. package/examples/blog-api/src/controllers/app.controller.ts +9 -0
  132. package/examples/blog-api/src/controllers/auth.controller.ts +17 -0
  133. package/examples/blog-api/src/controllers/category.controller.ts +29 -0
  134. package/examples/blog-api/src/controllers/comment.controller.ts +31 -0
  135. package/examples/blog-api/src/controllers/post.controller.ts +46 -0
  136. package/examples/blog-api/src/dto/create-category.dto.ts +6 -0
  137. package/examples/blog-api/src/dto/create-comment.dto.ts +6 -0
  138. package/examples/blog-api/src/dto/create-post.dto.ts +6 -0
  139. package/examples/blog-api/src/entities/category.entity.ts +16 -0
  140. package/examples/blog-api/src/entities/comment.entity.ts +29 -0
  141. package/examples/blog-api/src/entities/post.entity.ts +42 -0
  142. package/examples/blog-api/src/entities/user.entity.ts +25 -0
  143. package/examples/blog-api/src/main.ts +16 -0
  144. package/examples/blog-api/src/migrations/1767737463842-InitialSchema.ts +60 -0
  145. package/examples/blog-api/src/repositories/category.repository.ts +25 -0
  146. package/examples/blog-api/src/repositories/comment.repository.ts +25 -0
  147. package/examples/blog-api/src/repositories/post.repository.ts +29 -0
  148. package/examples/blog-api/src/seeds/SampleData.seed.ts +41 -0
  149. package/examples/blog-api/src/services/app.service.ts +8 -0
  150. package/examples/blog-api/src/services/auth.service.ts +15 -0
  151. package/examples/blog-api/src/services/category.service.ts +27 -0
  152. package/examples/blog-api/src/services/comment.service.ts +31 -0
  153. package/examples/blog-api/src/services/post.service.ts +35 -0
  154. package/examples/blog-api/tsconfig.json +23 -0
  155. package/package.json +55 -33
  156. package/src/ai/ai.module.ts +110 -0
  157. package/src/auth/auth.module.ts +77 -0
  158. package/src/cli/commands/build.command.ts +123 -13
  159. package/src/cli/commands/diagnostics.command.ts +438 -0
  160. package/src/cli/commands/generate.command.ts +206 -137
  161. package/src/cli/commands/init.command.ts +337 -349
  162. package/src/cli/commands/migrate.command.ts +203 -88
  163. package/src/cli/commands/serve.command.ts +176 -24
  164. package/src/cli/index.ts +23 -0
  165. package/src/core/container/di-container.ts +83 -26
  166. package/src/core/decorators/application.decorator.ts +26 -0
  167. package/src/core/decorators/auto-configuration.decorator.ts +17 -0
  168. package/src/core/decorators/conditional.decorators.ts +19 -0
  169. package/src/core/decorators/controller.decorator.ts +14 -11
  170. package/src/core/decorators/http.decorators.ts +71 -0
  171. package/src/core/decorators/injectable.decorator.ts +14 -9
  172. package/src/core/decorators/injection.decorators.ts +26 -0
  173. package/src/core/decorators/repository.decorator.ts +13 -2
  174. package/src/core/decorators/service.decorator.ts +13 -2
  175. package/src/core/index.ts +13 -0
  176. package/src/core/loader/file-loader.ts +55 -0
  177. package/src/core/metadata/metadata-keys.ts +19 -0
  178. package/src/core/metadata/metadata-storage.ts +91 -0
  179. package/src/core/scanner/component-scanner.ts +129 -0
  180. package/src/index.ts +45 -0
  181. package/src/plugins/plugin-manager.ts +52 -0
  182. package/src/shared/errors.ts +34 -0
  183. package/src/testing/runner.ts +143 -0
  184. package/src/typeorm/typeorm-module.ts +216 -0
  185. package/src/web/application.ts +348 -0
  186. package/src/web/interfaces.ts +17 -0
  187. package/tsconfig.json +8 -6
  188. package/.env.example +0 -0
  189. package/base.ts +0 -1810
  190. package/base2.ts +0 -968
  191. package/bin/frg.ts +0 -5
  192. package/config/fragment.lock.yaml +0 -0
  193. package/config/fragment.yaml +0 -0
  194. package/dist/app.d.ts +0 -15
  195. package/dist/app.js +0 -91
  196. package/dist/app.js.map +0 -1
  197. package/dist/auth/auth.controller.d.ts +0 -10
  198. package/dist/auth/auth.controller.js +0 -88
  199. package/dist/auth/auth.controller.js.map +0 -1
  200. package/dist/auth/auth.middleware.d.ts +0 -2
  201. package/dist/auth/auth.middleware.js +0 -25
  202. package/dist/auth/auth.middleware.js.map +0 -1
  203. package/dist/auth/auth.service.d.ts +0 -20
  204. package/dist/auth/auth.service.js +0 -144
  205. package/dist/auth/auth.service.js.map +0 -1
  206. package/dist/auth/dto/login.dto.d.ts +0 -9
  207. package/dist/auth/dto/login.dto.js.map +0 -1
  208. package/dist/cli/cli.d.ts +0 -12
  209. package/dist/cli/cli.js +0 -187
  210. package/dist/cli/cli.js.map +0 -1
  211. package/dist/cli/commands/config.command.d.ts +0 -6
  212. package/dist/cli/commands/config.command.js +0 -285
  213. package/dist/cli/commands/config.command.js.map +0 -1
  214. package/dist/cli/templates/controller.template.d.ts +0 -1
  215. package/dist/cli/templates/controller.template.js +0 -53
  216. package/dist/cli/templates/controller.template.js.map +0 -1
  217. package/dist/cli/templates/entity.template.d.ts +0 -1
  218. package/dist/cli/templates/entity.template.js +0 -24
  219. package/dist/cli/templates/entity.template.js.map +0 -1
  220. package/dist/cli/templates/repository.template.d.ts +0 -1
  221. package/dist/cli/templates/repository.template.js +0 -44
  222. package/dist/cli/templates/repository.template.js.map +0 -1
  223. package/dist/cli/templates/service.template.d.ts +0 -1
  224. package/dist/cli/templates/service.template.js +0 -44
  225. package/dist/cli/templates/service.template.js.map +0 -1
  226. package/dist/cli/utils/file-generator.d.ts +0 -9
  227. package/dist/cli/utils/file-generator.js.map +0 -1
  228. package/dist/cli/utils/logger.d.ts +0 -14
  229. package/dist/cli/utils/logger.js +0 -50
  230. package/dist/cli/utils/logger.js.map +0 -1
  231. package/dist/controllers/health.controller.d.ts +0 -13
  232. package/dist/controllers/health.controller.js +0 -51
  233. package/dist/controllers/health.controller.js.map +0 -1
  234. package/dist/core/config/config-loader.d.ts +0 -31
  235. package/dist/core/config/config-loader.js +0 -99
  236. package/dist/core/config/config-loader.js.map +0 -1
  237. package/dist/core/decorators/auth-guard.decorator.d.ts +0 -3
  238. package/dist/core/decorators/auth-guard.decorator.js +0 -19
  239. package/dist/core/decorators/auth-guard.decorator.js.map +0 -1
  240. package/dist/core/decorators/autowire.decorator.d.ts +0 -3
  241. package/dist/core/decorators/autowire.decorator.js +0 -18
  242. package/dist/core/decorators/autowire.decorator.js.map +0 -1
  243. package/dist/core/decorators/middleware.decorator.d.ts +0 -3
  244. package/dist/core/decorators/middleware.decorator.js +0 -21
  245. package/dist/core/decorators/middleware.decorator.js.map +0 -1
  246. package/dist/core/decorators/route.decorator.d.ts +0 -14
  247. package/dist/core/decorators/route.decorator.js +0 -33
  248. package/dist/core/decorators/route.decorator.js.map +0 -1
  249. package/dist/core/openai/openai-client.d.ts +0 -12
  250. package/dist/core/openai/openai-client.js +0 -94
  251. package/dist/core/openai/openai-client.js.map +0 -1
  252. package/dist/database/data-source.d.ts +0 -4
  253. package/dist/database/data-source.js +0 -27
  254. package/dist/database/data-source.js.map +0 -1
  255. package/dist/entities/session.entity.d.ts +0 -9
  256. package/dist/entities/session.entity.js +0 -46
  257. package/dist/entities/session.entity.js.map +0 -1
  258. package/dist/entities/user.entity.d.ts +0 -10
  259. package/dist/entities/user.entity.js +0 -49
  260. package/dist/entities/user.entity.js.map +0 -1
  261. package/dist/middlewares/logging.middleware.d.ts +0 -2
  262. package/dist/middlewares/logging.middleware.js +0 -29
  263. package/dist/middlewares/logging.middleware.js.map +0 -1
  264. package/dist/repositories/session.repository.d.ts +0 -9
  265. package/dist/repositories/session.repository.js +0 -51
  266. package/dist/repositories/session.repository.js.map +0 -1
  267. package/dist/repositories/user.repository.d.ts +0 -10
  268. package/dist/repositories/user.repository.js +0 -44
  269. package/dist/repositories/user.repository.js.map +0 -1
  270. package/dist/server.d.ts +0 -1
  271. package/dist/server.js +0 -31
  272. package/dist/server.js.map +0 -1
  273. package/dist/services/health.service.d.ts +0 -13
  274. package/dist/services/health.service.js +0 -45
  275. package/dist/services/health.service.js.map +0 -1
  276. package/readme.md +0 -120
  277. package/src/app.ts +0 -121
  278. package/src/auth/auth.controller.ts +0 -52
  279. package/src/auth/auth.middleware.ts +0 -27
  280. package/src/auth/auth.service.ts +0 -110
  281. package/src/auth/dto/login.dto.ts +0 -11
  282. package/src/cli/cli.ts +0 -212
  283. package/src/cli/commands/config.command.ts +0 -280
  284. package/src/cli/templates/controller.template.ts +0 -51
  285. package/src/cli/templates/entity.template.ts +0 -22
  286. package/src/cli/templates/repository.template.ts +0 -42
  287. package/src/cli/templates/service.template.ts +0 -42
  288. package/src/cli/utils/file-generator.ts +0 -37
  289. package/src/cli/utils/logger.ts +0 -52
  290. package/src/controllers/health.controller.ts +0 -24
  291. package/src/core/config/config-loader.ts +0 -98
  292. package/src/core/decorators/auth-guard.decorator.ts +0 -15
  293. package/src/core/decorators/autowire.decorator.ts +0 -18
  294. package/src/core/decorators/middleware.decorator.ts +0 -18
  295. package/src/core/decorators/route.decorator.ts +0 -33
  296. package/src/core/openai/openai-client.ts +0 -99
  297. package/src/database/data-source.ts +0 -29
  298. package/src/entities/session.entity.ts +0 -25
  299. package/src/entities/user.entity.ts +0 -27
  300. package/src/middlewares/logging.middleware.ts +0 -28
  301. package/src/repositories/session.repository.ts +0 -42
  302. package/src/repositories/user.repository.ts +0 -37
  303. package/src/server.ts +0 -32
  304. package/src/services/health.service.ts +0 -29
@@ -37,145 +37,217 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.GenerateCommand = void 0;
40
+ const fs = __importStar(require("fs-extra"));
40
41
  const path = __importStar(require("path"));
41
- const logger_1 = require("../utils/logger");
42
- const file_generator_1 = require("../utils/file-generator");
43
- const inquirer_1 = __importDefault(require("inquirer"));
44
- const controller_template_1 = require("../templates/controller.template");
45
- const entity_template_1 = require("../templates/entity.template");
46
- const repository_template_1 = require("../templates/repository.template");
47
- const service_template_1 = require("../templates/service.template");
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const ora_1 = __importDefault(require("ora"));
48
44
  class GenerateCommand {
49
- async execute(type, name) {
50
- if (!name) {
51
- const answer = await inquirer_1.default.prompt([
52
- {
53
- type: 'input',
54
- name: 'name',
55
- message: `Enter ${type} name:`,
56
- validate: (input) => {
57
- if (!input)
58
- return 'Name is required';
59
- return true;
60
- }
61
- }
62
- ]);
63
- name = answer.name;
64
- }
65
- const pascalName = file_generator_1.FileGenerator.toPascalCase(name);
66
- const kebabName = file_generator_1.FileGenerator.toKebabCase(name);
67
- switch (type) {
68
- case 'controller':
69
- await this.generateController(pascalName, kebabName);
70
- break;
71
- case 'service':
72
- await this.generateService(pascalName, kebabName);
73
- break;
74
- case 'repository':
75
- await this.generateRepository(pascalName, kebabName);
76
- break;
77
- case 'entity':
78
- await this.generateEntity(pascalName, kebabName);
79
- break;
80
- case 'resource':
81
- await this.generateResource(pascalName, kebabName);
82
- break;
83
- default:
84
- logger_1.CLILogger.error(`Unknown type: ${type}`);
85
- logger_1.CLILogger.info('Available types: controller, service, repository, entity, resource');
86
- }
45
+ static register(program) {
46
+ program
47
+ .command('generate <type> <name>')
48
+ .alias('g')
49
+ .description('Generate a new resource')
50
+ .option('--with-repository', 'Generate repository for service')
51
+ .action(async (type, name, options) => {
52
+ await GenerateCommand.execute(type, name, options);
53
+ });
87
54
  }
88
- async generateController(name, fileName) {
89
- const answers = await inquirer_1.default.prompt([
90
- {
91
- type: 'input',
92
- name: 'route',
93
- message: 'Route path:',
94
- default: `/api/${fileName}s`
55
+ static async execute(type, name, options) {
56
+ const spinner = (0, ora_1.default)();
57
+ try {
58
+ spinner.start(`Generating ${type}...`);
59
+ switch (type) {
60
+ case 'controller':
61
+ await this.generateController(name);
62
+ break;
63
+ case 'service':
64
+ await this.generateService(name, options.withRepository);
65
+ break;
66
+ case 'resource':
67
+ await this.generateResource(name);
68
+ break;
69
+ case 'entity':
70
+ await this.generateEntity(name);
71
+ break;
72
+ case 'dto':
73
+ await this.generateDto(name);
74
+ break;
75
+ case 'repository':
76
+ await this.generateRepository(name);
77
+ break;
78
+ default:
79
+ spinner.fail(`Unknown type: ${type}`);
80
+ return;
95
81
  }
96
- ]);
97
- const filePath = path.join(process.cwd(), 'src/controllers', `${fileName}.controller.ts`);
98
- if (file_generator_1.FileGenerator.fileExists(filePath)) {
99
- logger_1.CLILogger.error(`Controller ${name} already exists`);
100
- return;
82
+ spinner.succeed(`${type} generated successfully!`);
101
83
  }
102
- const content = (0, controller_template_1.controllerTemplate)(name, answers.route);
103
- file_generator_1.FileGenerator.writeFile(filePath, content);
104
- logger_1.CLILogger.success(`Controller created: src/controllers/${fileName}.controller.ts`);
105
- logger_1.CLILogger.info(`Route: ${answers.route}`);
106
- }
107
- async generateService(name, fileName) {
108
- const filePath = path.join(process.cwd(), 'src/services', `${fileName}.service.ts`);
109
- if (file_generator_1.FileGenerator.fileExists(filePath)) {
110
- logger_1.CLILogger.error(`Service ${name} already exists`);
111
- return;
112
- }
113
- const content = (0, service_template_1.serviceTemplate)(name);
114
- file_generator_1.FileGenerator.writeFile(filePath, content);
115
- logger_1.CLILogger.success(`Service created: src/services/${fileName}.service.ts`);
116
- }
117
- async generateRepository(name, fileName) {
118
- const answers = await inquirer_1.default.prompt([
119
- {
120
- type: 'input',
121
- name: 'entity',
122
- message: 'Entity name:',
123
- default: name.replace('Repository', '')
124
- }
125
- ]);
126
- const filePath = path.join(process.cwd(), 'src/repositories', `${fileName}.repository.ts`);
127
- if (file_generator_1.FileGenerator.fileExists(filePath)) {
128
- logger_1.CLILogger.error(`Repository ${name} already exists`);
129
- return;
84
+ catch (error) {
85
+ spinner.fail(`Failed to generate ${type}`);
86
+ console.error(chalk_1.default.red(error));
130
87
  }
131
- const content = (0, repository_template_1.repositoryTemplate)(name, answers.entity);
132
- file_generator_1.FileGenerator.writeFile(filePath, content);
133
- logger_1.CLILogger.success(`Repository created: src/repositories/${fileName}.repository.ts`);
134
88
  }
135
- async generateEntity(name, fileName) {
136
- const filePath = path.join(process.cwd(), 'src/entities', `${fileName}.entity.ts`);
137
- if (file_generator_1.FileGenerator.fileExists(filePath)) {
138
- logger_1.CLILogger.error(`Entity ${name} already exists`);
139
- return;
140
- }
141
- const content = (0, entity_template_1.entityTemplate)(name);
142
- file_generator_1.FileGenerator.writeFile(filePath, content);
143
- logger_1.CLILogger.success(`Entity created: src/entities/${fileName}.entity.ts`);
89
+ static async generateController(name) {
90
+ const className = this.capitalize(name) + 'Controller';
91
+ const fileName = this.kebabCase(name) + '.controller.ts';
92
+ const filePath = path.join(process.cwd(), 'src', 'controllers', fileName);
93
+ const content = `import { Controller, Get, Post, Put, Delete, Body, Param } from 'fragment-ts';
94
+
95
+ @Controller('/${this.kebabCase(name)}')
96
+ export class ${className} {
97
+ @Get()
98
+ findAll() {
99
+ return [];
100
+ }
101
+
102
+ @Get('/:id')
103
+ findOne(@Param('id') id: string) {
104
+ return { id };
105
+ }
106
+
107
+ @Post()
108
+ create(@Body() body: any) {
109
+ return body;
110
+ }
111
+
112
+ @Put('/:id')
113
+ update(@Param('id') id: string, @Body() body: any) {
114
+ return { id, ...body };
115
+ }
116
+
117
+ @Delete('/:id')
118
+ delete(@Param('id') id: string) {
119
+ return { deleted: true, id };
120
+ }
121
+ }
122
+ `;
123
+ await fs.ensureDir(path.dirname(filePath));
124
+ await fs.writeFile(filePath, content);
144
125
  }
145
- async generateResource(name, fileName) {
146
- logger_1.CLILogger.title(`🔷 Generating resource: ${name}`);
147
- const spinner = logger_1.CLILogger.spinner('Generating files...');
148
- try {
149
- // Generate entity
150
- const entityPath = path.join(process.cwd(), 'src/entities', `${fileName}.entity.ts`);
151
- file_generator_1.FileGenerator.writeFile(entityPath, (0, entity_template_1.entityTemplate)(name));
152
- spinner.text = 'Entity created...';
153
- // Generate repository
154
- const repoPath = path.join(process.cwd(), 'src/repositories', `${fileName}.repository.ts`);
155
- file_generator_1.FileGenerator.writeFile(repoPath, (0, repository_template_1.repositoryTemplate)(name + 'Repository', name));
156
- spinner.text = 'Repository created...';
157
- // Generate service
158
- const servicePath = path.join(process.cwd(), 'src/services', `${fileName}.service.ts`);
159
- file_generator_1.FileGenerator.writeFile(servicePath, (0, service_template_1.serviceTemplate)(name + 'Service'));
160
- spinner.text = 'Service created...';
161
- // Generate controller
162
- const controllerPath = path.join(process.cwd(), 'src/controllers', `${fileName}.controller.ts`);
163
- file_generator_1.FileGenerator.writeFile(controllerPath, (0, controller_template_1.controllerTemplate)(name + 'Controller', `/api/${fileName}s`));
164
- spinner.text = 'Controller created...';
165
- spinner.succeed('Resource generated successfully');
166
- logger_1.CLILogger.box('📦 Generated Files', [
167
- `Entity: src/entities/${fileName}.entity.ts`,
168
- `Repository: src/repositories/${fileName}.repository.ts`,
169
- `Service: src/services/${fileName}.service.ts`,
170
- `Controller: src/controllers/${fileName}.controller.ts`
171
- ]);
172
- logger_1.CLILogger.info(`\nRoute available at: /api/${fileName}s`);
126
+ static async generateService(name, withRepository) {
127
+ const className = this.capitalize(name) + 'Service';
128
+ const fileName = this.kebabCase(name) + '.service.ts';
129
+ const filePath = path.join(process.cwd(), 'src', 'services', fileName);
130
+ let imports = "import { Service } from 'fragment-ts';\n";
131
+ let repositoryProp = '';
132
+ if (withRepository) {
133
+ const repoName = this.capitalize(name) + 'Repository';
134
+ imports += `import { ${repoName} } from '../repositories/${this.kebabCase(name)}.repository';\n`;
135
+ repositoryProp = `\n constructor(private ${this.camelCase(name)}Repository: ${repoName}) {}\n`;
173
136
  }
174
- catch (error) {
175
- spinner.fail('Failed to generate resource');
176
- logger_1.CLILogger.error(error.message);
137
+ const content = `${imports}
138
+ @Service()
139
+ export class ${className} {${repositoryProp}
140
+ async findAll() {
141
+ return [];
142
+ }
143
+
144
+ async findOne(id: string) {
145
+ return { id };
146
+ }
147
+
148
+ async create(data: any) {
149
+ return data;
150
+ }
151
+
152
+ async update(id: string, data: any) {
153
+ return { id, ...data };
154
+ }
155
+
156
+ async delete(id: string) {
157
+ return { deleted: true, id };
158
+ }
159
+ }
160
+ `;
161
+ await fs.ensureDir(path.dirname(filePath));
162
+ await fs.writeFile(filePath, content);
163
+ if (withRepository) {
164
+ await this.generateRepository(name);
177
165
  }
178
166
  }
167
+ static async generateResource(name) {
168
+ await this.generateController(name);
169
+ await this.generateService(name, true);
170
+ await this.generateEntity(name);
171
+ await this.generateDto(name);
172
+ }
173
+ static async generateEntity(name) {
174
+ const className = this.capitalize(name);
175
+ const fileName = this.kebabCase(name) + '.entity.ts';
176
+ const filePath = path.join(process.cwd(), 'src', 'entities', fileName);
177
+ const content = `import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
178
+
179
+ @Entity()
180
+ export class ${className} {
181
+ @PrimaryGeneratedColumn()
182
+ id: number;
183
+
184
+ @Column()
185
+ name: string;
186
+
187
+ @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
188
+ createdAt: Date;
189
+
190
+ @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP' })
191
+ updatedAt: Date;
192
+ }
193
+ `;
194
+ await fs.ensureDir(path.dirname(filePath));
195
+ await fs.writeFile(filePath, content);
196
+ }
197
+ static async generateDto(name) {
198
+ const className = 'Create' + this.capitalize(name) + 'Dto';
199
+ const fileName = 'create-' + this.kebabCase(name) + '.dto.ts';
200
+ const filePath = path.join(process.cwd(), 'src', 'dto', fileName);
201
+ const content = `export class ${className} {
202
+ name: string;
203
+ }
204
+ `;
205
+ await fs.ensureDir(path.dirname(filePath));
206
+ await fs.writeFile(filePath, content);
207
+ }
208
+ static async generateRepository(name) {
209
+ const className = this.capitalize(name) + 'Repository';
210
+ const entityName = this.capitalize(name);
211
+ const fileName = this.kebabCase(name) + '.repository.ts';
212
+ const filePath = path.join(process.cwd(), 'src', 'repositories', fileName);
213
+ const content = `import { Repository } from 'fragment-ts';
214
+ import { ${entityName} } from '../entities/${this.kebabCase(name)}.entity';
215
+
216
+ @Repository()
217
+ export class ${className} {
218
+ async findAll(): Promise<${entityName}[]> {
219
+ return [];
220
+ }
221
+
222
+ async findById(id: number): Promise<${entityName} | null> {
223
+ return null;
224
+ }
225
+
226
+ async create(data: Partial<${entityName}>): Promise<${entityName}> {
227
+ return data as ${entityName};
228
+ }
229
+
230
+ async update(id: number, data: Partial<${entityName}>): Promise<${entityName} | null> {
231
+ return null;
232
+ }
233
+
234
+ async delete(id: number): Promise<boolean> {
235
+ return true;
236
+ }
237
+ }
238
+ `;
239
+ await fs.ensureDir(path.dirname(filePath));
240
+ await fs.writeFile(filePath, content);
241
+ }
242
+ static capitalize(str) {
243
+ return str.charAt(0).toUpperCase() + str.slice(1);
244
+ }
245
+ static kebabCase(str) {
246
+ return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
247
+ }
248
+ static camelCase(str) {
249
+ return str.charAt(0).toLowerCase() + str.slice(1);
250
+ }
179
251
  }
180
252
  exports.GenerateCommand = GenerateCommand;
181
253
  //# sourceMappingURL=generate.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.command.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.command.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.command.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
+ import { Command } from "commander";
1
2
  export declare class InitCommand {
2
- execute(projectName?: string): Promise<void>;
3
- private getDatabaseConfig;
4
- private getEnvTemplate;
5
- private generateReadme;
6
- private copyFrameworkCore;
3
+ static register(program: Command): void;
4
+ static execute(directory: string, options: any): Promise<void>;
5
+ private static generateProjectStructure;
6
+ private static createConfigFiles;
7
+ private static generateMainFile;
8
+ private static generateExampleController;
9
+ private static generateExampleService;
10
+ private static generateExampleEntity;
11
+ private static generateAuthFiles;
7
12
  }
13
+ //# sourceMappingURL=init.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBAyCxB,iBAAiB;mBAwFjB,gBAAgB;mBA+BhB,yBAAyB;mBAoBzB,sBAAsB;mBAmBtB,qBAAqB;mBA2BrB,iBAAiB;CA8CvC"}