typescript-express-starter 10.2.1 → 11.0.0

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 (607) hide show
  1. package/README.kr.md +136 -287
  2. package/README.md +134 -274
  3. package/bin/ast-utils.js +226 -0
  4. package/bin/common.js +312 -0
  5. package/bin/config.js +80 -0
  6. package/bin/db-map.js +169 -0
  7. package/bin/errors.js +129 -0
  8. package/bin/performance.js +203 -0
  9. package/bin/starter.js +359 -0
  10. package/bin/validators.js +146 -0
  11. package/devtools/biome/.biome.json +34 -0
  12. package/devtools/biome/.biomeignore +29 -0
  13. package/devtools/docker/.dockerignore +27 -0
  14. package/devtools/docker/Dockerfile.dev +20 -0
  15. package/devtools/docker/Dockerfile.prod +35 -0
  16. package/{lib/default → devtools/docker}/Makefile +3 -0
  17. package/devtools/docker/nginx.conf +67 -0
  18. package/devtools/eslint/eslint.config.cjs +23 -0
  19. package/devtools/husky/.husky/commit-msg +4 -0
  20. package/devtools/husky/.husky/pre-commit +4 -0
  21. package/devtools/husky/.husky/pre-push +4 -0
  22. package/devtools/jest/jest.config.cjs +2 -0
  23. package/devtools/jest/jest.config.ts +25 -0
  24. package/devtools/jest/src/test/e2e/auth.e2e.spec.ts +40 -0
  25. package/devtools/jest/src/test/e2e/users.e2e.spec.ts +63 -0
  26. package/devtools/jest/src/test/setup.ts +31 -0
  27. package/devtools/jest/src/test/unit/entities/user.entity.spec.ts +279 -0
  28. package/devtools/jest/src/test/unit/services/auth.service.spec.ts +75 -0
  29. package/devtools/jest/src/test/unit/services/users.service.spec.ts +109 -0
  30. package/devtools/oxlint/.oxlintrc.json +57 -0
  31. package/devtools/pm2/ecosystem.config.js +59 -0
  32. package/devtools/swagger/swagger.yaml +124 -0
  33. package/{lib/prisma → devtools/swc}/.swcrc +2 -1
  34. package/devtools/tsup/tsup.config.ts +15 -0
  35. package/devtools/vitest/src/test/e2e/auth.e2e.spec.ts +41 -0
  36. package/devtools/vitest/src/test/e2e/users.e2e.spec.ts +64 -0
  37. package/devtools/vitest/src/test/setup.ts +31 -0
  38. package/devtools/vitest/src/test/unit/services/auth.service.spec.ts +70 -0
  39. package/devtools/vitest/src/test/unit/services/users.service.spec.ts +90 -0
  40. package/devtools/vitest/vitest.config.ts +22 -0
  41. package/package.json +24 -11
  42. package/templates/default/nodemon.json +7 -0
  43. package/templates/default/package.json +48 -0
  44. package/templates/default/src/app.ts +118 -0
  45. package/templates/default/src/config/env.ts +78 -0
  46. package/templates/default/src/controllers/auth.controller.ts +40 -0
  47. package/templates/default/src/controllers/users.controller.ts +46 -0
  48. package/templates/default/src/dtos/users.dto.ts +42 -0
  49. package/templates/default/src/entities/user.entity.ts +190 -0
  50. package/templates/default/src/exceptions/httpException.ts +14 -0
  51. package/{lib/knex → templates/default}/src/interfaces/auth.interface.ts +3 -3
  52. package/templates/default/src/interfaces/users.interface.ts +9 -0
  53. package/templates/default/src/middlewares/auth.middleware.ts +49 -0
  54. package/templates/default/src/middlewares/error.middleware.ts +89 -0
  55. package/templates/default/src/middlewares/notFound.middleware.ts +6 -0
  56. package/templates/default/src/middlewares/validation.middleware.ts +15 -0
  57. package/templates/default/src/repositories/users.repository.ts +55 -0
  58. package/templates/default/src/routes/auth.route.ts +31 -0
  59. package/templates/default/src/routes/users.route.ts +32 -0
  60. package/templates/default/src/server.ts +35 -0
  61. package/templates/default/src/services/auth.service.ts +67 -0
  62. package/templates/default/src/services/users.service.ts +48 -0
  63. package/templates/default/src/utils/asyncHandler.ts +8 -0
  64. package/templates/default/src/utils/logger.ts +113 -0
  65. package/{lib/typeorm → templates/default}/tsconfig.json +23 -22
  66. package/CONTRIBUTORS.md +0 -69
  67. package/bin/cli.js +0 -18
  68. package/lib/default/.dockerignore +0 -18
  69. package/lib/default/.editorconfig +0 -9
  70. package/lib/default/.env.development.local +0 -13
  71. package/lib/default/.env.production.local +0 -13
  72. package/lib/default/.env.test.local +0 -13
  73. package/lib/default/.eslintignore +0 -1
  74. package/lib/default/.eslintrc +0 -18
  75. package/lib/default/.huskyrc +0 -5
  76. package/lib/default/.lintstagedrc.json +0 -5
  77. package/lib/default/.prettierrc +0 -8
  78. package/lib/default/.swcrc +0 -39
  79. package/lib/default/.vscode/launch.json +0 -35
  80. package/lib/default/.vscode/settings.json +0 -6
  81. package/lib/default/Dockerfile.dev +0 -18
  82. package/lib/default/Dockerfile.prod +0 -18
  83. package/lib/default/docker-compose.yml +0 -35
  84. package/lib/default/ecosystem.config.js +0 -57
  85. package/lib/default/jest.config.js +0 -12
  86. package/lib/default/nginx.conf +0 -40
  87. package/lib/default/nodemon.json +0 -12
  88. package/lib/default/package.json +0 -76
  89. package/lib/default/src/app.ts +0 -81
  90. package/lib/default/src/config/index.ts +0 -5
  91. package/lib/default/src/controllers/auth.controller.ts +0 -44
  92. package/lib/default/src/controllers/users.controller.ts +0 -63
  93. package/lib/default/src/dtos/users.dto.ts +0 -20
  94. package/lib/default/src/exceptions/HttpException.ts +0 -10
  95. package/lib/default/src/http/auth.http +0 -27
  96. package/lib/default/src/http/users.http +0 -34
  97. package/lib/default/src/interfaces/auth.interface.ts +0 -15
  98. package/lib/default/src/interfaces/users.interface.ts +0 -5
  99. package/lib/default/src/middlewares/auth.middleware.ts +0 -38
  100. package/lib/default/src/middlewares/error.middleware.ts +0 -15
  101. package/lib/default/src/middlewares/validation.middleware.ts +0 -27
  102. package/lib/default/src/models/users.model.ts +0 -9
  103. package/lib/default/src/routes/auth.route.ts +0 -21
  104. package/lib/default/src/routes/users.route.ts +0 -23
  105. package/lib/default/src/server.ts +0 -10
  106. package/lib/default/src/services/auth.service.ts +0 -52
  107. package/lib/default/src/services/users.service.ts +0 -51
  108. package/lib/default/src/test/auth.test.ts +0 -52
  109. package/lib/default/src/test/users.test.ts +0 -62
  110. package/lib/default/src/utils/logger.ts +0 -65
  111. package/lib/default/src/utils/validateEnv.ts +0 -8
  112. package/lib/default/swagger.yaml +0 -123
  113. package/lib/default/tsconfig.json +0 -39
  114. package/lib/graphql/.dockerignore +0 -18
  115. package/lib/graphql/.editorconfig +0 -9
  116. package/lib/graphql/.env.development.local +0 -20
  117. package/lib/graphql/.env.production.local +0 -20
  118. package/lib/graphql/.env.test.local +0 -20
  119. package/lib/graphql/.eslintignore +0 -1
  120. package/lib/graphql/.eslintrc +0 -18
  121. package/lib/graphql/.huskyrc +0 -5
  122. package/lib/graphql/.lintstagedrc.json +0 -5
  123. package/lib/graphql/.prettierrc +0 -8
  124. package/lib/graphql/.swcrc +0 -40
  125. package/lib/graphql/.vscode/launch.json +0 -35
  126. package/lib/graphql/.vscode/settings.json +0 -6
  127. package/lib/graphql/Dockerfile.dev +0 -19
  128. package/lib/graphql/Dockerfile.prod +0 -19
  129. package/lib/graphql/Makefile +0 -46
  130. package/lib/graphql/docker-compose.yml +0 -58
  131. package/lib/graphql/ecosystem.config.js +0 -59
  132. package/lib/graphql/jest.config.js +0 -12
  133. package/lib/graphql/nginx.conf +0 -40
  134. package/lib/graphql/nodemon.json +0 -12
  135. package/lib/graphql/package.json +0 -75
  136. package/lib/graphql/src/app.ts +0 -107
  137. package/lib/graphql/src/config/index.ts +0 -6
  138. package/lib/graphql/src/database/index.ts +0 -26
  139. package/lib/graphql/src/dtos/users.dto.ts +0 -27
  140. package/lib/graphql/src/entities/users.entity.ts +0 -26
  141. package/lib/graphql/src/exceptions/HttpException.ts +0 -10
  142. package/lib/graphql/src/http/auth.http +0 -49
  143. package/lib/graphql/src/http/users.http +0 -78
  144. package/lib/graphql/src/interfaces/auth.interface.ts +0 -14
  145. package/lib/graphql/src/interfaces/users.interface.ts +0 -5
  146. package/lib/graphql/src/middlewares/auth.middleware.ts +0 -42
  147. package/lib/graphql/src/middlewares/error.middleware.ts +0 -15
  148. package/lib/graphql/src/repositories/auth.repository.ts +0 -53
  149. package/lib/graphql/src/repositories/users.repository.ts +0 -51
  150. package/lib/graphql/src/resolvers/auth.resolver.ts +0 -32
  151. package/lib/graphql/src/resolvers/users.resolver.ts +0 -47
  152. package/lib/graphql/src/server.ts +0 -10
  153. package/lib/graphql/src/test/auth.test.ts +0 -10
  154. package/lib/graphql/src/test/users.test.ts +0 -11
  155. package/lib/graphql/src/typedefs/users.type.ts +0 -13
  156. package/lib/graphql/src/utils/logger.ts +0 -77
  157. package/lib/graphql/src/utils/validateEnv.ts +0 -8
  158. package/lib/graphql/tsconfig.json +0 -40
  159. package/lib/knex/.dockerignore +0 -18
  160. package/lib/knex/.editorconfig +0 -9
  161. package/lib/knex/.env.development.local +0 -20
  162. package/lib/knex/.env.production.local +0 -20
  163. package/lib/knex/.env.test.local +0 -20
  164. package/lib/knex/.eslintignore +0 -1
  165. package/lib/knex/.eslintrc +0 -18
  166. package/lib/knex/.huskyrc +0 -5
  167. package/lib/knex/.lintstagedrc.json +0 -5
  168. package/lib/knex/.prettierrc +0 -8
  169. package/lib/knex/.swcrc +0 -40
  170. package/lib/knex/.vscode/launch.json +0 -35
  171. package/lib/knex/.vscode/settings.json +0 -6
  172. package/lib/knex/Dockerfile.dev +0 -19
  173. package/lib/knex/Dockerfile.prod +0 -19
  174. package/lib/knex/Makefile +0 -46
  175. package/lib/knex/docker-compose.yml +0 -55
  176. package/lib/knex/ecosystem.config.js +0 -57
  177. package/lib/knex/jest.config.js +0 -12
  178. package/lib/knex/knexfile.ts +0 -23
  179. package/lib/knex/nginx.conf +0 -40
  180. package/lib/knex/nodemon.json +0 -12
  181. package/lib/knex/package.json +0 -85
  182. package/lib/knex/src/app.ts +0 -87
  183. package/lib/knex/src/config/index.ts +0 -6
  184. package/lib/knex/src/controllers/auth.controller.ts +0 -44
  185. package/lib/knex/src/controllers/users.controller.ts +0 -63
  186. package/lib/knex/src/database/index.ts +0 -24
  187. package/lib/knex/src/database/migrations/.gitkeep +0 -0
  188. package/lib/knex/src/database/migrations/20210713110926_initial.ts +0 -17
  189. package/lib/knex/src/database/seeds/.gitkeep +0 -0
  190. package/lib/knex/src/dtos/users.dto.ts +0 -20
  191. package/lib/knex/src/exceptions/HttpException.ts +0 -10
  192. package/lib/knex/src/http/auth.http +0 -27
  193. package/lib/knex/src/http/users.http +0 -34
  194. package/lib/knex/src/interfaces/routes.interface.ts +0 -6
  195. package/lib/knex/src/interfaces/users.interface.ts +0 -5
  196. package/lib/knex/src/middlewares/auth.middleware.ts +0 -40
  197. package/lib/knex/src/middlewares/error.middleware.ts +0 -15
  198. package/lib/knex/src/middlewares/validation.middleware.ts +0 -27
  199. package/lib/knex/src/models/users.model.ts +0 -13
  200. package/lib/knex/src/routes/auth.route.ts +0 -22
  201. package/lib/knex/src/routes/users.route.ts +0 -23
  202. package/lib/knex/src/server.ts +0 -10
  203. package/lib/knex/src/services/auth.service.ts +0 -60
  204. package/lib/knex/src/services/users.service.ts +0 -55
  205. package/lib/knex/src/test/auth.test.ts +0 -51
  206. package/lib/knex/src/test/users.test.ts +0 -65
  207. package/lib/knex/src/utils/logger.ts +0 -65
  208. package/lib/knex/src/utils/validateEnv.ts +0 -8
  209. package/lib/knex/swagger.yaml +0 -123
  210. package/lib/knex/tsconfig.json +0 -40
  211. package/lib/mikro-orm/.dockerignore +0 -18
  212. package/lib/mikro-orm/.editorconfig +0 -9
  213. package/lib/mikro-orm/.env.development.local +0 -18
  214. package/lib/mikro-orm/.env.production.local +0 -18
  215. package/lib/mikro-orm/.env.test.local +0 -18
  216. package/lib/mikro-orm/.eslintignore +0 -1
  217. package/lib/mikro-orm/.eslintrc +0 -18
  218. package/lib/mikro-orm/.huskyrc +0 -5
  219. package/lib/mikro-orm/.lintstagedrc.json +0 -5
  220. package/lib/mikro-orm/.prettierrc +0 -8
  221. package/lib/mikro-orm/.swcrc +0 -41
  222. package/lib/mikro-orm/.vscode/launch.json +0 -35
  223. package/lib/mikro-orm/.vscode/settings.json +0 -6
  224. package/lib/mikro-orm/Dockerfile.dev +0 -19
  225. package/lib/mikro-orm/Dockerfile.prod +0 -19
  226. package/lib/mikro-orm/Makefile +0 -46
  227. package/lib/mikro-orm/docker-compose.yml +0 -55
  228. package/lib/mikro-orm/ecosystem.config.js +0 -57
  229. package/lib/mikro-orm/jest.config.js +0 -12
  230. package/lib/mikro-orm/nginx.conf +0 -40
  231. package/lib/mikro-orm/nodemon.json +0 -12
  232. package/lib/mikro-orm/package.json +0 -79
  233. package/lib/mikro-orm/src/app.ts +0 -97
  234. package/lib/mikro-orm/src/config/index.ts +0 -6
  235. package/lib/mikro-orm/src/controllers/auth.controller.ts +0 -44
  236. package/lib/mikro-orm/src/controllers/users.controller.ts +0 -63
  237. package/lib/mikro-orm/src/database/index.ts +0 -19
  238. package/lib/mikro-orm/src/dtos/users.dto.ts +0 -20
  239. package/lib/mikro-orm/src/entities/base.entity.ts +0 -16
  240. package/lib/mikro-orm/src/entities/users.entity.ts +0 -17
  241. package/lib/mikro-orm/src/exceptions/HttpException.ts +0 -10
  242. package/lib/mikro-orm/src/http/auth.http +0 -32
  243. package/lib/mikro-orm/src/http/users.http +0 -34
  244. package/lib/mikro-orm/src/interfaces/auth.interface.ts +0 -15
  245. package/lib/mikro-orm/src/interfaces/routes.interface.ts +0 -6
  246. package/lib/mikro-orm/src/interfaces/users.interface.ts +0 -5
  247. package/lib/mikro-orm/src/middlewares/auth.middleware.ts +0 -39
  248. package/lib/mikro-orm/src/middlewares/error.middleware.ts +0 -15
  249. package/lib/mikro-orm/src/middlewares/validation.middleware.ts +0 -27
  250. package/lib/mikro-orm/src/routes/auth.route.ts +0 -22
  251. package/lib/mikro-orm/src/routes/users.route.ts +0 -23
  252. package/lib/mikro-orm/src/server.ts +0 -10
  253. package/lib/mikro-orm/src/services/auth.service.ts +0 -53
  254. package/lib/mikro-orm/src/services/users.service.ts +0 -60
  255. package/lib/mikro-orm/src/test/auth.test.ts +0 -65
  256. package/lib/mikro-orm/src/test/users.test.ts +0 -69
  257. package/lib/mikro-orm/src/utils/logger.ts +0 -65
  258. package/lib/mikro-orm/src/utils/validateEnv.ts +0 -8
  259. package/lib/mikro-orm/swagger.yaml +0 -122
  260. package/lib/mikro-orm/tsconfig.json +0 -41
  261. package/lib/mongoose/.dockerignore +0 -18
  262. package/lib/mongoose/.editorconfig +0 -9
  263. package/lib/mongoose/.env.development.local +0 -18
  264. package/lib/mongoose/.env.production.local +0 -18
  265. package/lib/mongoose/.env.test.local +0 -18
  266. package/lib/mongoose/.eslintignore +0 -1
  267. package/lib/mongoose/.eslintrc +0 -18
  268. package/lib/mongoose/.huskyrc +0 -5
  269. package/lib/mongoose/.lintstagedrc.json +0 -5
  270. package/lib/mongoose/.prettierrc +0 -8
  271. package/lib/mongoose/.swcrc +0 -40
  272. package/lib/mongoose/.vscode/launch.json +0 -35
  273. package/lib/mongoose/.vscode/settings.json +0 -6
  274. package/lib/mongoose/Dockerfile.dev +0 -19
  275. package/lib/mongoose/Dockerfile.prod +0 -19
  276. package/lib/mongoose/Makefile +0 -46
  277. package/lib/mongoose/docker-compose.yml +0 -55
  278. package/lib/mongoose/ecosystem.config.js +0 -57
  279. package/lib/mongoose/jest.config.js +0 -12
  280. package/lib/mongoose/nginx.conf +0 -40
  281. package/lib/mongoose/nodemon.json +0 -12
  282. package/lib/mongoose/package.json +0 -78
  283. package/lib/mongoose/src/app.ts +0 -87
  284. package/lib/mongoose/src/config/index.ts +0 -6
  285. package/lib/mongoose/src/controllers/auth.controller.ts +0 -44
  286. package/lib/mongoose/src/controllers/users.controller.ts +0 -63
  287. package/lib/mongoose/src/database/index.ts +0 -18
  288. package/lib/mongoose/src/dtos/users.dto.ts +0 -20
  289. package/lib/mongoose/src/exceptions/HttpException.ts +0 -10
  290. package/lib/mongoose/src/http/auth.http +0 -27
  291. package/lib/mongoose/src/http/users.http +0 -34
  292. package/lib/mongoose/src/interfaces/auth.interface.ts +0 -15
  293. package/lib/mongoose/src/interfaces/routes.interface.ts +0 -6
  294. package/lib/mongoose/src/interfaces/users.interface.ts +0 -5
  295. package/lib/mongoose/src/middlewares/auth.middleware.ts +0 -39
  296. package/lib/mongoose/src/middlewares/error.middleware.ts +0 -15
  297. package/lib/mongoose/src/middlewares/validation.middleware.ts +0 -27
  298. package/lib/mongoose/src/models/users.model.ts +0 -16
  299. package/lib/mongoose/src/routes/auth.route.ts +0 -22
  300. package/lib/mongoose/src/routes/users.route.ts +0 -23
  301. package/lib/mongoose/src/server.ts +0 -10
  302. package/lib/mongoose/src/services/auth.service.ts +0 -52
  303. package/lib/mongoose/src/services/users.service.ts +0 -54
  304. package/lib/mongoose/src/test/auth.test.ts +0 -83
  305. package/lib/mongoose/src/test/index.test.ts +0 -18
  306. package/lib/mongoose/src/test/users.test.ts +0 -133
  307. package/lib/mongoose/src/utils/logger.ts +0 -65
  308. package/lib/mongoose/src/utils/validateEnv.ts +0 -8
  309. package/lib/mongoose/swagger.yaml +0 -120
  310. package/lib/mongoose/tsconfig.json +0 -40
  311. package/lib/node-postgres/.dockerignore +0 -18
  312. package/lib/node-postgres/.editorconfig +0 -9
  313. package/lib/node-postgres/.env.development.local +0 -20
  314. package/lib/node-postgres/.env.production.local +0 -20
  315. package/lib/node-postgres/.env.test.local +0 -20
  316. package/lib/node-postgres/.eslintignore +0 -1
  317. package/lib/node-postgres/.eslintrc +0 -18
  318. package/lib/node-postgres/.huskyrc +0 -5
  319. package/lib/node-postgres/.lintstagedrc.json +0 -5
  320. package/lib/node-postgres/.prettierrc +0 -8
  321. package/lib/node-postgres/.swcrc +0 -38
  322. package/lib/node-postgres/.vscode/launch.json +0 -35
  323. package/lib/node-postgres/.vscode/settings.json +0 -6
  324. package/lib/node-postgres/Dockerfile.dev +0 -17
  325. package/lib/node-postgres/Dockerfile.prod +0 -17
  326. package/lib/node-postgres/Makefile +0 -46
  327. package/lib/node-postgres/docker-compose.yml +0 -61
  328. package/lib/node-postgres/ecosystem.config.js +0 -57
  329. package/lib/node-postgres/jest.config.js +0 -12
  330. package/lib/node-postgres/nginx.conf +0 -40
  331. package/lib/node-postgres/nodemon.json +0 -12
  332. package/lib/node-postgres/package.json +0 -78
  333. package/lib/node-postgres/src/app.ts +0 -81
  334. package/lib/node-postgres/src/config/index.ts +0 -6
  335. package/lib/node-postgres/src/controllers/auth.controller.ts +0 -44
  336. package/lib/node-postgres/src/controllers/users.controller.ts +0 -63
  337. package/lib/node-postgres/src/database/index.ts +0 -10
  338. package/lib/node-postgres/src/database/init.sql +0 -13
  339. package/lib/node-postgres/src/dtos/users.dto.ts +0 -20
  340. package/lib/node-postgres/src/exceptions/httpException.ts +0 -10
  341. package/lib/node-postgres/src/http/auth.http +0 -27
  342. package/lib/node-postgres/src/http/users.http +0 -34
  343. package/lib/node-postgres/src/interfaces/auth.interface.ts +0 -15
  344. package/lib/node-postgres/src/interfaces/routes.interface.ts +0 -6
  345. package/lib/node-postgres/src/interfaces/users.interface.ts +0 -5
  346. package/lib/node-postgres/src/middlewares/auth.middleware.ts +0 -46
  347. package/lib/node-postgres/src/middlewares/error.middleware.ts +0 -15
  348. package/lib/node-postgres/src/middlewares/validation.middleware.ts +0 -27
  349. package/lib/node-postgres/src/routes/auth.route.ts +0 -21
  350. package/lib/node-postgres/src/routes/users.route.ts +0 -23
  351. package/lib/node-postgres/src/server.ts +0 -10
  352. package/lib/node-postgres/src/services/auth.service.ts +0 -103
  353. package/lib/node-postgres/src/services/users.service.ts +0 -133
  354. package/lib/node-postgres/src/test/auth.test.ts +0 -57
  355. package/lib/node-postgres/src/test/users.test.ts +0 -72
  356. package/lib/node-postgres/src/utils/logger.ts +0 -65
  357. package/lib/node-postgres/src/utils/validateEnv.ts +0 -8
  358. package/lib/node-postgres/swagger.yaml +0 -123
  359. package/lib/node-postgres/tsconfig.json +0 -39
  360. package/lib/prisma/.dockerignore +0 -18
  361. package/lib/prisma/.editorconfig +0 -9
  362. package/lib/prisma/.env.development.local +0 -16
  363. package/lib/prisma/.env.production.local +0 -16
  364. package/lib/prisma/.env.test.local +0 -16
  365. package/lib/prisma/.eslintignore +0 -1
  366. package/lib/prisma/.eslintrc +0 -18
  367. package/lib/prisma/.huskyrc +0 -5
  368. package/lib/prisma/.lintstagedrc.json +0 -5
  369. package/lib/prisma/.prettierrc +0 -8
  370. package/lib/prisma/.vscode/launch.json +0 -35
  371. package/lib/prisma/.vscode/settings.json +0 -6
  372. package/lib/prisma/Dockerfile.dev +0 -19
  373. package/lib/prisma/Dockerfile.prod +0 -19
  374. package/lib/prisma/Makefile +0 -46
  375. package/lib/prisma/docker-compose.yml +0 -51
  376. package/lib/prisma/ecosystem.config.js +0 -57
  377. package/lib/prisma/jest.config.js +0 -12
  378. package/lib/prisma/nginx.conf +0 -40
  379. package/lib/prisma/nodemon.json +0 -12
  380. package/lib/prisma/package.json +0 -84
  381. package/lib/prisma/src/app.ts +0 -81
  382. package/lib/prisma/src/config/index.ts +0 -5
  383. package/lib/prisma/src/controllers/auth.controller.ts +0 -44
  384. package/lib/prisma/src/controllers/users.controller.ts +0 -63
  385. package/lib/prisma/src/dtos/users.dto.ts +0 -20
  386. package/lib/prisma/src/exceptions/HttpException.ts +0 -10
  387. package/lib/prisma/src/http/auth.http +0 -27
  388. package/lib/prisma/src/http/users.http +0 -34
  389. package/lib/prisma/src/interfaces/auth.interface.ts +0 -15
  390. package/lib/prisma/src/interfaces/routes.interface.ts +0 -6
  391. package/lib/prisma/src/interfaces/users.interface.ts +0 -5
  392. package/lib/prisma/src/middlewares/auth.middleware.ts +0 -39
  393. package/lib/prisma/src/middlewares/error.middleware.ts +0 -15
  394. package/lib/prisma/src/middlewares/validation.middleware.ts +0 -27
  395. package/lib/prisma/src/prisma/migrations/20210314081925_initial/migration.sql +0 -9
  396. package/lib/prisma/src/prisma/migrations/migration_lock.toml +0 -3
  397. package/lib/prisma/src/prisma/schema.prisma +0 -17
  398. package/lib/prisma/src/routes/auth.route.ts +0 -22
  399. package/lib/prisma/src/routes/users.route.ts +0 -23
  400. package/lib/prisma/src/server.ts +0 -10
  401. package/lib/prisma/src/services/auth.service.ts +0 -56
  402. package/lib/prisma/src/services/users.service.ts +0 -49
  403. package/lib/prisma/src/test/auth.test.ts +0 -81
  404. package/lib/prisma/src/test/index.test.ts +0 -18
  405. package/lib/prisma/src/test/users.test.ts +0 -134
  406. package/lib/prisma/src/utils/logger.ts +0 -65
  407. package/lib/prisma/src/utils/validateEnv.ts +0 -8
  408. package/lib/prisma/swagger.yaml +0 -123
  409. package/lib/prisma/tsconfig.json +0 -38
  410. package/lib/routing-controllers/.dockerignore +0 -18
  411. package/lib/routing-controllers/.editorconfig +0 -9
  412. package/lib/routing-controllers/.env.development.local +0 -13
  413. package/lib/routing-controllers/.env.production.local +0 -13
  414. package/lib/routing-controllers/.env.test.local +0 -13
  415. package/lib/routing-controllers/.eslintignore +0 -1
  416. package/lib/routing-controllers/.eslintrc +0 -18
  417. package/lib/routing-controllers/.huskyrc +0 -5
  418. package/lib/routing-controllers/.lintstagedrc.json +0 -5
  419. package/lib/routing-controllers/.prettierrc +0 -8
  420. package/lib/routing-controllers/.swcrc +0 -38
  421. package/lib/routing-controllers/.vscode/launch.json +0 -35
  422. package/lib/routing-controllers/.vscode/settings.json +0 -6
  423. package/lib/routing-controllers/Dockerfile.dev +0 -19
  424. package/lib/routing-controllers/Dockerfile.prod +0 -19
  425. package/lib/routing-controllers/Makefile +0 -42
  426. package/lib/routing-controllers/docker-compose.yml +0 -35
  427. package/lib/routing-controllers/ecosystem.config.js +0 -57
  428. package/lib/routing-controllers/jest.config.js +0 -12
  429. package/lib/routing-controllers/nginx.conf +0 -40
  430. package/lib/routing-controllers/nodemon.json +0 -12
  431. package/lib/routing-controllers/package.json +0 -77
  432. package/lib/routing-controllers/src/app.ts +0 -101
  433. package/lib/routing-controllers/src/config/index.ts +0 -5
  434. package/lib/routing-controllers/src/controllers/auth.controller.ts +0 -41
  435. package/lib/routing-controllers/src/controllers/users.controller.ts +0 -51
  436. package/lib/routing-controllers/src/dtos/users.dto.ts +0 -20
  437. package/lib/routing-controllers/src/exceptions/HttpException.ts +0 -12
  438. package/lib/routing-controllers/src/http/auth.http +0 -27
  439. package/lib/routing-controllers/src/http/users.http +0 -34
  440. package/lib/routing-controllers/src/interfaces/auth.interface.ts +0 -15
  441. package/lib/routing-controllers/src/interfaces/users.interface.ts +0 -5
  442. package/lib/routing-controllers/src/middlewares/auth.middleware.ts +0 -38
  443. package/lib/routing-controllers/src/middlewares/error.middleware.ts +0 -15
  444. package/lib/routing-controllers/src/middlewares/validation.middleware.ts +0 -27
  445. package/lib/routing-controllers/src/models/users.model.ts +0 -9
  446. package/lib/routing-controllers/src/server.ts +0 -9
  447. package/lib/routing-controllers/src/services/auth.service.ts +0 -53
  448. package/lib/routing-controllers/src/services/users.service.ts +0 -52
  449. package/lib/routing-controllers/src/test/auth.test.ts +0 -49
  450. package/lib/routing-controllers/src/test/users.test.ts +0 -65
  451. package/lib/routing-controllers/src/utils/logger.ts +0 -65
  452. package/lib/routing-controllers/src/utils/validateEnv.ts +0 -8
  453. package/lib/routing-controllers/tsconfig.json +0 -38
  454. package/lib/sequelize/.dockerignore +0 -18
  455. package/lib/sequelize/.editorconfig +0 -9
  456. package/lib/sequelize/.env.development.local +0 -20
  457. package/lib/sequelize/.env.production.local +0 -20
  458. package/lib/sequelize/.env.test.local +0 -20
  459. package/lib/sequelize/.eslintignore +0 -1
  460. package/lib/sequelize/.eslintrc +0 -18
  461. package/lib/sequelize/.huskyrc +0 -5
  462. package/lib/sequelize/.lintstagedrc.json +0 -5
  463. package/lib/sequelize/.prettierrc +0 -8
  464. package/lib/sequelize/.sequelizerc +0 -8
  465. package/lib/sequelize/.swcrc +0 -40
  466. package/lib/sequelize/.vscode/launch.json +0 -35
  467. package/lib/sequelize/.vscode/settings.json +0 -6
  468. package/lib/sequelize/Dockerfile.dev +0 -23
  469. package/lib/sequelize/Dockerfile.prod +0 -23
  470. package/lib/sequelize/Makefile +0 -46
  471. package/lib/sequelize/docker-compose.yml +0 -55
  472. package/lib/sequelize/docker-entrypoint.sh +0 -5
  473. package/lib/sequelize/ecosystem.config.js +0 -57
  474. package/lib/sequelize/jest.config.js +0 -12
  475. package/lib/sequelize/nginx.conf +0 -40
  476. package/lib/sequelize/nodemon.json +0 -12
  477. package/lib/sequelize/package.json +0 -82
  478. package/lib/sequelize/src/app.ts +0 -87
  479. package/lib/sequelize/src/config/index.ts +0 -6
  480. package/lib/sequelize/src/config/sequelize-cli.js +0 -15
  481. package/lib/sequelize/src/controllers/auth.controller.ts +0 -45
  482. package/lib/sequelize/src/controllers/users.controller.ts +0 -64
  483. package/lib/sequelize/src/database/index.ts +0 -34
  484. package/lib/sequelize/src/database/migrations/.gitkeep +0 -0
  485. package/lib/sequelize/src/database/seeders/.gitkeep +0 -0
  486. package/lib/sequelize/src/dtos/users.dto.ts +0 -20
  487. package/lib/sequelize/src/exceptions/HttpException.ts +0 -10
  488. package/lib/sequelize/src/http/auth.http +0 -27
  489. package/lib/sequelize/src/http/users.http +0 -34
  490. package/lib/sequelize/src/interfaces/auth.interface.ts +0 -15
  491. package/lib/sequelize/src/interfaces/routes.interface.ts +0 -6
  492. package/lib/sequelize/src/interfaces/users.interface.ts +0 -5
  493. package/lib/sequelize/src/middlewares/auth.middleware.ts +0 -38
  494. package/lib/sequelize/src/middlewares/error.middleware.ts +0 -15
  495. package/lib/sequelize/src/middlewares/validation.middleware.ts +0 -27
  496. package/lib/sequelize/src/models/users.model.ts +0 -39
  497. package/lib/sequelize/src/routes/auth.route.ts +0 -21
  498. package/lib/sequelize/src/routes/users.route.ts +0 -23
  499. package/lib/sequelize/src/server.ts +0 -10
  500. package/lib/sequelize/src/services/auth.service.ts +0 -52
  501. package/lib/sequelize/src/services/users.service.ts +0 -50
  502. package/lib/sequelize/src/test/auth.test.ts +0 -71
  503. package/lib/sequelize/src/test/users.test.ts +0 -131
  504. package/lib/sequelize/src/utils/logger.ts +0 -65
  505. package/lib/sequelize/src/utils/validateEnv.ts +0 -8
  506. package/lib/sequelize/swagger.yaml +0 -123
  507. package/lib/sequelize/tsconfig.json +0 -40
  508. package/lib/starter.js +0 -262
  509. package/lib/typegoose/.dockerignore +0 -18
  510. package/lib/typegoose/.editorconfig +0 -9
  511. package/lib/typegoose/.env.development.local +0 -18
  512. package/lib/typegoose/.env.production.local +0 -18
  513. package/lib/typegoose/.env.test.local +0 -18
  514. package/lib/typegoose/.eslintignore +0 -1
  515. package/lib/typegoose/.eslintrc +0 -18
  516. package/lib/typegoose/.huskyrc +0 -5
  517. package/lib/typegoose/.lintstagedrc.json +0 -5
  518. package/lib/typegoose/.prettierrc +0 -8
  519. package/lib/typegoose/.swcrc +0 -40
  520. package/lib/typegoose/.vscode/launch.json +0 -35
  521. package/lib/typegoose/.vscode/settings.json +0 -6
  522. package/lib/typegoose/Dockerfile.dev +0 -19
  523. package/lib/typegoose/Dockerfile.prod +0 -19
  524. package/lib/typegoose/Makefile +0 -46
  525. package/lib/typegoose/docker-compose.yml +0 -55
  526. package/lib/typegoose/ecosystem.config.js +0 -57
  527. package/lib/typegoose/jest.config.js +0 -12
  528. package/lib/typegoose/nginx.conf +0 -40
  529. package/lib/typegoose/nodemon.json +0 -12
  530. package/lib/typegoose/package.json +0 -79
  531. package/lib/typegoose/src/app.ts +0 -90
  532. package/lib/typegoose/src/config/index.ts +0 -6
  533. package/lib/typegoose/src/controllers/auth.controller.ts +0 -44
  534. package/lib/typegoose/src/controllers/users.controller.ts +0 -63
  535. package/lib/typegoose/src/database/index.ts +0 -18
  536. package/lib/typegoose/src/dtos/users.dto.ts +0 -20
  537. package/lib/typegoose/src/exceptions/HttpException.ts +0 -10
  538. package/lib/typegoose/src/http/auth.http +0 -27
  539. package/lib/typegoose/src/http/users.http +0 -34
  540. package/lib/typegoose/src/interfaces/auth.interface.ts +0 -15
  541. package/lib/typegoose/src/interfaces/routes.interface.ts +0 -6
  542. package/lib/typegoose/src/interfaces/users.interface.ts +0 -5
  543. package/lib/typegoose/src/middlewares/auth.middleware.ts +0 -38
  544. package/lib/typegoose/src/middlewares/error.middleware.ts +0 -15
  545. package/lib/typegoose/src/middlewares/validation.middleware.ts +0 -27
  546. package/lib/typegoose/src/models/users.model.ts +0 -16
  547. package/lib/typegoose/src/routes/auth.route.ts +0 -21
  548. package/lib/typegoose/src/routes/users.route.ts +0 -23
  549. package/lib/typegoose/src/server.ts +0 -10
  550. package/lib/typegoose/src/services/auth.service.ts +0 -52
  551. package/lib/typegoose/src/services/users.service.ts +0 -55
  552. package/lib/typegoose/src/test/auth.test.ts +0 -83
  553. package/lib/typegoose/src/test/users.test.ts +0 -133
  554. package/lib/typegoose/src/utils/logger.ts +0 -65
  555. package/lib/typegoose/src/utils/validateEnv.ts +0 -8
  556. package/lib/typegoose/swagger.yaml +0 -120
  557. package/lib/typegoose/tsconfig.json +0 -40
  558. package/lib/typeorm/.dockerignore +0 -18
  559. package/lib/typeorm/.editorconfig +0 -9
  560. package/lib/typeorm/.env.development.local +0 -20
  561. package/lib/typeorm/.env.production.local +0 -20
  562. package/lib/typeorm/.env.test.local +0 -20
  563. package/lib/typeorm/.eslintignore +0 -1
  564. package/lib/typeorm/.eslintrc +0 -18
  565. package/lib/typeorm/.huskyrc +0 -5
  566. package/lib/typeorm/.lintstagedrc.json +0 -5
  567. package/lib/typeorm/.prettierrc +0 -8
  568. package/lib/typeorm/.swcrc +0 -40
  569. package/lib/typeorm/.vscode/launch.json +0 -35
  570. package/lib/typeorm/.vscode/settings.json +0 -6
  571. package/lib/typeorm/Dockerfile.dev +0 -19
  572. package/lib/typeorm/Dockerfile.prod +0 -19
  573. package/lib/typeorm/Makefile +0 -46
  574. package/lib/typeorm/docker-compose.yml +0 -57
  575. package/lib/typeorm/ecosystem.config.js +0 -57
  576. package/lib/typeorm/jest.config.js +0 -12
  577. package/lib/typeorm/nginx.conf +0 -40
  578. package/lib/typeorm/nodemon.json +0 -12
  579. package/lib/typeorm/package.json +0 -78
  580. package/lib/typeorm/src/app.ts +0 -87
  581. package/lib/typeorm/src/config/index.ts +0 -6
  582. package/lib/typeorm/src/controllers/auth.controller.ts +0 -44
  583. package/lib/typeorm/src/controllers/users.controller.ts +0 -63
  584. package/lib/typeorm/src/database/index.ts +0 -26
  585. package/lib/typeorm/src/database/migrations/.gitkeep +0 -0
  586. package/lib/typeorm/src/dtos/users.dto.ts +0 -20
  587. package/lib/typeorm/src/entities/users.entity.ts +0 -26
  588. package/lib/typeorm/src/exceptions/HttpException.ts +0 -10
  589. package/lib/typeorm/src/http/auth.http +0 -27
  590. package/lib/typeorm/src/http/users.http +0 -34
  591. package/lib/typeorm/src/interfaces/auth.interface.ts +0 -15
  592. package/lib/typeorm/src/interfaces/routes.interface.ts +0 -6
  593. package/lib/typeorm/src/interfaces/users.interface.ts +0 -5
  594. package/lib/typeorm/src/middlewares/auth.middleware.ts +0 -38
  595. package/lib/typeorm/src/middlewares/error.middleware.ts +0 -15
  596. package/lib/typeorm/src/middlewares/validation.middleware.ts +0 -27
  597. package/lib/typeorm/src/routes/auth.route.ts +0 -21
  598. package/lib/typeorm/src/routes/users.route.ts +0 -23
  599. package/lib/typeorm/src/server.ts +0 -10
  600. package/lib/typeorm/src/services/auth.service.ts +0 -54
  601. package/lib/typeorm/src/services/users.service.ts +0 -51
  602. package/lib/typeorm/src/test/auth.test.ts +0 -75
  603. package/lib/typeorm/src/test/users.test.ts +0 -136
  604. package/lib/typeorm/src/utils/logger.ts +0 -65
  605. package/lib/typeorm/src/utils/validateEnv.ts +0 -8
  606. package/lib/typeorm/swagger.yaml +0 -123
  607. /package/{lib → templates}/default/src/interfaces/routes.interface.ts +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <h1 align="center">
