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.kr.md CHANGED
@@ -1,13 +1,13 @@
1
1
  <h1 align="center">
2
2
  <br>
3
- <img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/logo.jpg" alt="프로젝트 로고" />
3
+ <img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/newLogo.png" alt="프로젝트 로고" />
4
4
  <br>
5
5
  <br>
6
- 타입스크립트 익스프레스 스타터
6
+ TypeScript Express Starter
7
7
  <br>
8
8
  </h1>
9
9
 
10
- <h4 align="center">🚀 타입스크립트 기반의 익스프레스 보일러 플레이트 스타터 패키지</h4>
10
+ <h4 align="center">🚀 TypeScript 기반 Express RESTful API 보일러플레이트</h4>
11
11
 
12
12
  <p align ="center">
13
13
  <a href="https://nodei.co/npm/typescript-express-starter" target="_blank">
@@ -20,31 +20,16 @@
20
20
  <img src="https://img.shields.io/npm/v/typescript-express-starter.svg" alt="npm 버전" />
21
21
  </a>
22
22
  <a href="http://npm.im/typescript-express-starter" target="_blank">
23
- <img src="https://img.shields.io/github/v/release/ljlm0402/typescript-express-starter" alt="npm 릴리즈 버전" />
23
+ <img src="https://img.shields.io/github/v/release/ljlm0402/typescript-express-starter" alt="GitHub 릴리즈 버전" />
24
24
  </a>
25
25
  <a href="http://npm.im/typescript-express-starter" target="_blank">
26
26
  <img src="https://img.shields.io/npm/dm/typescript-express-starter.svg" alt="npm 다운로드 수" />
27
27
  </a>
28
28
  <a href="http://npm.im/typescript-express-starter" target="_blank">
29
- <img src="https://img.shields.io/npm/l/typescript-express-starter.svg" alt="npm 패키지 라이선스" />
29
+ <img src="https://img.shields.io/npm/l/typescript-express-starter.svg" alt="라이선스" />
30
30
  </a>
31
31
  </p>
32
32
 
33
- <p align="center">
34
- <a href="https://github.com/ljlm0402/typescript-express-starter/stargazers" target="_blank">
35
- <img src="https://img.shields.io/github/stars/ljlm0402/typescript-express-starter" alt="github 스타"/>
36
- </a>
37
- <a href="https://github.com/ljlm0402/typescript-express-starter/network/members" target="_blank">
38
- <img src="https://img.shields.io/github/forks/ljlm0402/typescript-express-starter" alt="github 포크" />
39
- </a>
40
- <a href="https://github.com/ljlm0402/typescript-express-starter/stargazers" target="_blank">
41
- <img src="https://img.shields.io/github/contributors/ljlm0402/typescript-express-starter" alt="github 컨트리뷰터" />
42
- </a>
43
- <a href="https://github.com/ljlm0402/typescript-express-starter/issues" target="_blank">
44
- <img src="https://img.shields.io/github/issues/ljlm0402/typescript-express-starter" alt="github 이슈" />
45
- </a>
46
- </p>
47
-
48
33
  <br />
49
34
 
