typescript-express-starter 9.1.2 → 10.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 (401) hide show
  1. package/.vscode/configurationCache.log +1 -0
  2. package/.vscode/dryrun.log +6 -0
  3. package/.vscode/settings.json +3 -0
  4. package/.vscode/targets.log +239 -0
  5. package/CONTRIBUTORS.md +61 -0
  6. package/README.kr.md +122 -161
  7. package/README.md +118 -157
  8. package/bin/cli.js +1 -1
  9. package/lib/default/.swcrc +0 -3
  10. package/lib/default/Dockerfile.dev +18 -0
  11. package/lib/default/Dockerfile.prod +18 -0
  12. package/lib/default/Makefile +29 -16
  13. package/lib/default/docker-compose.yml +8 -8
  14. package/lib/default/jest.config.js +1 -1
  15. package/lib/default/package.json +42 -40
  16. package/lib/default/src/app.ts +4 -5
  17. package/lib/default/src/controllers/auth.controller.ts +9 -11
  18. package/lib/default/src/controllers/users.controller.ts +11 -13
  19. package/lib/default/src/dtos/users.dto.ts +12 -1
  20. package/lib/default/src/interfaces/users.interface.ts +2 -2
  21. package/lib/default/src/middlewares/auth.middleware.ts +16 -10
  22. package/lib/default/src/middlewares/error.middleware.ts +2 -4
  23. package/lib/default/src/middlewares/validation.middleware.ts +22 -20
  24. package/lib/default/src/models/users.model.ts +6 -8
  25. package/lib/default/src/routes/auth.route.ts +8 -11
  26. package/lib/default/src/routes/users.route.ts +10 -12
  27. package/lib/default/src/server.ts +6 -7
  28. package/lib/default/src/services/auth.service.ts +25 -36
  29. package/lib/default/src/services/users.service.ts +20 -29
  30. package/lib/{graphql/src/tests → default/src/test}/auth.test.ts +21 -21
  31. package/lib/default/src/test/users.test.ts +62 -0
  32. package/lib/default/src/utils/validateEnv.ts +1 -3
  33. package/lib/default/tsconfig.json +1 -1
  34. package/lib/graphql/.env.development.local +6 -6
  35. package/lib/graphql/.env.production.local +6 -6
  36. package/lib/graphql/.env.test.local +6 -6
  37. package/lib/graphql/.swcrc +1 -1
  38. package/lib/graphql/Dockerfile.dev +19 -0
  39. package/lib/graphql/Dockerfile.prod +19 -0
  40. package/lib/graphql/Makefile +32 -15
  41. package/lib/graphql/docker-compose.yml +23 -15
  42. package/lib/graphql/jest.config.js +1 -1
  43. package/lib/graphql/package.json +42 -41
  44. package/lib/graphql/src/app.ts +14 -13
  45. package/lib/graphql/src/config/index.ts +2 -2
  46. package/lib/{typeorm/src/databases → graphql/src/database}/index.ts +6 -6
  47. package/lib/graphql/src/dtos/users.dto.ts +14 -1
  48. package/lib/graphql/src/interfaces/users.interface.ts +2 -2
  49. package/lib/graphql/src/middlewares/auth.middleware.ts +16 -6
  50. package/lib/graphql/src/middlewares/error.middleware.ts +2 -4
  51. package/lib/graphql/src/repositories/auth.repository.ts +19 -27
  52. package/lib/graphql/src/repositories/users.repository.ts +9 -18
  53. package/lib/graphql/src/resolvers/auth.resolver.ts +2 -2
  54. package/lib/graphql/src/resolvers/users.resolver.ts +4 -4
  55. package/lib/graphql/src/server.ts +6 -7
  56. package/lib/graphql/src/test/auth.test.ts +10 -0
  57. package/lib/graphql/src/test/users.test.ts +11 -0
  58. package/lib/graphql/src/typedefs/users.type.ts +2 -2
  59. package/lib/graphql/src/utils/logger.ts +2 -0
  60. package/lib/graphql/src/utils/validateEnv.ts +1 -3
  61. package/lib/graphql/tsconfig.json +2 -2
  62. package/lib/knex/.env.development.local +2 -2
  63. package/lib/knex/.env.production.local +3 -3
  64. package/lib/knex/.env.test.local +3 -3
  65. package/lib/knex/.swcrc +1 -1
  66. package/lib/knex/Dockerfile.dev +19 -0
  67. package/lib/knex/Dockerfile.prod +19 -0
  68. package/lib/knex/Makefile +32 -15
  69. package/lib/knex/docker-compose.yml +19 -14
  70. package/lib/knex/jest.config.js +1 -1
  71. package/lib/knex/knexfile.ts +8 -8
  72. package/lib/knex/package.json +44 -42
  73. package/lib/knex/src/app.ts +6 -7
  74. package/lib/knex/src/config/index.ts +2 -1
  75. package/lib/knex/src/controllers/auth.controller.ts +9 -11
  76. package/lib/knex/src/controllers/users.controller.ts +10 -12
  77. package/lib/knex/src/{databases → database}/index.ts +4 -4
  78. package/lib/knex/src/database/migrations/20210713110926_initial.ts +17 -0
  79. package/lib/knex/src/dtos/users.dto.ts +12 -1
  80. package/lib/knex/src/interfaces/users.interface.ts +2 -2
  81. package/lib/knex/src/middlewares/auth.middleware.ts +17 -10
  82. package/lib/knex/src/middlewares/error.middleware.ts +2 -4
  83. package/lib/knex/src/middlewares/validation.middleware.ts +22 -20
  84. package/lib/knex/src/models/users.model.ts +2 -2
  85. package/lib/knex/src/routes/auth.route.ts +8 -10
  86. package/lib/knex/src/routes/users.route.ts +10 -12
  87. package/lib/knex/src/server.ts +6 -7
  88. package/lib/knex/src/services/auth.service.ts +27 -36
  89. package/lib/knex/src/services/users.service.ts +18 -23
  90. package/lib/knex/src/{tests → test}/auth.test.ts +2 -2
  91. package/lib/knex/src/{tests → test}/users.test.ts +2 -2
  92. package/lib/knex/src/utils/validateEnv.ts +1 -3
  93. package/lib/knex/tsconfig.json +2 -2
  94. package/lib/mikro-orm/.env.production.local +1 -1
  95. package/lib/mikro-orm/.env.test.local +1 -1
  96. package/lib/mikro-orm/.swcrc +1 -1
  97. package/lib/mikro-orm/Dockerfile.dev +19 -0
  98. package/lib/mikro-orm/Dockerfile.prod +19 -0
  99. package/lib/mikro-orm/Makefile +32 -15
  100. package/lib/mikro-orm/docker-compose.yml +20 -11
  101. package/lib/mikro-orm/package.json +42 -40
  102. package/lib/mikro-orm/src/app.ts +10 -12
  103. package/lib/mikro-orm/src/config/index.ts +2 -1
  104. package/lib/mikro-orm/src/controllers/auth.controller.ts +9 -11
  105. package/lib/mikro-orm/src/controllers/users.controller.ts +11 -13
  106. package/lib/mikro-orm/src/dtos/users.dto.ts +12 -1
  107. package/lib/mikro-orm/src/interfaces/users.interface.ts +1 -1
  108. package/lib/mikro-orm/src/middlewares/auth.middleware.ts +17 -10
  109. package/lib/mikro-orm/src/middlewares/error.middleware.ts +2 -4
  110. package/lib/mikro-orm/src/middlewares/validation.middleware.ts +22 -20
  111. package/lib/mikro-orm/src/routes/auth.route.ts +8 -10
  112. package/lib/mikro-orm/src/routes/users.route.ts +9 -11
  113. package/lib/mikro-orm/src/server.ts +6 -7
  114. package/lib/mikro-orm/src/services/auth.service.ts +23 -33
  115. package/lib/mikro-orm/src/services/users.service.ts +13 -21
  116. package/lib/mikro-orm/src/{tests → test}/auth.test.ts +3 -4
  117. package/lib/mikro-orm/src/{tests → test}/users.test.ts +4 -5
  118. package/lib/mikro-orm/src/utils/validateEnv.ts +1 -3
  119. package/lib/mikro-orm/tsconfig.json +2 -2
  120. package/lib/mongoose/.env.production.local +1 -1
  121. package/lib/mongoose/.env.test.local +1 -1
  122. package/lib/mongoose/.swcrc +1 -1
  123. package/lib/mongoose/Dockerfile.dev +19 -0
  124. package/lib/mongoose/Dockerfile.prod +19 -0
  125. package/lib/mongoose/Makefile +32 -15
  126. package/lib/mongoose/docker-compose.yml +20 -11
  127. package/lib/mongoose/jest.config.js +1 -1
  128. package/lib/mongoose/package.json +43 -41
  129. package/lib/mongoose/src/app.ts +6 -7
  130. package/lib/mongoose/src/config/index.ts +2 -1
  131. package/lib/mongoose/src/controllers/auth.controller.ts +9 -11
  132. package/lib/mongoose/src/controllers/users.controller.ts +11 -13
  133. package/lib/mongoose/src/{databases → database}/index.ts +1 -2
  134. package/lib/mongoose/src/dtos/users.dto.ts +12 -1
  135. package/lib/mongoose/src/interfaces/users.interface.ts +1 -1
  136. package/lib/mongoose/src/middlewares/auth.middleware.ts +16 -9
  137. package/lib/mongoose/src/middlewares/error.middleware.ts +2 -4
  138. package/lib/mongoose/src/middlewares/validation.middleware.ts +22 -20
  139. package/lib/mongoose/src/models/users.model.ts +2 -4
  140. package/lib/mongoose/src/routes/auth.route.ts +8 -10
  141. package/lib/mongoose/src/routes/users.route.ts +9 -11
  142. package/lib/mongoose/src/server.ts +6 -7
  143. package/lib/mongoose/src/services/auth.service.ts +26 -37
  144. package/lib/mongoose/src/services/users.service.ts +19 -29
  145. package/lib/{typegoose/src/tests → mongoose/src/test}/users.test.ts +7 -7
  146. package/lib/mongoose/src/utils/validateEnv.ts +1 -3
  147. package/lib/mongoose/tsconfig.json +2 -2
  148. package/lib/node-postgres/.dockerignore +18 -0
  149. package/lib/node-postgres/.editorconfig +9 -0
  150. package/lib/node-postgres/.env.development.local +13 -0
  151. package/lib/node-postgres/.env.production.local +13 -0
  152. package/lib/node-postgres/.env.test.local +13 -0
  153. package/lib/node-postgres/.eslintignore +1 -0
  154. package/lib/node-postgres/.eslintrc +18 -0
  155. package/lib/node-postgres/.huskyrc +5 -0
  156. package/lib/node-postgres/.lintstagedrc.json +5 -0
  157. package/lib/node-postgres/.prettierrc +8 -0
  158. package/lib/node-postgres/.swcrc +39 -0
  159. package/lib/node-postgres/.vscode/launch.json +35 -0
  160. package/lib/node-postgres/.vscode/settings.json +6 -0
  161. package/lib/node-postgres/Dockerfile.dev +17 -0
  162. package/lib/node-postgres/Dockerfile.prod +17 -0
  163. package/lib/node-postgres/Makefile +46 -0
  164. package/lib/node-postgres/docker-compose.yml +61 -0
  165. package/lib/node-postgres/ecosystem.config.js +57 -0
  166. package/lib/node-postgres/jest.config.js +12 -0
  167. package/lib/node-postgres/nginx.conf +40 -0
  168. package/lib/node-postgres/nodemon.json +12 -0
  169. package/lib/node-postgres/package.json +78 -0
  170. package/lib/node-postgres/src/app.ts +87 -0
  171. package/lib/node-postgres/src/config/index.ts +6 -0
  172. package/lib/node-postgres/src/controllers/auth.controller.ts +44 -0
  173. package/lib/node-postgres/src/controllers/users.controller.ts +63 -0
  174. package/lib/node-postgres/src/database/index.ts +6 -0
  175. package/lib/node-postgres/src/database/init.sql +110 -0
  176. package/lib/node-postgres/src/dtos/users.dto.ts +20 -0
  177. package/lib/node-postgres/src/http/auth.http +27 -0
  178. package/lib/node-postgres/src/http/users.http +34 -0
  179. package/lib/node-postgres/src/interfaces/auth.interface.ts +15 -0
  180. package/lib/node-postgres/src/interfaces/routes.interface.ts +6 -0
  181. package/lib/node-postgres/src/interfaces/users.interface.ts +5 -0
  182. package/lib/node-postgres/src/middlewares/auth.middleware.ts +38 -0
  183. package/lib/node-postgres/src/middlewares/error.middleware.ts +15 -0
  184. package/lib/node-postgres/src/middlewares/validation.middleware.ts +27 -0
  185. package/lib/node-postgres/src/models/users.model.ts +9 -0
  186. package/lib/node-postgres/src/routes/auth.route.ts +21 -0
  187. package/lib/node-postgres/src/routes/users.route.ts +23 -0
  188. package/lib/node-postgres/src/server.ts +10 -0
  189. package/lib/node-postgres/src/services/auth.service.ts +52 -0
  190. package/lib/node-postgres/src/services/users.service.ts +51 -0
  191. package/lib/{default/src/tests → node-postgres/src/test}/auth.test.ts +2 -2
  192. package/lib/{default/src/tests → node-postgres/src/test}/users.test.ts +5 -5
  193. package/lib/node-postgres/src/utils/logger.ts +65 -0
  194. package/lib/node-postgres/src/utils/validateEnv.ts +8 -0
  195. package/lib/node-postgres/swagger.yaml +123 -0
  196. package/lib/node-postgres/tsconfig.json +40 -0
  197. package/lib/prisma/.env.production.local +1 -1
  198. package/lib/prisma/.env.test.local +1 -1
  199. package/lib/prisma/Dockerfile.dev +19 -0
  200. package/lib/prisma/Dockerfile.prod +19 -0
  201. package/lib/prisma/Makefile +32 -15
  202. package/lib/prisma/docker-compose.yml +15 -14
  203. package/lib/prisma/jest.config.js +1 -1
  204. package/lib/prisma/package.json +43 -41
  205. package/lib/prisma/src/app.ts +4 -5
  206. package/lib/prisma/src/controllers/auth.controller.ts +10 -12
  207. package/lib/prisma/src/controllers/users.controller.ts +12 -14
  208. package/lib/prisma/src/dtos/users.dto.ts +12 -1
  209. package/lib/prisma/src/interfaces/auth.interface.ts +1 -1
  210. package/lib/prisma/src/interfaces/users.interface.ts +5 -0
  211. package/lib/prisma/src/middlewares/auth.middleware.ts +16 -11
  212. package/lib/prisma/src/middlewares/error.middleware.ts +2 -4
  213. package/lib/prisma/src/middlewares/validation.middleware.ts +22 -20
  214. package/lib/prisma/src/routes/auth.route.ts +8 -10
  215. package/lib/prisma/src/routes/users.route.ts +9 -11
  216. package/lib/prisma/src/server.ts +6 -7
  217. package/lib/prisma/src/services/auth.service.ts +10 -16
  218. package/lib/prisma/src/services/users.service.ts +19 -27
  219. package/lib/prisma/src/utils/validateEnv.ts +1 -3
  220. package/lib/prisma/tsconfig.json +1 -1
  221. package/lib/routing-controllers/Dockerfile.dev +19 -0
  222. package/lib/routing-controllers/Dockerfile.prod +19 -0
  223. package/lib/routing-controllers/Makefile +29 -16
  224. package/lib/routing-controllers/docker-compose.yml +9 -9
  225. package/lib/routing-controllers/jest.config.js +1 -1
  226. package/lib/routing-controllers/package.json +41 -40
  227. package/lib/routing-controllers/src/app.ts +4 -6
  228. package/lib/routing-controllers/src/controllers/auth.controller.ts +13 -12
  229. package/lib/routing-controllers/src/controllers/users.controller.ts +15 -13
  230. package/lib/routing-controllers/src/dtos/users.dto.ts +12 -1
  231. package/lib/routing-controllers/src/interfaces/users.interface.ts +1 -1
  232. package/lib/routing-controllers/src/middlewares/auth.middleware.ts +16 -10
  233. package/lib/routing-controllers/src/middlewares/error.middleware.ts +2 -5
  234. package/lib/routing-controllers/src/middlewares/validation.middleware.ts +23 -27
  235. package/lib/routing-controllers/src/models/users.model.ts +1 -3
  236. package/lib/routing-controllers/src/server.ts +5 -6
  237. package/lib/routing-controllers/src/services/auth.service.ts +25 -35
  238. package/lib/routing-controllers/src/services/users.service.ts +17 -25
  239. package/lib/routing-controllers/src/{tests → test}/auth.test.ts +1 -1
  240. package/lib/routing-controllers/src/{tests → test}/users.test.ts +10 -10
  241. package/lib/routing-controllers/src/utils/validateEnv.ts +1 -3
  242. package/lib/routing-controllers/tsconfig.json +1 -1
  243. package/lib/sequelize/.env.development.local +2 -2
  244. package/lib/sequelize/.env.production.local +3 -3
  245. package/lib/sequelize/.env.test.local +3 -3
  246. package/lib/sequelize/.swcrc +1 -1
  247. package/lib/sequelize/Dockerfile.dev +23 -0
  248. package/lib/sequelize/Dockerfile.prod +23 -0
  249. package/lib/sequelize/Makefile +32 -15
  250. package/lib/sequelize/docker-compose.yml +19 -14
  251. package/lib/sequelize/jest.config.js +1 -1
  252. package/lib/sequelize/package.json +45 -43
  253. package/lib/sequelize/src/app.ts +5 -6
  254. package/lib/sequelize/src/config/index.ts +2 -1
  255. package/lib/sequelize/src/controllers/auth.controller.ts +7 -8
  256. package/lib/sequelize/src/controllers/users.controller.ts +9 -10
  257. package/lib/sequelize/src/{databases → database}/index.ts +1 -3
  258. package/lib/sequelize/src/dtos/users.dto.ts +12 -1
  259. package/lib/sequelize/src/interfaces/users.interface.ts +1 -1
  260. package/lib/sequelize/src/middlewares/auth.middleware.ts +16 -10
  261. package/lib/sequelize/src/middlewares/error.middleware.ts +2 -4
  262. package/lib/sequelize/src/middlewares/validation.middleware.ts +22 -20
  263. package/lib/sequelize/src/routes/auth.route.ts +8 -11
  264. package/lib/sequelize/src/routes/users.route.ts +9 -11
  265. package/lib/sequelize/src/server.ts +6 -7
  266. package/lib/sequelize/src/services/auth.service.ts +24 -35
  267. package/lib/sequelize/src/services/users.service.ts +18 -29
  268. package/lib/sequelize/src/{tests → test}/auth.test.ts +2 -2
  269. package/lib/sequelize/src/{tests → test}/users.test.ts +2 -2
  270. package/lib/sequelize/src/utils/validateEnv.ts +1 -3
  271. package/lib/sequelize/tsconfig.json +2 -2
  272. package/lib/starter.js +18 -27
  273. package/lib/typegoose/.env.production.local +1 -1
  274. package/lib/typegoose/.env.test.local +1 -1
  275. package/lib/typegoose/.swcrc +1 -1
  276. package/lib/typegoose/Dockerfile.dev +19 -0
  277. package/lib/typegoose/Dockerfile.prod +19 -0
  278. package/lib/typegoose/Makefile +32 -15
  279. package/lib/typegoose/docker-compose.yml +20 -11
  280. package/lib/typegoose/jest.config.js +1 -1
  281. package/lib/typegoose/package.json +41 -39
  282. package/lib/typegoose/src/app.ts +3 -2
  283. package/lib/typegoose/src/config/index.ts +2 -1
  284. package/lib/typegoose/src/controllers/auth.controller.ts +9 -11
  285. package/lib/typegoose/src/controllers/users.controller.ts +11 -13
  286. package/lib/typegoose/src/database/index.ts +11 -0
  287. package/lib/typegoose/src/dtos/users.dto.ts +12 -1
  288. package/lib/typegoose/src/interfaces/users.interface.ts +1 -1
  289. package/lib/typegoose/src/middlewares/auth.middleware.ts +16 -10
  290. package/lib/typegoose/src/middlewares/error.middleware.ts +2 -4
  291. package/lib/typegoose/src/middlewares/validation.middleware.ts +22 -20
  292. package/lib/typegoose/src/models/users.model.ts +1 -3
  293. package/lib/typegoose/src/routes/auth.route.ts +8 -11
  294. package/lib/typegoose/src/routes/users.route.ts +9 -11
  295. package/lib/typegoose/src/server.ts +5 -6
  296. package/lib/typegoose/src/services/auth.service.ts +27 -36
  297. package/lib/typegoose/src/services/users.service.ts +17 -26
  298. package/lib/typegoose/src/{tests → test}/auth.test.ts +2 -2
  299. package/lib/{mongoose/src/tests → typegoose/src/test}/users.test.ts +7 -7
  300. package/lib/typegoose/src/utils/validateEnv.ts +1 -3
  301. package/lib/typegoose/tsconfig.json +2 -2
  302. package/lib/typeorm/.env.development.local +2 -2
  303. package/lib/typeorm/.env.production.local +3 -3
  304. package/lib/typeorm/.env.test.local +3 -3
  305. package/lib/typeorm/.swcrc +1 -1
  306. package/lib/typeorm/Dockerfile.dev +19 -0
  307. package/lib/typeorm/Dockerfile.prod +19 -0
  308. package/lib/typeorm/Makefile +32 -15
  309. package/lib/typeorm/docker-compose.yml +21 -14
  310. package/lib/typeorm/jest.config.js +1 -1
  311. package/lib/typeorm/package.json +42 -41
  312. package/lib/typeorm/src/app.ts +6 -8
  313. package/lib/typeorm/src/config/index.ts +2 -1
  314. package/lib/typeorm/src/controllers/auth.controller.ts +9 -11
  315. package/lib/typeorm/src/controllers/users.controller.ts +11 -13
  316. package/lib/{graphql/src/databases → typeorm/src/database}/index.ts +3 -3
  317. package/lib/typeorm/src/dtos/users.dto.ts +12 -1
  318. package/lib/typeorm/src/exceptions/httpException.ts +10 -0
  319. package/lib/typeorm/src/interfaces/users.interface.ts +1 -1
  320. package/lib/typeorm/src/middlewares/auth.middleware.ts +14 -7
  321. package/lib/typeorm/src/middlewares/error.middleware.ts +2 -4
  322. package/lib/typeorm/src/middlewares/validation.middleware.ts +22 -20
  323. package/lib/typeorm/src/routes/auth.route.ts +8 -11
  324. package/lib/typeorm/src/routes/users.route.ts +9 -11
  325. package/lib/typeorm/src/server.ts +6 -7
  326. package/lib/typeorm/src/services/auth.service.ts +24 -32
  327. package/lib/typeorm/src/services/users.service.ts +10 -20
  328. package/lib/typeorm/src/{tests → test}/auth.test.ts +10 -11
  329. package/lib/typeorm/src/{tests → test}/users.test.ts +34 -38
  330. package/lib/typeorm/src/utils/validateEnv.ts +1 -3
  331. package/lib/typeorm/tsconfig.json +2 -2
  332. package/package.json +3 -3
  333. package/lib/default/Dockerfile +0 -24
  334. package/lib/default/src/controllers/index.controller.ts +0 -13
  335. package/lib/default/src/routes/index.route.ts +0 -19
  336. package/lib/default/src/utils/util.ts +0 -19
  337. package/lib/graphql/Dockerfile +0 -24
  338. package/lib/graphql/src/tests/index.test.ts +0 -18
  339. package/lib/graphql/src/tests/users.test.ts +0 -71
  340. package/lib/graphql/src/utils/util.ts +0 -19
  341. package/lib/knex/Dockerfile +0 -24
  342. package/lib/knex/src/controllers/index.controller.ts +0 -13
  343. package/lib/knex/src/databases/migrations/20210713110926_initial.ts +0 -13
  344. package/lib/knex/src/routes/index.route.ts +0 -19
  345. package/lib/knex/src/tests/index.test.ts +0 -17
  346. package/lib/knex/src/utils/util.ts +0 -19
  347. package/lib/mikro-orm/Dockerfile +0 -24
  348. package/lib/mikro-orm/src/controllers/index.controller.ts +0 -13
  349. package/lib/mikro-orm/src/routes/index.route.ts +0 -19
  350. package/lib/mikro-orm/src/tests/index.test.ts +0 -18
  351. package/lib/mikro-orm/src/utils/util.ts +0 -19
  352. package/lib/mongoose/Dockerfile +0 -24
  353. package/lib/mongoose/src/controllers/index.controller.ts +0 -13
  354. package/lib/mongoose/src/routes/index.route.ts +0 -19
  355. package/lib/mongoose/src/utils/util.ts +0 -19
  356. package/lib/prisma/Dockerfile +0 -24
  357. package/lib/prisma/src/controllers/index.controller.ts +0 -13
  358. package/lib/prisma/src/routes/index.route.ts +0 -19
  359. package/lib/prisma/src/tests/index.test.ts +0 -18
  360. package/lib/prisma/src/utils/util.ts +0 -19
  361. package/lib/routing-controllers/Dockerfile +0 -24
  362. package/lib/routing-controllers/src/controllers/index.controller.ts +0 -9
  363. package/lib/routing-controllers/src/tests/index.test.ts +0 -17
  364. package/lib/routing-controllers/src/utils/util.ts +0 -19
  365. package/lib/sequelize/Dockerfile +0 -28
  366. package/lib/sequelize/src/controllers/index.controller.ts +0 -13
  367. package/lib/sequelize/src/routes/index.route.ts +0 -19
  368. package/lib/sequelize/src/tests/index.test.ts +0 -18
  369. package/lib/sequelize/src/utils/util.ts +0 -19
  370. package/lib/typegoose/Dockerfile +0 -24
  371. package/lib/typegoose/src/controllers/index.controller.ts +0 -13
  372. package/lib/typegoose/src/databases/index.ts +0 -3
  373. package/lib/typegoose/src/routes/index.route.ts +0 -19
  374. package/lib/typegoose/src/tests/index.test.ts +0 -18
  375. package/lib/typegoose/src/utils/util.ts +0 -19
  376. package/lib/typeorm/Dockerfile +0 -24
  377. package/lib/typeorm/src/controllers/index.controller.ts +0 -13
  378. package/lib/typeorm/src/routes/index.route.ts +0 -19
  379. package/lib/typeorm/src/tests/index.test.ts +0 -18
  380. package/lib/typeorm/src/utils/util.ts +0 -19
  381. package/lib/default/src/exceptions/{HttpException.ts → httpException.ts} +0 -0
  382. package/lib/graphql/src/exceptions/{HttpException.ts → httpException.ts} +0 -0
  383. package/lib/knex/src/{databases → database}/migrations/.gitkeep +0 -0
  384. package/lib/knex/src/{databases → database}/seeds/.gitkeep +0 -0
  385. package/lib/knex/src/exceptions/{HttpException.ts → httpException.ts} +0 -0
  386. package/lib/mikro-orm/src/{databases → database}/index.ts +0 -0
  387. package/lib/mikro-orm/src/exceptions/{HttpException.ts → httpException.ts} +0 -0
  388. package/lib/mongoose/src/exceptions/{HttpException.ts → httpException.ts} +0 -0
  389. package/lib/mongoose/src/{tests → test}/auth.test.ts +0 -0
  390. package/lib/{default/src/tests → mongoose/src/test}/index.test.ts +0 -0
  391. package/lib/{prisma/src/exceptions/HttpException.ts → node-postgres/src/exceptions/httpException.ts} +0 -0
  392. package/lib/{sequelize/src/exceptions/HttpException.ts → prisma/src/exceptions/httpException.ts} +0 -0
  393. package/lib/prisma/src/{tests → test}/auth.test.ts +1 -1
  394. package/lib/{mongoose/src/tests → prisma/src/test}/index.test.ts +0 -0
  395. package/lib/prisma/src/{tests → test}/users.test.ts +1 -1
  396. /package/lib/routing-controllers/src/exceptions/{HttpException.ts → httpException.ts} +0 -0
  397. /package/lib/sequelize/src/{migrations → database/migrations}/.gitkeep +0 -0
  398. /package/lib/sequelize/src/{seeders → database/seeders}/.gitkeep +0 -0
  399. /package/lib/{typegoose/src/exceptions/HttpException.ts → sequelize/src/exceptions/httpException.ts} +0 -0
  400. /package/lib/{typeorm/src/exceptions/HttpException.ts → typegoose/src/exceptions/httpException.ts} +0 -0
  401. /package/lib/typeorm/src/{migration → database/migrations}/.gitkeep +0 -0