2
2
  <br>
3
- <img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/logo.jpg" alt="Project Logo" />
3
+ <img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/newLogo.png" alt="Project Logo" />
4
4
  <br>
5
5
  <br>
6
6
  TypeScript Express Starter
@@ -52,279 +52,165 @@
52
52
 
53
53
  <br />
54
54
 
55
- ## 😎 Introducing The Project
55
+ ---
56
56
 
57
- Express consists of JavaScript, which makes it vulnerable to type definitions.
57
+ ## 📝 Introduction
58
58
 
59
- That's why we avoid supersets with starter packages that introduce TypeScript.
59
+ **TypeScript Express Starter** is an interactive CLI tool that generates production-ready TypeScript Express projects with your preferred stack configuration.
60
60
 
61
- The package is configured to use TypeScript instead of JavaScript.
61
+ Instead of starting from scratch, this CLI provides a comprehensive project generator with multiple database integrations, development tools, and deployment configurations. Choose from 10+ templates and customize your development workflow in minutes.
62
62
 
63
- > The project referred to [express-generator-typescript](https://github.com/seanpmaxwell/express-generator-typescript)
63
+ - **Interactive Setup**: Choose database, ORM, linter, testing framework, and more
64
+ - **Production Ready**: Docker, PM2, NGINX configurations included
65
+ - **Developer Experience**: Hot reload, testing, linting, and formatting pre-configured
66
+ - **Multiple Stacks**: Support for 10+ database/ORM combinations
64
67
 
65
- ### 🤔 What is Express ?
68
+ ## 💎 CLI Features
66
69
 
67
- Express is a fast, open and concise web framework and is a Node.js based project.
70
+ - 🎯 **Interactive Setup** Smart CLI with guided project configuration
68
71
 
69
- ## 🚀 Quick Start
72
+ - 🗄️ **Multiple Database Options** — Prisma, Sequelize, TypeORM, Mongoose, Knex, and more
70
73
 
71
- ### Install with the npm Global Package
74
+ - 🛠️ **Development Tools** Choose from ESLint, Biome, Jest, Vitest, Docker, PM2
72
75
 
73
- ```bash
74
- $ npm install -g typescript-express-starter
75
- ```
76
-
77
- ### Run npx to Install The Package
78
-
79
- npx is a tool in the JavaScript package management module, npm.
80
-
81
- This is a tool that allows you to run the npm package on a single run without installing the package.
82
-
83
- If you do not enter a project name, it defaults to _typescript-express-starter_.
84
-
85
- ```bash
86
- $ npx typescript-express-starter "project name"
87
- ```
88
-
89
- ### Select a Templates
90
-
91
- <img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/cli.gif" alt="Example Cli" />
92
-
93
- Start your typescript-express-starter app in development mode at `http://localhost:3000/`
94
-
95
- #### Template Type
96
-
97
- | Name | Description |
98
- | :---------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
99
- | Default | Express Default |
100
- | [Routing Controllers](https://github.com/typestack/routing-controllers) | Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage |
101
- | [Sequelize](https://github.com/sequelize/sequelize) | Easy to use multi SQL dialect ORM for Node.js |
102
- | [Mongoose](https://github.com/Automattic/mongoose) | MongoDB Object Modeling(ODM) designed to work in an asynchronous environment |
103
- | [TypeORM](https://github.com/typeorm/typeorm) | An ORM that can run in Node.js and Others |
104
- | [Prisma](https://github.com/prisma/prisma) | Modern Database Access for TypeScript & Node.js |
105
- | [Knex](https://github.com/knex/knex) | SQL query builder for Postgres, MySQL, MariaDB, SQLite3 and Oracle |
106
- | [GraphQL](https://github.com/graphql/graphql-js) | query language for APIs and a runtime for fulfilling those queries with your existing data |
107
- | [Typegoose](https://github.com/typegoose/typegoose) | Define Mongoose models using TypeScript classes |
108
- | [Mikro ORM](https://github.com/mikro-orm/mikro-orm) | TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases |
109
- | [Node Postgres](https://node-postgres.com/) | node-postgres is a collection of node.js modules for interfacing with your PostgreSQL database |
110
-
111
- #### Template to be developed
112
-
113
- | Name | Description |
114
- | :------------------------------------------------------------------------------ | :------------------------------------------------------------------------- |
115
- | [Sequelize Typescript](https://github.com/RobinBuschmann/sequelize-typescript) | Decorators and some other features for sequelize |
116
- | [TS SQL](https://github.com/codemix/ts-sql) | A SQL database implemented purely in TypeScript type annotations |
117
- | [inversify-express-utils](https://github.com/inversify/inversify-express-utils) | Some utilities for the development of Express application with InversifyJS |
118
- | [postgress typescript]() | |
119
- | [graphql prisma]() | |
120
-
121
- ## 🛎 Available Commands for the Server
122
-
123
- - Run the Server in production mode : `npm run start` or `Start typescript-express-starter` in VS Code
124
- - Run the Server in development mode : `npm run dev` or `Dev typescript-express-starter` in VS Code
125
- - Run all unit-tests : `npm test` or `Test typescript-express-starter` in VS Code
126
- - Check for linting errors : `npm run lint` or `Lint typescript-express-starter` in VS Code
127
- - Fix for linting : `npm run lint:fix` or `Lint:Fix typescript-express-starter` in VS Code
128
-
129
- ## 💎 The Package Features
130
-
131
- <p>
132
- <img src="https://img.shields.io/badge/-TypeScript-007ACC?style=for-the-badge&logo=TypeScript&logoColor=fff" />&nbsp;&nbsp;
133
- <img src="https://img.shields.io/badge/-Node.js-339933?style=for-the-badge&logo=Node.js&logoColor=fff" />&nbsp;&nbsp;
134
- <img src="https://img.shields.io/badge/-NPM-CB3837?style=for-the-badge&logo=NPM&logoColor=fff" />&nbsp;&nbsp;
135
- </p>
136
- <p>
137
- <img src="https://img.shields.io/badge/-Docker-2496ED?style=for-the-badge&logo=Docker&logoColor=fff" />&nbsp;&nbsp;
138
- <img src="https://img.shields.io/badge/-NGINX-269539?style=for-the-badge&logo=NGINX&logoColor=fff" />
139
- <img src="https://img.shields.io/badge/-PM2-2B037A?style=for-the-badge&logo=PM2&logoColor=fff" />&nbsp;&nbsp;
140
- <img src="https://img.shields.io/badge/-Nodemon-76D04B?style=for-the-badge&logo=Nodemon&logoColor=fff" />&nbsp;&nbsp;
141
- <img src="https://img.shields.io/badge/-ESLint-4B32C3?style=for-the-badge&logo=ESLint&logoColor=fff" />&nbsp;&nbsp;
142
- <img src="https://img.shields.io/badge/-Prettier-F7B93E?style=for-the-badge&logo=Prettier&logoColor=000" />&nbsp;&nbsp;
143
- <img src="https://img.shields.io/badge/-Jest-C21325?style=for-the-badge&logo=Jest&logoColor=fff" />&nbsp;&nbsp;
144
- <img src="https://img.shields.io/badge/-Swagger-85EA2D?style=for-the-badge&logo=Swagger&logoColor=000" />
145
- <img src="https://img.shields.io/badge/-SWC-FFFFFF?style=for-the-badge&logo=swc&logoColor=FBE1A6" />
146
- </p>
147
- <p>
148
- <img src="https://img.shields.io/badge/-MySQL-4479A1?style=for-the-badge&logo=MySQL&logoColor=fff" />&nbsp;&nbsp;
149
- <img src="https://img.shields.io/badge/-MariaDB-003545?style=for-the-badge&logo=MariaDB&logoColor=fff" />&nbsp;&nbsp;
150
- <img src="https://img.shields.io/badge/-PostgreSQL-336791?style=for-the-badge&logo=PostgreSQL&logoColor=fff" />&nbsp;&nbsp;
151
- <img src="https://img.shields.io/badge/-MongoDB-47A248?style=for-the-badge&logo=MongoDB&logoColor=fff" />
152
- </p>
153
-
154
- ### 🐳 Docker :: Container Platform
155
-
156
- [Docker](https://docs.docker.com/) is a platform for developers and sysadmins to build, run, and share applications with containers.
157
-
158
- [Docker](https://docs.docker.com/get-docker/) Install.
159
-
160
- - starts the containers in the background and leaves them running : `docker-compose up -d`
161
- - Stops containers and removes containers, networks, volumes, and images : `docker-compose down`
162
-
163
- Modify `docker-compose.yml` and `Dockerfile` file to your source code.
164
-
165
- ### ♻️ NGINX :: Web Server
166
-
167
- [NGINX](https://www.nginx.com/) is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.
168
-
169
- Proxying is typically used to distribute the load among several servers, seamlessly show content from different websites, or pass requests for processing to application servers over protocols other than HTTP.
170
-
171
- When NGINX proxies a request, it sends the request to a specified proxied server, fetches the response, and sends it back to the client.
172
-
173
- Modify `nginx.conf` file to your source code.
76
+ - 📱 **Template Selection** — 10+ pre-configured project templates
174
77
 
175
- ### ESLint, Prettier :: Code Formatter
78
+ - **Auto Configuration** — Dependencies, scripts, and configs automatically setup
176
79
 
177
- [Prettier](https://prettier.io/) is an opinionated code formatter.
80
+ - 🔧 **Smart Dependencies** Tool compatibility and requirement resolution
178
81
 
179
- [ESLint](https://eslint.org/), Find and fix problems in your JavaScript code
82
+ - 📦 **Package Manager Agnostic** Works with npm, pnpm, or yarn
180
83
 
181
- It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
84
+ - 🚀 **Zero Config Start** Generated projects work immediately
182
85
 
183
- 1. Install [VSCode](https://code.visualstudio.com/) Extension [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode), [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
86
+ - 🎨 **Customizable** Add your own templates and development tools
184
87
 
185
- 2. `CMD` + `Shift` + `P` (Mac Os) or `Ctrl` + `Shift` + `P` (Windows)
88
+ ## ⚡️ Quick Start
186
89
 
187
- 3. Format Selection With
188
-
189
- 4. Configure Default Formatter...
190
-
191
- 5. Prettier - Code formatter
192
-
193
- <img src="https://user-images.githubusercontent.com/42952358/126604937-4ef50b61-b7e4-4635-b3c9-3c94dd6b06fa.png" alt="Formatter Setting" />
194
-
195
- > Palantir, the backers behind TSLint announced in 2019 that they would be deprecating TSLint in favor of supporting typescript-eslint in order to benefit the community.
196
- > So, migration from TSLint to ESLint.
197
-
198
- ### 📗 Swagger :: API Document
199
-
200
- [Swagger](https://swagger.io/) is Simplify API development for users, teams, and enterprises with the Swagger open source and professional toolset.
201
-
202
- Easily used by Swagger to design and document APIs at scale.
203
-
204
- Start your app in development mode at `http://localhost:3000/api-docs`
205
-
206
- Modify `swagger.yaml` file to your source code.
207
-
208
- ### 🌐 REST Client :: HTTP Client Tools
209
-
210
- REST Client allows you to send HTTP request and view the response in Visual Studio Code directly.
211
-
212
- VSCode Extension [REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) Install.
213
-
214
- Modify `*.http` file in src/http folder to your source code.
215
-
216
- ### 🔮 PM2 :: Advanced, Production process manager for Node.js
217
-
218
- [PM2](https://pm2.keymetrics.io/) is a daemon process manager that will help you manage and keep your application online 24/7.
219
-
220
- - production mode :: `npm run deploy:prod` or `pm2 start ecosystem.config.js --only prod`
221
- - development mode :: `npm run deploy:dev` or `pm2 start ecosystem.config.js --only dev`
222
-
223
- Modify `ecosystem.config.js` file to your source code.
224
-
225
- ### 🏎 SWC :: a super-fast JavaScript / TypeScript compiler
226
-
227
- [SWC](https://swc.rs/) is an extensible Rust-based platform for the next generation of fast developer tools.
228
-
229
- `SWC is 20x faster than Babel on a single thread and 70x faster on four cores.`
90
+ ```bash
91
+ # Install globally
92
+ npm install -g typescript-express-starter
230
93
 
231
- - tsc build :: `npm run build`
232
- - swc build :: `npm run build:swc`
94
+ # Run the interactive CLI
95
+ typescript-express-starter
233
96
 
234
- Modify `.swcrc` file to your source code.
97
+ # Follow the prompts to:
98
+ # 1. Choose package manager (npm/pnpm/yarn)
99
+ # 2. Select project template (default/prisma/sequelize/etc.)
100
+ # 3. Enter project name
101
+ # 4. Pick development tools (linting/testing/docker/etc.)
235
102
 
236
- ### 💄 Makefile :: This is a setting file of the make program used to make the compilation that occurs repeatedly on Linux
103
+ # Navigate to your project
104
+ cd your-project-name
237
105
 
238
- [Makefile](https://makefiletutorial.com/)s are used to help decide which parts of a large program need to be recompiled.
106
+ # Start development server
107
+ npm run dev
108
+ ```
239
109
 
240
- - help :: `make help`
110
+ **Generated Project Features:**
111
+ - 🌐 Express server: `http://localhost:3000/`
112
+ - 📚 Auto-generated API docs: `http://localhost:3000/api-docs`
113
+ - 🔄 Hot reload with nodemon
114
+ - 🧪 Testing setup included
241
115
 
242
- Modify `Makefile` file to your source code.
116
+ ## 📂 Generated Project Structure
243
117
 
244
- ## 🗂 Code Structure (default)
118
+ When you create a new project, the CLI generates this structure:
245
119
 
246
- ```sh
247
-
248
- ├──📂 .vscode
249
- ├── launch.json
250
- └── settings.json
251
-
252
- ├──📂 src
253
- ├──📂 config
254
- │ └── index.ts
255
-
256
- ├──📂 controllers
257
- ├── auth.controller.ts
258
- │ └── users.controller.ts
259
-
260
- ├──📂 dtos
261
- └── users.dto.ts
262
- │ │
263
- │ ├──📂 exceptions
264
- │ │ └── httpException.ts
265
- │ │
266
- │ ├──📂 http
267
- │ │ ├── auth.http
268
- │ │ └── users.http
269
- │ │
270
- │ ├──📂 interfaces
271
- │ │ ├── auth.interface.ts
272
- │ │ ├── routes.interface.ts
273
- │ │ └── users.interface.ts
274
- │ │
275
- │ ├──📂 middlewares
276
- │ │ ├── auth.middleware.ts
277
- │ │ ├── error.middleware.ts
278
- │ │ └── validation.middleware.ts
279
- │ │
280
- │ ├──📂 models
281
- │ │ └── users.model.ts
282
- │ │
283
- │ ├──📂 routes
284
- │ │ ├── auth.route.ts
285
- │ │ └── users.route.ts
286
- │ │
287
- │ ├──📂 services
288
- │ │ ├── auth.service.ts
289
- │ │ └── users.service.ts
290
- │ │
291
- │ ├──📂 test
292
- │ │ ├── auth.test.ts
293
- │ │ └── users.test.ts
294
- │ │
295
- │ ├──📂 utils
296
- │ │ ├── logger.ts
297
- │ │ └── vaildateEnv.ts
298
- │ │
299
- │ ├── app.ts
300
- │ └── server.ts
301
-
302
- ├── .dockerignore
303
- ├── .editorconfig
304
- ├── .env.development.local
305
- ├── .env.production.local
306
- ├── .env.test.local
307
- ├── .eslintignore
308
- ├── .eslintrc
309
- ├── .gitignore
310
- ├── .huskyrc
311
- ├── .lintstagedrc.json
312
- ├── .prettierrc
313
- ├── .swcrc
314
- ├── docker-compose.yml
315
- ├── Dockerfile.dev
316
- ├── Dockerfile.prod
317
- ├── ecosystem.config.js
318
- ├── jest.config.js
319
- ├── Makefile
320
- ├── nginx.conf
321
- ├── nodemon.json
322
- ├── package-lock.json
323
- ├── package.json
324
- ├── swagger.yaml
325
- └── tsconfig.json
120
+ ```bash
121
+ your-project/
122
+ ├── src/
123
+ ├── config/ # Configuration files, environment settings
124
+ ├── controllers/ # Request handling & response logic
125
+ ├── dtos/ # Data Transfer Objects for request/response
126
+ │ ├── entities/ # Database entities/models (if ORM selected)
127
+ ├── exceptions/ # Custom exception classes
128
+ ├── interfaces/ # TypeScript interfaces and type definitions
129
+ ├── middlewares/ # Middlewares (logging, auth, error handling)
130
+ ├── repositories/ # Database access logic
131
+ ├── routes/ # API route definitions
132
+ ├── services/ # Business logic
133
+ ├── utils/ # Utility/helper functions
134
+ ├── app.ts # Express app initialization
135
+ └── server.ts # Server entry point
136
+ ├── .env* # Environment variables (multiple stages)
137
+ ├── nodemon.json # Development server configuration
138
+ ├── package.json # Dependencies and scripts
139
+ ├── tsconfig.json # TypeScript configuration
140
+ └── docker-compose.yml # Docker setup (if selected)
326
141
  ```
327
142
 
143
+ ## 🛠 Development Tools Available
144
+
145
+ Choose from these categories during project setup:
146
+
147
+ | Category | Available Tools | Description |
148
+ | ------------- | ------------------------ | ----------------------------------------------- |
149
+ | **Linter** | `biome`, `eslint` | Code formatting & linting (Biome is all-in-one) |
150
+ | **Bundler** | `swc`, `tsup` | Fast TypeScript compilation and bundling |
151
+ | **Testing** | `jest`, `vitest` | Unit & integration testing frameworks |
152
+ | **Process** | `pm2` | Production process management |
153
+ | **CI/CD** | `github` | GitHub Actions workflows |
154
+ | **Git Hooks** | `husky` | Pre-commit hooks for quality control |
155
+ | **Container** | `docker` | Docker & docker-compose configuration |
156
+ | **API Docs** | `swagger` | OpenAPI/Swagger documentation |
157
+
158
+ **Smart Selection**: The CLI automatically resolves tool dependencies and compatibility.
159
+
160
+ ## 🧩 Available Templates
161
+
162
+ Current template status (more coming soon!):
163
+
164
+ ### ✅ **Currently Available**
165
+ | Template | Description | Status |
166
+ | ---------- | ------------------------------ | ------ |
167
+ | `default` | Express + TypeScript starter | ✅ Active |
168
+
169
+ ### 🚧 **Coming Soon**
170
+
171
+ #### **ORM/Database Integration**
172
+ | Template | Description | Priority |
173
+ | ------------------ | ------------------------------ | -------- |
174
+ | `prisma` | Type-safe database client with auto-generated types | 🔥 High |
175
+ | `drizzle` | TypeScript-first ORM with zero runtime overhead | 🔥 High |
176
+ | `mikro-orm` | Data Mapper ORM pattern for TypeScript | 🔥 High |
177
+ | `mongoose` | Elegant MongoDB ODM for Node.js | 🔥 High |
178
+ | `node-postgres` | High-performance PostgreSQL native driver | 🚧 In Dev |
179
+ | `knex` | Flexible SQL query builder & migrations | 🚧 In Dev |
180
+ | `typeorm` | Decorator-based Active Record ORM | 🚧 In Dev |
181
+ | `sequelize` | Mature Promise-based SQL ORM | 🚧 In Dev |
182
+ | `typegoose` | TypeScript-friendly Mongoose alternative | 🚧 In Dev |
183
+
184
+ #### **Architecture/Controller Style**
185
+ | Template | Description | Priority |
186
+ | ------------------ | ------------------------------ | -------- |
187
+ | `graphql` | GraphQL API schema with Apollo Server | 🚧 In Dev |
188
+
189
+ > **Note**: Currently focusing on the `default` template. Additional templates will be activated as they're completed and tested.
190
+
191
+ ## 🤔 Why Use This CLI?
192
+
193
+ ### vs. Manual Setup
194
+ | Aspect | Manual Setup | TypeScript Express Starter CLI |
195
+ | ---------------- | --------------------------------- | ------------------------------------- |
196
+ | **Time** | 🔴 Hours of configuration | ✅ 2-3 minutes interactive setup |
197
+ | **Configuration** | 🔴 Manual dependency management | ✅ Auto-resolved, compatible versions |
198
+ | **Best Practices** | 🔴 Research required | ✅ Pre-configured industry standards |
199
+ | **Consistency** | 🔴 Varies by developer | ✅ Standardized project structure |
200
+ | **Updates** | 🔴 Manual maintenance | ✅ CLI updates bring new features |
201
+
202
+ ### vs. Other Generators
203
+ | Feature | TypeScript Express Starter | Other Generators |
204
+ | ---------------- | -------------------------- | ---------------- |
205
+ | **Database Choice** | ✅ 10+ options planned | Limited options |
206
+ | **Tool Selection** | ✅ Mix & match dev tools | Fixed stack |
207
+ | **TypeScript First** | ✅ Built for TypeScript | Often JS-first |
208
+ | **Production Ready** | ✅ Docker, PM2 included | Basic setup |
209
+
210
+ ## 📄 License
211
+
212
+ MIT(LICENSE) © AGUMON (ljlm0402)
213
+
328
214
  ## ⭐️ Stargazers
329
215
 
330
216
  [![Stargazers repo roster for @ljlm0402/typescript-express-starter](https://reporoster.com/stars/ljlm0402/typescript-express-starter)](https://github.com/ljlm0402/typescript-express-starter/stargazers)
@@ -336,29 +222,3 @@ Modify `Makefile` file to your source code.
336
222
  ## 🤝 Contributors
337
223
 
338
224
  [![Contributors repo roster for @ljlm0402/typescript-express-starter](https://contributors-img.web.app/image?repo=ljlm0402/typescript-express-starter)](https://github.com/ljlm0402/typescript-express-starter/graphs/contributors)
339
-
340
- ## 💳 License
341
-
342
- [MIT](LICENSE)
343
-
344
- ## 📑 Recommended Commit Message
345
-
346
- | When | Commit Message |
347
- | :--------------- | :----------------- |
348
- | Add Feature | ✨ Add Feature |
349
- | Fix Bug | 🐞 Fix Bug |
350
- | Refactoring Code | 🛠 Refactoring Code |
351
- | Install Package | 📦 Install Package |
352
- | Fix Readme | 📚 Fix Readme |
353
- | Update Version | 🌼 Update Version |
354
- | New Template | 🎉 New Template |
355
-
356
- ## 📬 Please request an issue
357
-
358
- Please leave a question or question as an issue.
359
-
360
- I will do my best to answer and reflect.
361
-
362
- Thank you for your interest.
363
-
364
- # ദ്ദി*ˊᗜˋ*)