50
35
  - [🇰🇷 한국어](https://github.com/ljlm0402/typescript-express-starter/blob/master/README.kr.md)
@@ -52,272 +37,162 @@
52
37
 
53
38
  <br />
54
39
 
55
- ## 😎 프로젝트를 소개합니다.
56
-
57
- Express는 유형 정의에 취약한 JavaScript로 구성 되어있습니다.
58
-
59
- 이것이 바로 TypeScript를 도입하는 스타터 패키지로 수퍼 세트를 피하는 이유입니다.
60
-
61
- 패키지는 JavaScript 대신 TypeScript를 사용하도록 구성되어 있습니다.
62
-
63
- > 참고 : [express-generator-typescript](https://github.com/seanpmaxwell/express-generator-typescript)
64
-
65
- ### 🤔 Express는 무엇인가요 ?
66
-
67
- Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크입니다.
68
-
69
- ## 🚀 시작하기
70
-
71
- ### npm 전역 설치
72
-
73
- ```bash
74
- $ npm install -g typescript-express-starter
75
- ```
76
-
77
- ### npx를 통해 프로젝트를 설치
78
-
79
- 프로젝트 이름을 입력하지 않으면, 기본값으로 _typescript-express-starter_ 폴더로 설치됩니다.
80
-
81
- ```bash
82
- $ npx typescript-express-starter "project name"
83
- ```
84
-
85
- ### 원하시는 템플릿을 선택
86
-
87
- <img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/cli.gif" alt="예시" />
88
-
89
- 설치가 완료되면 Script 명령어를 통해 프로젝트를 실행합니다.
90
-
91
- #### 템플릿 종류
40
+ ## 📝 소개
92
41
 
93
- | 이름 | 설명 |
94
- | :---------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
95
- | Default | Express 기본 |
96
- | [routing controllers](https://github.com/typestack/routing-controllers) | 데코레이터 사용량이 많은 구조화되고 선언적이며 아름답게 구성된 클래스 기반 컨트롤러 생성 |
97
- | [Sequelize](https://github.com/sequelize/sequelize) | PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server를 지원하는 Promise 패턴 기반의 Node.js ORM |
98
- | [Mongoose](https://github.com/Automattic/mongoose) | Node.js와 MongoDB를 위한 ODM(Object Data Mapping) 라이브러리 |
99
- | [TypeORM](https://github.com/typeorm/typeorm) | 자바스크립트, 타입스크립트과 함께 사용되어 Node.js, React Native, Expo에서 실행될 수 있는 ORM |
100
- | [Prisma](https://github.com/prisma/prisma) | 데이터베이스에 데이터를 프로그래밍 언어의 객체와 매핑하여 기존에 SQL로 작성하던 데이터를 수정, 테이블 구조 변경등의 작업을 객체를 통해 프로그래밍적으로 할 수 있도록 해주는 ORM |
101
- | [Knex](https://github.com/knex/knex) | 쿼리 빌더를 위한 라이브러리 |
102
- | [GraphQL](https://github.com/graphql/graphql-js) | API 용 쿼리 언어이며 기존 데이터로 이러한 쿼리를 수행하기위한 런타임 |
103
- | [Typegoose](https://github.com/typegoose/typegoose) | 타입스크립트 클래스를 사용하여 몽구스 모델 정의 |
104
- | [Mikro ORM](https://github.com/mikro-orm/mikro-orm) | 데이터 매퍼, 작업 단위 및 아이덴티티 맵 패턴을 기반으로 하는 Node.js용 TypeScript ORM. MongoDB, MySQL, MariaDB, PostgreSQL 및 SQLite 데이터베이스를 지원 |
105
- | [Node Postgres](https://node-postgres.com/) | PostgreSQL 데이터베이스와 인터페이스하기 위한 node.js 모듈 |
106
-
107
- #### 추후 개발 할 템플릿
108
-
109
- | 이름 | 설명 |
110
- | :------------------------------------------------------------------------------ | :------------------------------------------------------------------ |
111
- | [Sequelize Typescript](https://github.com/RobinBuschmann/sequelize-typescript) | 데코레이터 및 Sequelize를 위한 몇 가지 기능 |
112
- | [TS SQL](https://github.com/codemix/ts-sql) | SQL 데이터베이스는 TypeScript 유형 주석으로 순전히 구현 |
113
- | [inversify-express-utils](https://github.com/inversify/inversify-express-utils) | InversifyJS를 사용한 Express 애플리케이션 개발을 위한 일부 유틸리티 |
114
- | [postgress Typescript]() | |
115
- | [graphql-prisma]() | |
116
-
117
- ## 🛎 Script 명령어
118
-
119
- - 프로덕션 모드 실행 : `npm run start` 아니면 `Start typescript-express-starter` VS Code 로
120
- - 개발 모드 실행 : `npm run dev` 아니면 `Dev typescript-express-starter` VS Code 로
121
- - 단위 테스트 : `npm test` 아니면 `Test typescript-express-starter` VS Code 로
122
- - 코드 포맷터 검사 : `npm run lint` 아니면 `Lint typescript-express-starter` VS Code 로
123
- - 코드 포맷터 적용 : `npm run lint:fix` 아니면 `Lint:Fix typescript-express-starter` VS Code 로
124
-
125
- ## 💎 프로젝트 기능
126
-
127
- <p>
128
- <img src="https://img.shields.io/badge/-TypeScript-007ACC?style=for-the-badge&logo=TypeScript&logoColor=fff" />&nbsp;&nbsp;
129
- <img src="https://img.shields.io/badge/-Node.js-339933?style=for-the-badge&logo=Node.js&logoColor=fff" />&nbsp;&nbsp;
130
- <img src="https://img.shields.io/badge/-NPM-CB3837?style=for-the-badge&logo=NPM&logoColor=fff" />&nbsp;&nbsp;
131
- </p>
132
- <p>
133
- <img src="https://img.shields.io/badge/-Docker-2496ED?style=for-the-badge&logo=Docker&logoColor=fff" />&nbsp;&nbsp;
134
- <img src="https://img.shields.io/badge/-NGINX-269539?style=for-the-badge&logo=NGINX&logoColor=fff" />
135
- <img src="https://img.shields.io/badge/-PM2-2B037A?style=for-the-badge&logo=PM2&logoColor=fff" />&nbsp;&nbsp;
136
- <img src="https://img.shields.io/badge/-Nodemon-76D04B?style=for-the-badge&logo=Nodemon&logoColor=fff" />&nbsp;&nbsp;
137
- <img src="https://img.shields.io/badge/-ESLint-4B32C3?style=for-the-badge&logo=ESLint&logoColor=fff" />&nbsp;&nbsp;
138
- <img src="https://img.shields.io/badge/-Prettier-F7B93E?style=for-the-badge&logo=Prettier&logoColor=000" />&nbsp;&nbsp;
139
- <img src="https://img.shields.io/badge/-Jest-C21325?style=for-the-badge&logo=Jest&logoColor=fff" />&nbsp;&nbsp;
140
- <img src="https://img.shields.io/badge/-Swagger-85EA2D?style=for-the-badge&logo=Swagger&logoColor=000" />
141
- <img src="https://img.shields.io/badge/-SWC-FFFFFF?style=for-the-badge&logo=swc&logoColor=FBE1A6" />
142
- </p>
143
- <p>
144
- <img src="https://img.shields.io/badge/-MySQL-4479A1?style=for-the-badge&logo=MySQL&logoColor=fff" />&nbsp;&nbsp;
145
- <img src="https://img.shields.io/badge/-MariaDB-003545?style=for-the-badge&logo=MariaDB&logoColor=fff" />&nbsp;&nbsp;
146
- <img src="https://img.shields.io/badge/-PostgreSQL-336791?style=for-the-badge&logo=PostgreSQL&logoColor=fff" />&nbsp;&nbsp;
147
- <img src="https://img.shields.io/badge/-MongoDB-47A248?style=for-the-badge&logo=MongoDB&logoColor=fff" />
148
- </p>
42
+ **TypeScript Express Starter**는 원하는 스택 구성으로 프로덕션 준비된 TypeScript Express 프로젝트를 생성하는 대화형 CLI 도구입니다.
149
43
 
150
- ### 🐳 Docker :: 컨테이너 플랫폼
44
+ 처음부터 시작하는 대신, CLI는 다양한 데이터베이스 연동, 개발 도구, 배포 구성을 포함한 포괄적인 프로젝트 생성기를 제공합니다. 10개 이상의 템플릿 중 선택하고 몇 분 안에 개발 워크플로우를 맞춤 설정할 수 있습니다.
151
45
 
152
- [Docker](https://docs.docker.com/)란, 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
46
+ - **대화형 설정**: 데이터베이스, ORM, 린터, 테스트 프레임워크 등을 선택
47
+ - **프로덕션 준비**: Docker, PM2, NGINX 구성 포함
48
+ - **개발자 경험**: 핫 리로드, 테스트, 린팅, 포맷팅이 미리 구성됨
49
+ - **다양한 스택**: 10개 이상의 데이터베이스/ORM 조합 지원
153
50
 
154
- [설치 홈페이지](https://docs.docker.com/get-docker/)에 접속해서 설치를 해줍니다.
51
+ ## 💎 CLI 주요 기능
155
52
 
156
- - 백그라운드에서 컨테이너를 시작하고 실행 : `docker-compose up -d`
157
- - 컨테이너를 중지하고 컨테이너, 네트워크, 볼륨 및 이미지를 제거 : `docker-compose down`
53
+ - 🎯 **대화형 설정** 스마트 CLI로 프로젝트 구성을 안내
158
54
 
159
- 수정을 원하시면 `docker-compose.yml`과 `Dockerfile`를 수정해주시면 됩니다.
55
+ - 🗄️ **다양한 데이터베이스 옵션** — Prisma, Sequelize, TypeORM, Mongoose, Knex 등
160
56
 
161
- ### ♻️ Nginx :: 서버
57
+ - 🛠️ **개발 도구** ESLint, Biome, Jest, Vitest, Docker, PM2 중 선택
162
58
 
163
- [Nginx](https://www.nginx.com/) 역방향 프록시,로드 밸런서, 메일 프록시 HTTP 캐시로도 사용할 수있는 웹 서버입니다.
59
+ - 📱 **템플릿 선택** 10개 이상의 사전 구성된 프로젝트 템플릿
164
60
 
165
- 프록시는 일반적으로 여러 서버에로드를 분산하거나, 다른 사이트의 콘텐츠를 원활하게 표시하거나, HTTP 이외의 프로토콜을 통해 처리 요청을 애플리케이션 서버에 전달하는 데 사용됩니다.
61
+ - **자동 구성** 의존성, 스크립트, 설정이 자동으로 설정됨
166
62
 
167
- Nginx 요청을 프록시하면 지정된 프록시 서버로 요청을 보내고 응답을 가져 와서 클라이언트로 다시 보냅니다.
63
+ - 🔧 **스마트 의존성** 도구 호환성 요구사항 자동 해결
168
64
 
169
- 수정을 원하시면 `nginx.conf` 파일을 수정해주시면 됩니다.
65
+ - 📦 **패키지 매니저 지원** — npm, pnpm, yarn 모두 지원
170
66
 
171
- ### ESLint, Prettier :: 정적 코드 분석 코드 스타일 변환
67
+ - 🚀 **제로 설정 시작** 생성된 프로젝트가 즉시 동작
172
68
 
173
- [ESLint](https://eslint.org/)는 JavaScript 코드에서 발견 문제 패턴을 식별하기위한 정적 코드 분석 도구입니다.
69
+ - 🎨 **커스터마이징 가능** 자신만의 템플릿과 개발 도구 추가
174
70
 
175
- [Prettier](https://prettier.io/)는 개발자가 작성한 코드를 정해진 코딩 스타일을 따르도록 변환해주는 도구입니다.
71
+ ## ⚡️ 빠른 시작
176
72
 
177
- 코드를 구문 분석하고 최대 줄 길이를 고려하여 필요한 경우 코드를 래핑하는 자체 규칙으로 다시 인쇄하여 일관된 스타일을 적용합니다.
178
-
179
- 1. [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) 설치합니다.
180
-
181
- 2. 설치가 완료되면, 단축키 `CMD` + `Shift` + `P` (Mac Os) 또는 `Ctrl` + `Shift` + `P` (Windows) 입력합니다.
182
-
183
- 3. Format Selection With 선택합니다.
184
-
185
- 4. Configure Default Formatter... 선택합니다.
186
-
187
- 5. Prettier - Code formatter 적용합니다.
188
-
189
- <img src="https://user-images.githubusercontent.com/42952358/126604937-4ef50b61-b7e4-4635-b3c9-3c94dd6b06fa.png" alt="Formatter 설정" />
190
-
191
- > 2019년, TSLint 지원이 종료 되어 ESLint를 적용하였습니다.
192
-
193
- ### 📗 Swagger :: API 문서화
194
-
195
- [Swagger](https://swagger.io/)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다.
196
-
197
- API를 대규모로 설계하고 문서화하는 데 용이하게 사용합니다.
198
-
199
- Swagger URL은 `http://localhost:3000/api-docs` 으로 작성했습니다.
200
-
201
- 수정을 원하시면 `swagger.yaml` 파일을 수정해주시면 됩니다.
202
-
203
- ### 🌐 REST Client :: HTTP Client 도구
204
-
205
- REST 클라이언트를 사용하면 HTTP 요청을 보내고 Visual Studio Code에서 직접 응답을 볼 수 있습니다.
206
-
207
- VSCode Extension에서 [REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) 설치합니다.
208
-
209
- 수정을 원하시면 src/http 폴더 안에 `*.http` 파일을 수정해주시면 됩니다.
210
-
211
- ### 🔮 PM2 :: 웹 애플리케이션을 운영 및 프로세스 관리자
212
-
213
- [PM2](https://pm2.keymetrics.io/)란, 서버에서 웹 애플리케이션을 운영할 때 보통 데몬으로 서버를 띄워야 하고 Node.js의 경우 서버가 크래시나면 재시작을 하기 위해서 워치독(watchdog) 류의 프로세스 관리자이다.
214
-
215
- - 프로덕션 모드 :: `npm run deploy:prod` 또는 `pm2 start ecosystem.config.js --only prod`
216
- - 개발 모드 :: `npm run deploy:dev` 또는 `pm2 start ecosystem.config.js --only dev`
217
-
218
- 수정을 원하시면 `ecosystem.config.js` 파일을 수정해주시면 됩니다.
219
-
220
- ### 🏎 SWC :: 강하고 빠른 자바스크립트 / 타입스크립트 컴파일러
221
-
222
- [SWC](https://swc.rs/)는 차세대 고속 개발자 도구를 위한 확장 가능한 Rust 기반 플랫폼입니다.
223
-
224
- `SWC는 단일 스레드에서 Babel보다 20배, 4개 코어에서 70배 빠릅니다.`
73
+ ```bash
74
+ # 전역 설치
75
+ npm install -g typescript-express-starter
225
76
 
226
- - tsc 빌드 :: `npm run build`
227
- - swc 빌드 :: `npm run build:swc`
77
+ # 대화형 CLI 실행
78
+ typescript-express-starter
228
79
 
229
- 수정을 원하시면 `.swcrc` 파일을 수정해주시면 됩니다.
80
+ # 프롬프트에 따라 다음을 선택:
81
+ # 1. 패키지 매니저 선택 (npm/pnpm/yarn)
82
+ # 2. 프로젝트 템플릿 선택 (default/prisma/sequelize/등)
83
+ # 3. 프로젝트 이름 입력
84
+ # 4. 개발 도구 선택 (린팅/테스트/도커/등)
230
85
 
231
- ### 💄 Makefile :: Linux에서 반복 적으로 발생하는 컴파일을 쉽게하기위해서 사용하는 make 프로그램의 설정 파일
86
+ # 프로젝트로 이동
87
+ cd your-project-name
232
88
 
233
- - 도움말 :: `make help`
89
+ # 개발 서버 시작
90
+ npm run dev
91
+ ```
234
92
 
235
- 수정을 원하시면 `Makefile` 파일을 수정해주시면 됩니다.
93
+ **생성된 프로젝트 기능:**
94
+ - 🌐 Express 서버: `http://localhost:3000/`
95
+ - 📚 자동 생성된 API 문서: `http://localhost:3000/api-docs`
96
+ - 🔄 nodemon을 통한 핫 리로드
97
+ - 🧪 테스트 설정 포함
236
98
 
237
- ## 🗂 코드 구조 (default)
99
+ ## 📂 프로젝트 구조
238
100
 
239
101
  ```bash
240
-
241
- ├──📂 .vscode
242
- ├── launch.json
243
- │ └── settings.json
244
-
245
- ├──📂 src
246
- │ ├──📂 config
247
- │ │ └── index.ts
248
- │ │
249
- │ ├──📂 controllers
250
- │ │ ├── auth.controller.ts
251
- │ │ └── users.controller.ts
252
- │ │
253
- │ ├──📂 dtos
254
- │ │ └── users.dto.ts
255
- │ │
256
- ├──📂 exceptions
257
- │ │ └── httpException.ts
258
- │ │
259
- │ ├──📂 http
260
- │ │ ├── auth.http
261
- │ │ └── users.http
262
- │ │
263
- │ ├──📂 interfaces
264
- │ │ ├── auth.interface.ts
265
- │ │ ├── routes.interface.ts
266
- │ │ └── users.interface.ts
267
- │ │
268
- │ ├──📂 middlewares
269
- │ │ ├── auth.middleware.ts
270
- │ │ ├── error.middleware.ts
271
- │ │ └── validation.middleware.ts
272
- │ │
273
- │ ├──📂 models
274
- │ │ └── users.model.ts
275
- │ │
276
- │ ├──📂 routes
277
- │ │ ├── auth.route.ts
278
- │ │ └── users.route.ts
279
- │ │
280
- │ ├──📂 services
281
- │ │ ├── auth.service.ts
282
- │ │ └── users.service.ts
283
- │ │
284
- │ ├──📂 test
285
- │ │ ├── auth.test.ts
286
- │ │ └── users.test.ts
287
- │ │
288
- │ ├──📂 utils
289
- │ │ ├── logger.ts
290
- │ │ └── vaildateEnv.ts
291
- │ │
292
- │ ├── app.ts
293
- │ └── server.ts
294
-
295
- ├── .dockerignore
296
- ├── .editorconfig
297
- ├── .env.development.local
298
- ├── .env.production.local
299
- ├── .env.test.local
300
- ├── .eslintignore
301
- ├── .eslintrc
302
- ├── .gitignore
303
- ├── .huskyrc
304
- ├── .lintstagedrc.json
305
- ├── .prettierrc
306
- ├── .swcrc
307
- ├── docker-compose.yml
308
- ├── Dockerfile.dev
309
- ├── Dockerfile.prod
310
- ├── ecosystem.config.js
311
- ├── jest.config.js
312
- ├── Makefile
313
- ├── nginx.conf
314
- ├── nodemon.json
315
- ├── package-lock.json
316
- ├── package.json
317
- ├── swagger.yaml
318
- └── tsconfig.json
102
+ src/
103
+ ├── config/ # 환경 변수, 설정 파일
104
+ ├── controllers/ # 요청 처리 및 응답 반환
105
+ ├── dtos/ # 요청/응답 데이터 구조 정의
106
+ ├── exceptions/ # 커스텀 예외 클래스
107
+ ├── interfaces/ # 타입/인터페이스 정의
108
+ ├── middlewares/ # 미들웨어 (로그, 인증, 에러 처리 등)
109
+ ├── repositories/ # 데이터베이스 접근 로직
110
+ ├── routes/ # 라우팅 정의
111
+ ├── services/ # 비즈니스 로직
112
+ ├── utils/ # 유틸리티 함수
113
+ ├── app.ts # Express 앱 초기화
114
+ └── server.ts # 서버 실행 엔트리 포인트
115
+
116
+ .env # 기본 환경 변수
117
+ .env.development.local # 개발 환경 변수
118
+ .env.production.local # 운영 환경 변수
119
+ .env.test.local # 테스트 환경 변수
120
+ nodemon.json # Nodemon 환경 변수
121
+ swagger.yaml # Swagger API 문서 정의
122
+ tsconfig.jsnon # TypeScript 환경 변수
319
123
  ```
320
124
 
125
+ ## 🛠 사용 가능한 개발 도구
126
+
127
+ 프로젝트 설정 중 다음 카테고리에서 선택할 수 있습니다:
128
+
129
+ | 카테고리 | 사용 가능한 도구 | 설명 |
130
+ | ---------- | ------------------------ | ------------------------------------------- |
131
+ | **린터** | `biome`, `eslint` | 코드 포맷팅 및 린팅 (Biome은 올인원) |
132
+ | **번들러** | `swc`, `tsup` | 빠른 TypeScript 컴파일 및 번들링 |
133
+ | **테스트** | `jest`, `vitest` | 단위 및 통합 테스트 프레임워크 |
134
+ | **프로세스** | `pm2` | 프로덕션 프로세스 관리 |
135
+ | **CI/CD** | `github` | GitHub Actions 워크플로우 |
136
+ | **Git 훅** | `husky` | 품질 관리를 위한 Pre-commit 훅 |
137
+ | **컨테이너** | `docker` | Docker 및 docker-compose 구성 |
138
+ | **API 문서** | `swagger` | OpenAPI/Swagger 문서 |
139
+
140
+ **스마트 선택**: CLI가 도구 의존성과 호환성을 자동으로 해결합니다.
141
+
142
+ ## 🧩 사용 가능한 템플릿
143
+
144
+ 현재 템플릿 상태 (더 많은 템플릿 추가 예정!):
145
+
146
+ ### ✅ **현재 사용 가능**
147
+ | 템플릿 | 설명 | 상태 |
148
+ | ---------- | ------------------------------ | ------ |
149
+ | `default` | Express + TypeScript 스타터 | ✅ 활성 |
150
+
151
+ ### 🚧 **개발 예정**
152
+
153
+ #### **ORM/데이터베이스 연동**
154
+ | 템플릿 | 설명 | 우선순위 |
155
+ | ------------------ | ------------------------------ | -------- |
156
+ | `prisma` | 타입 안전 데이터베이스 클라이언트, 자동 타입 생성 | 🔥 높음 |
157
+ | `drizzle` | 런타임 오버헤드 없는 TypeScript 우선 ORM | 🔥 높음 |
158
+ | `mikro-orm` | TypeScript용 Data Mapper ORM 패턴 | 🔥 높음 |
159
+ | `mongoose` | Node.js용 우아한 MongoDB ODM | 🔥 높음 |
160
+ | `node-postgres` | 고성능 PostgreSQL 원시 드라이버 (pg) | 🚧 개발 중 |
161
+ | `knex` | 유연한 SQL 쿼리 빌더 및 마이그레이션 | 🚧 개발 중 |
162
+ | `typeorm` | 데코레이터 기반 Active Record ORM | 🚧 개발 중 |
163
+ | `sequelize` | 성숙한 Promise 기반 SQL ORM | 🚧 개발 중 |
164
+ | `typegoose` | TypeScript 친화적 Mongoose 대안 | 🚧 개발 중 |
165
+
166
+ #### **아키텍처/컨트롤러 스타일**
167
+ | 템플릿 | 설명 | 우선순위 |
168
+ | ------------------ | ------------------------------ | -------- |
169
+ | `graphql` | Apollo Server 기반 GraphQL API 스키마 | 🚧 개발 중 |
170
+
171
+ > **참고**: 현재 `default` 템플릿에 집중하고 있습니다. 추가 템플릿은 완성 및 테스트가 끝나면 활성화될 예정입니다.
172
+
173
+ ## 🤔 이 CLI를 사용하는 이유?
174
+
175
+ ### vs. 수동 설정
176
+ | 측면 | 수동 설정 | TypeScript Express Starter CLI |
177
+ | ---------------- | --------------------------------- | ------------------------------------- |
178
+ | **시간** | 🔴 수 시간의 구성 작업 | ✅ 2-3분 대화형 설정 |
179
+ | **구성** | 🔴 수동 의존성 관리 | ✅ 자동 해결, 호환 버전 |
180
+ | **모범 사례** | 🔴 연구 필요 | ✅ 사전 구성된 업계 표준 |
181
+ | **일관성** | 🔴 개발자마다 다름 | ✅ 표준화된 프로젝트 구조 |
182
+ | **업데이트** | 🔴 수동 유지보수 | ✅ CLI 업데이트로 새 기능 제공 |
183
+
184
+ ### vs. 다른 생성기
185
+ | 기능 | TypeScript Express Starter | 다른 생성기 |
186
+ | ---------------- | -------------------------- | ---------------- |
187
+ | **데이터베이스 선택** | ✅ 10개 이상 옵션 계획 | 제한된 옵션 |
188
+ | **도구 선택** | ✅ 믹스 앤 매치 개발 도구 | 고정된 스택 |
189
+ | **TypeScript 우선** | ✅ TypeScript를 위해 제작 | 주로 JS 우선 |
190
+ | **프로덕션 준비** | ✅ Docker, PM2 포함 | 기본 설정 |
191
+
192
+ ## 📄 라이선스
193
+
194
+ MIT(LICENSE) © AGUMON (ljlm0402)
195
+
321
196
  ## ⭐️ 응원해주신 분들
322
197
 
323
198
  [![Stargazers repo roster for @ljlm0402/typescript-express-starter](https://reporoster.com/stars/ljlm0402/typescript-express-starter)](https://github.com/ljlm0402/typescript-express-starter/stargazers)
@@ -329,29 +204,3 @@ VSCode Extension에서 [REST Client](https://marketplace.visualstudio.com/items?
329
204
  ## 🤝 도움주신 분들
330
205
 
331
206
  [![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)
332
-
333
- ## 💳 라이선스
334
-
335
- [MIT](LICENSE)
336
-
337
- ## 📑 커밋 메시지 정의
338
-
339
- | 언제 | 메시지 |
340
- | :----------------- | :-------------------- |
341
- | 기능 추가 | ✨ 기능 추가 |
342
- | 버그 수정 | 🐞 버그 수정 |
343
- | 코드 개선 | 🛠 코드 개선 |
344
- | 패키지 설치 | 📦 패키지 설치 |
345
- | 문서 수정 | 📚 문서 수정 |
346
- | 버전 업데이트 | 🌼 버전 업데이트 |
347
- | 새로운 템플릿 추가 | 🎉 새로운 템플릿 추가 |
348
-
349
- ## 📬 이슈를 남겨주세요
350
-
351
- 건의 사항이나 질문 등을 이슈로 남겨주세요.
352
-
353
- 최선을 다해 답변하고 반영하겠습니다.
354
-
355
- 관심을 가져주셔서 감사합니다.
356
-
357
- # ദ്ദി*ˊᗜˋ*)