@@ -1,63 +1,53 @@
1
1
  import { compare, hash } from 'bcrypt';
2
2
  import { sign } from 'jsonwebtoken';
3
+ import { Service } from 'typedi';
3
4
  import { SECRET_KEY } from '@config';
4
5
  import { CreateUserDto } from '@dtos/users.dto';
5
- import { HttpException } from '@exceptions/HttpException';
6
+ import { HttpException } from '@exceptions/httpException';
6
7
  import { DataStoredInToken, TokenData } from '@interfaces/auth.interface';
7
8
  import { User } from '@interfaces/users.interface';
8
- import userModel from '@models/users.model';
9
- import { isEmpty } from '@utils/util';
9
+ import { UserModel } from '@models/users.model';
10
10
 
11
- class AuthService {
12
- public users = userModel;
11
+ const createToken = (user: User): TokenData => {
12
+ const dataStoredInToken: DataStoredInToken = { id: user.id };
13
+ const expiresIn: number = 60 * 60;
13
14
 
14
- public async signup(userData: CreateUserDto): Promise<User> {
15
- if (isEmpty(userData)) throw new HttpException(400, "You're not userData");
15
+ return { expiresIn, token: sign(dataStoredInToken, SECRET_KEY, { expiresIn }) };
16
+ }
16
17
 
17
- const findUser: User = this.users.find(user => user.email === userData.email);
18
- if (findUser) throw new HttpException(409, `You're email ${userData.email} already exists`);
18
+ const createCookie = (tokenData: TokenData): string => {
19
+ return `Authorization=${tokenData.token}; HttpOnly; Max-Age=${tokenData.expiresIn};`;
20
+ }
21
+
22
+ @Service()
23
+ export class AuthService {
24
+ public async signup(userData: CreateUserDto): Promise<User> {
25
+ const findUser: User = UserModel.find(user => user.email === userData.email);
26
+ if (findUser) throw new HttpException(409, `This email ${userData.email} already exists`);
19
27
 
20
28
  const hashedPassword = await hash(userData.password, 10);
21
- const createUserData: User = { id: this.users.length + 1, ...userData, password: hashedPassword };
29
+ const createUserData: User = { id: UserModel.length + 1, ...userData, password: hashedPassword };
22
30
 
23
31
  return createUserData;
24
32
  }
25
33
 
26
34
  public async login(userData: CreateUserDto): Promise<{ cookie: string; findUser: User }> {
27
- if (isEmpty(userData)) throw new HttpException(400, "You're not userData");
28
-
29
- const findUser: User = this.users.find(user => user.email === userData.email);
30
- if (!findUser) throw new HttpException(409, `You're email ${userData.email} not found`);
35
+ const findUser: User = UserModel.find(user => user.email === userData.email);
36
+ if (!findUser) throw new HttpException(409, `This email ${userData.email} was not found`);
31
37
 
32
38
  const isPasswordMatching: boolean = await compare(userData.password, findUser.password);
33
- if (!isPasswordMatching) throw new HttpException(409, "You're password not matching");
39
+ if (!isPasswordMatching) throw new HttpException(409, "Password is not matching");
34
40
 
35
- const tokenData = this.createToken(findUser);
36
- const cookie = this.createCookie(tokenData);
41
+ const tokenData = createToken(findUser);
42
+ const cookie = createCookie(tokenData);
37
43
 
38
44
  return { cookie, findUser };
39
45
  }
40
46
 
41
47
  public async logout(userData: User): Promise<User> {
42
- if (isEmpty(userData)) throw new HttpException(400, "You're not userData");
43
-
44
- const findUser: User = this.users.find(user => user.email === userData.email && user.password === userData.password);
45
- if (!findUser) throw new HttpException(409, "You're not user");
48
+ const findUser: User = UserModel.find(user => user.email === userData.email && user.password === userData.password);
49
+ if (!findUser) throw new HttpException(409, "User doesn't exist");
46
50
 
47
51
  return findUser;
48
52
  }
49
-
50
- public createToken(user: User): TokenData {
51
- const dataStoredInToken: DataStoredInToken = { id: user.id };
52
- const secretKey: string = SECRET_KEY;
53
- const expiresIn: number = 60 * 60;
54
-
55
- return { expiresIn, token: sign(dataStoredInToken, secretKey, { expiresIn }) };
56
- }
57
-
58
- public createCookie(tokenData: TokenData): string {
59
- return `Authorization=${tokenData.token}; HttpOnly; Max-Age=${tokenData.expiresIn};`;
60
- }
61
53
  }
62
-
63
- export default AuthService;
@@ -1,46 +1,40 @@
1
1
  import { hash } from 'bcrypt';
2
+ import { Service } from 'typedi';
2
3
  import { CreateUserDto } from '@dtos/users.dto';
3
- import { HttpException } from '@exceptions/HttpException';
4
+ import { HttpException } from '@exceptions/httpException';
4
5
  import { User } from '@interfaces/users.interface';
5
- import userModel from '@models/users.model';
6
- import { isEmpty } from '@utils/util';
7
-
8
- class UserService {
9
- public users = userModel;
6
+ import { UserModel } from '@models/users.model';
10
7
 
8
+ @Service()
9
+ export class UserService {
11
10
  public async findAllUser(): Promise<User[]> {
12
- const users: User[] = this.users;
11
+ const users: User[] = UserModel;
13
12
  return users;
14
13
  }
15
14
 
16
15
  public async findUserById(userId: number): Promise<User> {
17
- const findUser: User = this.users.find(user => user.id === userId);
18
- if (!findUser) throw new HttpException(409, "You're not user");
16
+ const findUser: User = UserModel.find(user => user.id === userId);
17
+ if (!findUser) throw new HttpException(409, "User doesn't exist");
19
18
 
20
19
  return findUser;
21
20
  }
22
21
 
23
22
  public async createUser(userData: CreateUserDto): Promise<User> {
24
- if (isEmpty(userData)) throw new HttpException(400, "You're not userData");
25
-
26
- const findUser: User = this.users.find(user => user.email === userData.email);
27
- if (findUser) throw new HttpException(409, `Your email ${userData.email} already exists`);
23
+ const findUser: User = UserModel.find(user => user.email === userData.email);
24
+ if (findUser) throw new HttpException(409, `This email ${userData.email} already exists`);
28
25
 
29
26
  const hashedPassword = await hash(userData.password, 10);
30
- const createUserData: User = { id: this.users.length + 1, ...userData, password: hashedPassword };
31
- this.users = [...this.users, createUserData];
27
+ const createUserData: User = { id: UserModel.length + 1, ...userData, password: hashedPassword };
32
28
 
33
29
  return createUserData;
34
30
  }
35
31
 
36
32
  public async updateUser(userId: number, userData: CreateUserDto): Promise<User[]> {
37
- if (isEmpty(userData)) throw new HttpException(400, "You're not userData");
38
-
39
- const findUser: User = this.users.find(user => user.id === userId);
40
- if (!findUser) throw new HttpException(409, "You're not user");
33
+ const findUser: User = UserModel.find(user => user.id === userId);
34
+ if (!findUser) throw new HttpException(409, "User doesn't exist");
41
35
 
42
36
  const hashedPassword = await hash(userData.password, 10);
43
- const updateUserData: User[] = this.users.map((user: User) => {
37
+ const updateUserData: User[] = UserModel.map((user: User) => {
44
38
  if (user.id === findUser.id) user = { id: userId, ...userData, password: hashedPassword };
45
39
  return user;
46
40
  });
@@ -49,12 +43,10 @@ class UserService {
49
43
  }
50
44
 
51
45
  public async deleteUser(userId: number): Promise<User[]> {
52
- const findUser: User = this.users.find(user => user.id === userId);
53
- if (!findUser) throw new HttpException(409, "You're not user");
46
+ const findUser: User = UserModel.find(user => user.id === userId);
47
+ if (!findUser) throw new HttpException(409, "User doesn't exist");
54
48
 
55
- const deleteUserData: User[] = this.users.filter(user => user.id !== findUser.id);
49
+ const deleteUserData: User[] = UserModel.filter(user => user.id !== findUser.id);
56
50
  return deleteUserData;
57
51
  }
58
52
  }
59
-
60
- export default UserService;
@@ -1,5 +1,5 @@
1
1
  import request from 'supertest';
2
- import App from '@/app';
2
+ import { App } from '@/app';
3
3
  import { AuthController } from '@controllers/auth.controller';
4
4
  import { CreateUserDto } from '@dtos/users.dto';
5
5
 
@@ -1,9 +1,9 @@
1
1
  import request from 'supertest';
2
- import App from '@/app';
3
- import { UsersController } from '@controllers/users.controller';
2
+ import { App } from '@/app';
3
+ import { UserController } from '@controllers/users.controller';
4
4
  import { CreateUserDto } from '@dtos/users.dto';
5
5
  import { User } from '@interfaces/users.interface';
6
- import userModel from '@models/users.model';
6
+ import { UserModel } from '@models/users.model';
7
7
 
8
8
  afterAll(async () => {
9
9
  await new Promise<void>(resolve => setTimeout(() => resolve(), 500));
@@ -12,9 +12,9 @@ afterAll(async () => {
12
12
  describe('Testing Users', () => {
13
13
  describe('[GET] /users', () => {
14
14
  it('response statusCode 200 / findAll', () => {
15
- const findUser: User[] = userModel;
15
+ const findUser: User[] = UserModel;
16
16
 
17
- const app = new App([UsersController]);
17
+ const app = new App([UserController]);
18
18
  return request(app.getServer()).get('/users').expect(200, { data: findUser, message: 'findAll' });
19
19
  });
20
20
  });
@@ -22,9 +22,9 @@ describe('Testing Users', () => {
22
22
  describe('[GET] /users/:id', () => {
23
23
  it('response statusCode 200 / findOne', () => {
24
24
  const userId = 1;
25
- const findUser: User = userModel.find(user => user.id === userId);
25
+ const findUser: User = UserModel.find(user => user.id === userId);
26
26
 
27
- const app = new App([UsersController]);
27
+ const app = new App([UserController]);
28
28
  return request(app.getServer()).get(`/users/${userId}`).expect(200, { data: findUser, message: 'findOne' });
29
29
  });
30
30
  });
@@ -36,7 +36,7 @@ describe('Testing Users', () => {
36
36
  password: 'q1w2e3r4',
37
37
  };
38
38
 
39
- const app = new App([UsersController]);
39
+ const app = new App([UserController]);
40
40
  return request(app.getServer()).post('/users').send(userData).expect(201);
41
41
  });
42
42
  });
@@ -49,7 +49,7 @@ describe('Testing Users', () => {
49
49
  password: 'q1w2e3r4',
50
50
  };
51
51
 
52
- const app = new App([UsersController]);
52
+ const app = new App([UserController]);
53
53
  return request(app.getServer()).put(`/users/${userId}`).send(userData).expect(200);
54
54
  });
55
55
  });
@@ -58,7 +58,7 @@ describe('Testing Users', () => {
58
58
  it('response statusCode 200 / deleted', () => {
59
59
  const userId = 1;
60
60
 
61
- const app = new App([UsersController]);
61
+ const app = new App([UserController]);
62
62
  return request(app.getServer()).delete(`/users/${userId}`).expect(200);
63
63
  });
64
64
  });
@@ -1,10 +1,8 @@
1
1
  import { cleanEnv, port, str } from 'envalid';
2
2
 
3
- const validateEnv = () => {
3
+ export const ValidateEnv = () => {
4
4
  cleanEnv(process.env, {
5
5
  NODE_ENV: str(),
6
6
  PORT: port(),
7
7
  });
8
8
  };
9
-
10
- export default validateEnv;
@@ -34,5 +34,5 @@
34
34
  }
35
35
  },
36
36
  "include": ["src/**/*.ts", "src/**/*.json", ".env"],
37
- "exclude": ["node_modules", "src/http", "src/logs", "src/tests"]
37
+ "exclude": ["node_modules", "src/http", "src/logs"]
38
38
  }
@@ -2,10 +2,10 @@
2
2
  PORT = 3000
3
3
 
4
4
  # DATABASE
5
- DB_HOST = localhost
6
- DB_PORT = 3306
7
5
  DB_USER = root
8
6
  DB_PASSWORD = password
7
+ DB_HOST = localhost
8
+ DB_PORT = 3306
9
9
  DB_DATABASE = dev
10
10
 
11
11
  # TOKEN
@@ -2,11 +2,11 @@
2
2
  PORT = 3000
3
3
 
4
4
  # DATABASE
5
- DB_HOST = localhost
6
- DB_PORT = 3306
7
5
  DB_USER = root
8
6
  DB_PASSWORD = password
9
- DB_DATABASE = prod
7
+ DB_HOST = localhost
8
+ DB_PORT = 3306
9
+ DB_DATABASE = dev
10
10
 
11
11
  # TOKEN
12
12
  SECRET_KEY = secretKey
@@ -2,11 +2,11 @@
2
2
  PORT = 3000
3
3
 
4
4
  # DATABASE
5
- DB_HOST = localhost
6
- DB_PORT = 3306
7
5
  DB_USER = root
8
6
  DB_PASSWORD = password
9
- DB_DATABASE = test
7
+ DB_HOST = localhost
8
+ DB_PORT = 3306
9
+ DB_DATABASE = dev
10
10
 
11
11
  # TOKEN
12
12
  SECRET_KEY = secretKey
@@ -23,7 +23,7 @@
23
23
  "@/*": ["*"],
24
24
  "@config": ["config"],
25
25
  "@controllers/*": ["controllers/*"],
26
- "@databases": ["databases"],
26
+ "@database": ["database"],
27
27
  "@dtos/*": ["dtos/*"],
28
28
  "@exceptions/*": ["exceptions/*"],
29
29
  "@interfaces/*": ["interfaces/*"],
@@ -0,0 +1,23 @@
1
+ # NodeJS Version 16
2
+ FROM node:16.18-buster-slim
3
+
4
+ # Copy Dir
5
+ COPY . ./app
6
+
7
+ # Work to Dir
8
+ WORKDIR /app
9
+
10
+ # Install Node Package
11
+ RUN npm install --legacy-peer-deps
12
+
13
+ RUN chmod +x /app/docker-entrypoint.sh
14
+
15
+ ENTRYPOINT [ "docker-entrypoint.sh" ]
16
+
17
+ # Set Env
18
+ ENV NODE_ENV development
19
+
20
+ EXPOSE 3000
21
+
22
+ # Cmd script
23
+ CMD ["npm", "run", "dev"]
@@ -0,0 +1,23 @@
1
+ # NodeJS Version 16
2
+ FROM node:16.18-buster-slim
3
+
4
+ # Copy Dir
5
+ COPY . ./app
6
+
7
+ # Work to Dir
8
+ WORKDIR /app
9
+
10
+ # Install Node Package
11
+ RUN npm install --legacy-peer-deps
12
+
13
+ RUN chmod +x /app/docker-entrypoint.sh
14
+
15
+ ENTRYPOINT [ "docker-entrypoint.sh" ]
16
+
17
+ # Set Env
18
+ ENV NODE_ENV production
19
+
20
+ EXPOSE 3000
21
+
22
+ # Cmd script
23
+ CMD ["npm", "run", "start"]
@@ -2,28 +2,45 @@
2
2
  # ex) production-stage: make build APP_NAME=<APP_NAME>
3
3
  # ex) development-stage: make build-dev APP_NAME=<APP_NAME>
4
4
 
5
+ SHELL := /bin/bash
6
+
5
7
  APP_NAME = typescript-express
6
8
  APP_NAME := $(APP_NAME)
7
9
 
8
- .PHONY: build
9
- # Build the container image - Dvelopment
10
- build-dev:
10
+ .PHONY: help start clean db test
11
+
12
+ help:
13
+ @grep -E '^[1-9a-zA-Z_-]+:.*?## .*$$|(^#--)' $(MAKEFILE_LIST) \
14
+ | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m %-43s\033[0m %s\n", $$1, $$2}' \
15
+ | sed -e 's/\[32m #-- /[33m/'
16
+
17
+ #-- Docker
18
+ up: ## Up the container images
19
+ docker-compose up -d
20
+
21
+ down: ## Down the container images
22
+ docker-compose down
23
+
24
+ build: ## Build the container image - Production
11
25
  docker build -t ${APP_NAME}\
12
- --target development-build-stage\
13
- -f Dockerfile .
26
+ -f Dockerfile.prod .
14
27
 
15
- # Build the container image - Production
16
- build:
28
+ build-dev: ## Build the container image - Dvelopment
17
29
  docker build -t ${APP_NAME}\
18
- --target production-build-stage\
19
- -f Dockerfile .
30
+ -f Dockerfile.dev .
20
31
 
21
- # Clean the container image
22
- clean:
32
+ run: ## Run the container image
33
+ docker run -d -it -p 3000:3000 ${APP_NAME}
34
+
35
+ pause: ## Pause the containers
36
+ docker container rm -f ${APP_NAME}
37
+
38
+ clean: ## Clean the images
23
39
  docker rmi -f ${APP_NAME}
24
40
 
25
- # Run the container image
26
- run:
27
- docker run -d -it -p 3000:3000 ${APP_NAME}
41
+ remove: ## Remove the volumes
42
+ docker volume rm -f ${APP_NAME}
28
43
 
29
- all: build
44
+ #-- Database
45
+ db: ## Start the local database MySQL
46
+ docker-compose up -d mysql
@@ -1,43 +1,48 @@
1
- version: '3.7'
1
+ version: "3.7"
2
2
 
3
3
  services:
4
4
  proxy:
5
- image: nginx:alpine
6
5
  container_name: proxy
6
+ image: nginx:alpine
7
7
  ports:
8
- - '80:80'
8
+ - "80:80"
9
9
  volumes:
10
10
  - ./nginx.conf:/etc/nginx/nginx.conf
11
- restart: 'unless-stopped'
11
+ restart: "unless-stopped"
12
12
  networks:
13
13
  - backend
14
+
14
15
  server:
16
+ container_name: server
15
17
  build:
16
18
  context: ./
17
- target: development-build-stage
18
- dockerfile: Dockerfile
19
- container_name: server
19
+ dockerfile: Dockerfile.dev
20
20
  ports:
21
- - '3000:3000'
21
+ - "3000:3000"
22
+ environment:
23
+ DB_USER: root
24
+ DB_PASSWORD: password
25
+ DB_DATABASE: dev
22
26
  volumes:
23
27
  - ./:/app
24
28
  - /app/node_modules
25
- restart: 'unless-stopped'
29
+ restart: "unless-stopped"
26
30
  networks:
27
31
  - backend
28
32
  links:
29
33
  - mysql
30
34
  depends_on:
31
35
  - mysql
36
+
32
37
  mysql:
33
- image: mysql:5.7
34
38
  container_name: mysql
39
+ image: mysql:5.7
35
40
  environment:
36
- MYSQL_ROOT_USER: root
37
- MYSQL_ROOT_PASSWORD: password
38
- MYSQL_DATABASE: test
41
+ DB_USER: root
42
+ DB_PASSWORD: password
43
+ DB_DATABASE: dev
39
44
  ports:
40
- - '3306:3306'
45
+ - "3306:3306"
41
46
  networks:
42
47
  - backend
43
48
 
@@ -1,4 +1,4 @@
1
- const { pathsToModuleNameMapper } = require('ts-jest/utils');
1
+ const { pathsToModuleNameMapper } = require('ts-jest');
2
2
  const { compilerOptions } = require('./tsconfig.json');
3
3
 
4
4
  module.exports = {
@@ -18,61 +18,63 @@
18
18
  "dependencies": {
19
19
  "bcrypt": "^5.0.1",
20
20
  "class-transformer": "^0.5.1",
21
- "class-validator": "^0.13.1",
21
+ "class-validator": "^0.13.2",
22
22
  "compression": "^1.7.4",
23
- "cookie-parser": "^1.4.5",
23
+ "cookie-parser": "^1.4.6",
24
24
  "cors": "^2.8.5",
25
- "dotenv": "^10.0.0",
26
- "envalid": "^7.1.0",
27
- "express": "^4.17.1",
28
- "helmet": "^4.6.0",
25
+ "dotenv": "^16.0.1",
26
+ "envalid": "^7.3.1",
27
+ "express": "^4.18.1",
28
+ "helmet": "^5.1.1",
29
29
  "hpp": "^0.2.3",
30
30
  "jsonwebtoken": "^8.5.1",
31
31
  "morgan": "^1.10.0",
32
- "mysql2": "^2.2.5",
33
- "sequelize": "^6.6.5",
34
- "swagger-jsdoc": "^6.0.0",
35
- "swagger-ui-express": "^4.1.6",
36
- "winston": "^3.3.3",
37
- "winston-daily-rotate-file": "^4.5.5"
32
+ "mysql2": "^2.3.3",
33
+ "reflect-metadata": "^0.1.13",
34
+ "sequelize": "^6.21.3",
35
+ "swagger-jsdoc": "^6.2.1",
36
+ "swagger-ui-express": "^4.5.0",
37
+ "typedi": "^0.10.0",
38
+ "winston": "^3.8.1",
39
+ "winston-daily-rotate-file": "^4.7.1"
38
40
  },
39
41
  "devDependencies": {
40
- "@swc/cli": "^0.1.51",
41
- "@swc/core": "^1.2.108",
42
+ "@swc/cli": "^0.1.57",
43
+ "@swc/core": "^1.2.220",
42
44
  "@types/bcrypt": "^5.0.0",
43
- "@types/compression": "^1.7.1",
44
- "@types/cookie-parser": "^1.4.2",
45
- "@types/cors": "^2.8.11",
45
+ "@types/compression": "^1.7.2",
46
+ "@types/cookie-parser": "^1.4.3",
47
+ "@types/cors": "^2.8.12",
46
48
  "@types/express": "^4.17.13",
47
- "@types/hpp": "^0.2.1",
48
- "@types/jest": "27.4.x",
49
- "@types/jsonwebtoken": "^8.5.4",
49
+ "@types/hpp": "^0.2.2",
50
+ "@types/jest": "^28.1.6",
51
+ "@types/jsonwebtoken": "^8.5.8",
50
52
  "@types/morgan": "^1.9.3",
51
- "@types/node": "^16.0.1",
52
- "@types/sequelize": "^4.28.10",
53
- "@types/supertest": "^2.0.11",
53
+ "@types/node": "^17.0.45",
54
+ "@types/sequelize": "^4.28.14",
55
+ "@types/supertest": "^2.0.12",
54
56
  "@types/swagger-jsdoc": "^6.0.1",
55
57
  "@types/swagger-ui-express": "^4.1.3",
56
- "@typescript-eslint/eslint-plugin": "^4.28.2",
57
- "@typescript-eslint/parser": "^4.28.2",
58
+ "@typescript-eslint/eslint-plugin": "^5.29.0",
59
+ "@typescript-eslint/parser": "^5.29.0",
58
60
  "cross-env": "^7.0.3",
59
- "eslint": "^7.30.0",
60
- "eslint-config-prettier": "^8.3.0",
61
- "eslint-plugin-prettier": "^3.4.0",
62
- "husky": "^7.0.1",
63
- "jest": "27.4.x",
64
- "lint-staged": "^11.0.0",
61
+ "eslint": "^8.20.0",
62
+ "eslint-config-prettier": "^8.5.0",
63
+ "eslint-plugin-prettier": "^4.2.1",
64
+ "husky": "^8.0.1",
65
+ "jest": "^28.1.1",
66
+ "lint-staged": "^13.0.3",
65
67
  "node-config": "^0.0.2",
66
- "node-gyp": "^8.1.0",
67
- "nodemon": "^2.0.9",
68
- "pm2": "^5.1.0",
69
- "prettier": "^2.3.2",
70
- "sequelize-cli": "^6.2.0",
71
- "supertest": "^6.2.2",
72
- "ts-jest": "^27.1.4",
73
- "ts-node": "^10.4.0",
74
- "tsc-alias": "^1.4.1",
75
- "tsconfig-paths": "^3.10.1",
76
- "typescript": "^4.5.2"
68
+ "node-gyp": "^9.1.0",
69
+ "nodemon": "^2.0.19",
70
+ "pm2": "^5.2.0",
71
+ "prettier": "^2.7.1",
72
+ "sequelize-cli": "^6.4.1",
73
+ "supertest": "^6.2.4",
74
+ "ts-jest": "^28.0.7",
75
+ "ts-node": "^10.9.1",
76
+ "tsc-alias": "^1.7.0",
77
+ "tsconfig-paths": "^4.0.0",
78
+ "typescript": "^4.7.4"
77
79
  }
78
- }
80
+ }
@@ -1,3 +1,4 @@
1
+ import 'reflect-metadata';
1
2
  import compression from 'compression';
2
3
  import cookieParser from 'cookie-parser';
3
4
  import cors from 'cors';
@@ -8,12 +9,12 @@ import morgan from 'morgan';
8
9
  import swaggerJSDoc from 'swagger-jsdoc';
9
10
  import swaggerUi from 'swagger-ui-express';
10
11
  import { NODE_ENV, PORT, LOG_FORMAT, ORIGIN, CREDENTIALS } from '@config';
11
- import DB from '@databases';
12
+ import { DB } from '@database';
12
13
  import { Routes } from '@interfaces/routes.interface';
13
- import errorMiddleware from '@middlewares/error.middleware';
14
+ import { ErrorMiddleware } from '@middlewares/error.middleware';
14
15
  import { logger, stream } from '@utils/logger';
15
16
 
16
- class App {
17
+ export class App {
17
18
  public app: express.Application;
18
19
  public env: string;
19
20
  public port: string | number;
@@ -81,8 +82,6 @@ class App {
81
82
  }
82
83
 
83
84
  private initializeErrorHandling() {
84
- this.app.use(errorMiddleware);
85
+ this.app.use(ErrorMiddleware);
85
86
  }
86
87
  }
87
-
88
- export default App;
@@ -2,4 +2,5 @@ import { config } from 'dotenv';
2
2
  config({ path: `.env.${process.env.NODE_ENV || 'development'}.local` });
3
3
 
4
4
  export const CREDENTIALS = process.env.CREDENTIALS === 'true';
5
- export const { NODE_ENV, PORT, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_DATABASE, SECRET_KEY, LOG_FORMAT, LOG_DIR, ORIGIN } = process.env;
5
+ export const { NODE_ENV, PORT, SECRET_KEY, LOG_FORMAT, LOG_DIR, ORIGIN } = process.env;
6
+ export const { DB_USER, DB_PASSWORD, DB_HOST, DB_PORT, DB_DATABASE } = process.env;