typescript-express-starter 9.2.0 → 10.0.1

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 (384) hide show
  1. package/CONTRIBUTORS.md +69 -0
  2. package/README.kr.md +122 -167
  3. package/README.md +118 -163
  4. package/bin/cli.js +1 -1
  5. package/lib/default/.swcrc +0 -3
  6. package/lib/default/Dockerfile.dev +18 -0
  7. package/lib/default/Dockerfile.prod +18 -0
  8. package/lib/default/Makefile +29 -16
  9. package/lib/default/docker-compose.yml +8 -8
  10. package/lib/default/package.json +3 -1
  11. package/lib/default/src/app.ts +4 -5
  12. package/lib/default/src/controllers/auth.controller.ts +9 -11
  13. package/lib/default/src/controllers/users.controller.ts +11 -13
  14. package/lib/default/src/dtos/users.dto.ts +12 -1
  15. package/lib/default/src/interfaces/users.interface.ts +2 -2
  16. package/lib/default/src/middlewares/auth.middleware.ts +16 -10
  17. package/lib/default/src/middlewares/error.middleware.ts +2 -4
  18. package/lib/default/src/middlewares/validation.middleware.ts +22 -20
  19. package/lib/default/src/models/users.model.ts +6 -8
  20. package/lib/default/src/routes/auth.route.ts +8 -11
  21. package/lib/default/src/routes/users.route.ts +10 -12
  22. package/lib/default/src/server.ts +6 -7
  23. package/lib/default/src/services/auth.service.ts +22 -33
  24. package/lib/default/src/services/users.service.ts +16 -25
  25. package/lib/{graphql/src/tests → default/src/test}/auth.test.ts +21 -21
  26. package/lib/default/src/test/users.test.ts +62 -0
  27. package/lib/default/src/utils/validateEnv.ts +1 -3
  28. package/lib/default/tsconfig.json +1 -1
  29. package/lib/graphql/.env.development.local +6 -6
  30. package/lib/graphql/.env.production.local +6 -6
  31. package/lib/graphql/.env.test.local +6 -6
  32. package/lib/graphql/.swcrc +1 -1
  33. package/lib/graphql/Dockerfile.dev +19 -0
  34. package/lib/graphql/Dockerfile.prod +19 -0
  35. package/lib/graphql/Makefile +32 -15
  36. package/lib/graphql/docker-compose.yml +23 -15
  37. package/lib/graphql/package.json +2 -1
  38. package/lib/graphql/src/app.ts +16 -16
  39. package/lib/graphql/src/config/index.ts +2 -2
  40. package/lib/graphql/src/database/index.ts +26 -0
  41. package/lib/graphql/src/dtos/users.dto.ts +14 -1
  42. package/lib/graphql/src/interfaces/users.interface.ts +2 -2
  43. package/lib/graphql/src/middlewares/auth.middleware.ts +16 -6
  44. package/lib/graphql/src/middlewares/error.middleware.ts +2 -4
  45. package/lib/graphql/src/repositories/auth.repository.ts +16 -24
  46. package/lib/graphql/src/repositories/users.repository.ts +5 -14
  47. package/lib/graphql/src/resolvers/auth.resolver.ts +2 -2
  48. package/lib/graphql/src/resolvers/users.resolver.ts +4 -4
  49. package/lib/graphql/src/server.ts +6 -7
  50. package/lib/graphql/src/test/auth.test.ts +10 -0
  51. package/lib/graphql/src/test/users.test.ts +11 -0
  52. package/lib/graphql/src/typedefs/users.type.ts +2 -2
  53. package/lib/graphql/src/utils/logger.ts +2 -0
  54. package/lib/graphql/src/utils/validateEnv.ts +1 -3
  55. package/lib/graphql/tsconfig.json +2 -2
  56. package/lib/knex/.env.development.local +2 -2
  57. package/lib/knex/.env.production.local +3 -3
  58. package/lib/knex/.env.test.local +3 -3
  59. package/lib/knex/.swcrc +1 -1
  60. package/lib/knex/Dockerfile.dev +19 -0
  61. package/lib/knex/Dockerfile.prod +19 -0
  62. package/lib/knex/Makefile +32 -15
  63. package/lib/knex/docker-compose.yml +19 -14
  64. package/lib/knex/knexfile.ts +7 -9
  65. package/lib/knex/package.json +2 -0
  66. package/lib/knex/src/app.ts +7 -9
  67. package/lib/knex/src/config/index.ts +2 -1
  68. package/lib/knex/src/controllers/auth.controller.ts +9 -11
  69. package/lib/knex/src/controllers/users.controller.ts +10 -12
  70. package/lib/knex/src/database/index.ts +24 -0
  71. package/lib/knex/src/database/migrations/20210713110926_initial.ts +17 -0
  72. package/lib/knex/src/dtos/users.dto.ts +12 -1
  73. package/lib/knex/src/interfaces/users.interface.ts +2 -2
  74. package/lib/knex/src/middlewares/auth.middleware.ts +17 -10
  75. package/lib/knex/src/middlewares/error.middleware.ts +2 -4
  76. package/lib/knex/src/middlewares/validation.middleware.ts +22 -20
  77. package/lib/knex/src/models/users.model.ts +2 -2
  78. package/lib/knex/src/routes/auth.route.ts +8 -10
  79. package/lib/knex/src/routes/users.route.ts +10 -12
  80. package/lib/knex/src/server.ts +6 -7
  81. package/lib/knex/src/services/auth.service.ts +24 -33
  82. package/lib/knex/src/services/users.service.ts +14 -19
  83. package/lib/knex/src/{tests → test}/auth.test.ts +2 -2
  84. package/lib/knex/src/{tests → test}/users.test.ts +2 -2
  85. package/lib/knex/src/utils/validateEnv.ts +1 -3
  86. package/lib/knex/tsconfig.json +2 -2
  87. package/lib/mikro-orm/.env.production.local +1 -1
  88. package/lib/mikro-orm/.env.test.local +1 -1
  89. package/lib/mikro-orm/.swcrc +1 -1
  90. package/lib/mikro-orm/Dockerfile.dev +19 -0
  91. package/lib/mikro-orm/Dockerfile.prod +19 -0
  92. package/lib/mikro-orm/Makefile +32 -15
  93. package/lib/mikro-orm/docker-compose.yml +20 -11
  94. package/lib/mikro-orm/package.json +2 -0
  95. package/lib/mikro-orm/src/app.ts +12 -13
  96. package/lib/mikro-orm/src/config/index.ts +2 -1
  97. package/lib/mikro-orm/src/controllers/auth.controller.ts +9 -11
  98. package/lib/mikro-orm/src/controllers/users.controller.ts +11 -13
  99. package/lib/mikro-orm/src/dtos/users.dto.ts +12 -1
  100. package/lib/mikro-orm/src/interfaces/users.interface.ts +1 -1
  101. package/lib/mikro-orm/src/middlewares/auth.middleware.ts +17 -10
  102. package/lib/mikro-orm/src/middlewares/error.middleware.ts +2 -4
  103. package/lib/mikro-orm/src/middlewares/validation.middleware.ts +22 -20
  104. package/lib/mikro-orm/src/routes/auth.route.ts +8 -10
  105. package/lib/mikro-orm/src/routes/users.route.ts +9 -11
  106. package/lib/mikro-orm/src/server.ts +6 -7
  107. package/lib/mikro-orm/src/services/auth.service.ts +19 -29
  108. package/lib/mikro-orm/src/services/users.service.ts +8 -16
  109. package/lib/mikro-orm/src/{tests → test}/auth.test.ts +3 -4
  110. package/lib/mikro-orm/src/{tests → test}/users.test.ts +4 -5
  111. package/lib/mikro-orm/src/utils/validateEnv.ts +1 -3
  112. package/lib/mikro-orm/tsconfig.json +2 -2
  113. package/lib/mongoose/.env.production.local +1 -1
  114. package/lib/mongoose/.env.test.local +1 -1
  115. package/lib/mongoose/.swcrc +1 -1
  116. package/lib/mongoose/Dockerfile.dev +19 -0
  117. package/lib/mongoose/Dockerfile.prod +19 -0
  118. package/lib/mongoose/Makefile +32 -15
  119. package/lib/mongoose/docker-compose.yml +20 -11
  120. package/lib/mongoose/package.json +2 -0
  121. package/lib/mongoose/src/app.ts +7 -13
  122. package/lib/mongoose/src/config/index.ts +2 -1
  123. package/lib/mongoose/src/controllers/auth.controller.ts +9 -11
  124. package/lib/mongoose/src/controllers/users.controller.ts +11 -13
  125. package/lib/mongoose/src/database/index.ts +18 -0
  126. package/lib/mongoose/src/dtos/users.dto.ts +12 -1
  127. package/lib/mongoose/src/interfaces/users.interface.ts +1 -1
  128. package/lib/mongoose/src/middlewares/auth.middleware.ts +16 -9
  129. package/lib/mongoose/src/middlewares/error.middleware.ts +2 -4
  130. package/lib/mongoose/src/middlewares/validation.middleware.ts +22 -20
  131. package/lib/mongoose/src/models/users.model.ts +2 -4
  132. package/lib/mongoose/src/routes/auth.route.ts +8 -10
  133. package/lib/mongoose/src/routes/users.route.ts +9 -11
  134. package/lib/mongoose/src/server.ts +6 -7
  135. package/lib/mongoose/src/services/auth.service.ts +22 -33
  136. package/lib/mongoose/src/services/users.service.ts +14 -24
  137. package/lib/{typegoose/src/tests → mongoose/src/test}/users.test.ts +7 -7
  138. package/lib/mongoose/src/utils/validateEnv.ts +1 -3
  139. package/lib/mongoose/tsconfig.json +2 -2
  140. package/lib/node-postgres/.dockerignore +18 -0
  141. package/lib/node-postgres/.editorconfig +9 -0
  142. package/lib/node-postgres/.env.development.local +13 -0
  143. package/lib/node-postgres/.env.production.local +13 -0
  144. package/lib/node-postgres/.env.test.local +13 -0
  145. package/lib/node-postgres/.eslintignore +1 -0
  146. package/lib/node-postgres/.eslintrc +18 -0
  147. package/lib/node-postgres/.huskyrc +5 -0
  148. package/lib/node-postgres/.lintstagedrc.json +5 -0
  149. package/lib/node-postgres/.prettierrc +8 -0
  150. package/lib/node-postgres/.swcrc +39 -0
  151. package/lib/node-postgres/.vscode/launch.json +35 -0
  152. package/lib/node-postgres/.vscode/settings.json +6 -0
  153. package/lib/node-postgres/Dockerfile.dev +17 -0
  154. package/lib/node-postgres/Dockerfile.prod +17 -0
  155. package/lib/node-postgres/Makefile +46 -0
  156. package/lib/node-postgres/docker-compose.yml +61 -0
  157. package/lib/node-postgres/ecosystem.config.js +57 -0
  158. package/lib/node-postgres/jest.config.js +12 -0
  159. package/lib/node-postgres/nginx.conf +40 -0
  160. package/lib/node-postgres/nodemon.json +12 -0
  161. package/lib/node-postgres/package.json +78 -0
  162. package/lib/node-postgres/src/app.ts +87 -0
  163. package/lib/node-postgres/src/config/index.ts +6 -0
  164. package/lib/node-postgres/src/controllers/auth.controller.ts +44 -0
  165. package/lib/node-postgres/src/controllers/users.controller.ts +63 -0
  166. package/lib/node-postgres/src/database/index.ts +6 -0
  167. package/lib/node-postgres/src/database/init.sql +110 -0
  168. package/lib/node-postgres/src/dtos/users.dto.ts +20 -0
  169. package/lib/node-postgres/src/exceptions/httpException.ts +10 -0
  170. package/lib/node-postgres/src/http/auth.http +27 -0
  171. package/lib/node-postgres/src/http/users.http +34 -0
  172. package/lib/node-postgres/src/interfaces/auth.interface.ts +15 -0
  173. package/lib/node-postgres/src/interfaces/routes.interface.ts +6 -0
  174. package/lib/node-postgres/src/interfaces/users.interface.ts +5 -0
  175. package/lib/node-postgres/src/middlewares/auth.middleware.ts +38 -0
  176. package/lib/node-postgres/src/middlewares/error.middleware.ts +15 -0
  177. package/lib/node-postgres/src/middlewares/validation.middleware.ts +27 -0
  178. package/lib/node-postgres/src/models/users.model.ts +9 -0
  179. package/lib/node-postgres/src/routes/auth.route.ts +21 -0
  180. package/lib/node-postgres/src/routes/users.route.ts +23 -0
  181. package/lib/node-postgres/src/server.ts +10 -0
  182. package/lib/node-postgres/src/services/auth.service.ts +52 -0
  183. package/lib/node-postgres/src/services/users.service.ts +51 -0
  184. package/lib/{default/src/tests → node-postgres/src/test}/auth.test.ts +2 -2
  185. package/lib/{default/src/tests → node-postgres/src/test}/users.test.ts +5 -5
  186. package/lib/node-postgres/src/utils/logger.ts +65 -0
  187. package/lib/node-postgres/src/utils/validateEnv.ts +8 -0
  188. package/lib/node-postgres/swagger.yaml +123 -0
  189. package/lib/node-postgres/tsconfig.json +40 -0
  190. package/lib/prisma/.env.production.local +1 -1
  191. package/lib/prisma/.env.test.local +1 -1
  192. package/lib/prisma/Dockerfile.dev +19 -0
  193. package/lib/prisma/Dockerfile.prod +19 -0
  194. package/lib/prisma/Makefile +32 -15
  195. package/lib/prisma/docker-compose.yml +15 -14
  196. package/lib/prisma/package.json +2 -0
  197. package/lib/prisma/src/app.ts +4 -5
  198. package/lib/prisma/src/controllers/auth.controller.ts +10 -12
  199. package/lib/prisma/src/controllers/users.controller.ts +12 -14
  200. package/lib/prisma/src/dtos/users.dto.ts +12 -1
  201. package/lib/prisma/src/interfaces/auth.interface.ts +1 -1
  202. package/lib/prisma/src/interfaces/users.interface.ts +5 -0
  203. package/lib/prisma/src/middlewares/auth.middleware.ts +16 -11
  204. package/lib/prisma/src/middlewares/error.middleware.ts +2 -4
  205. package/lib/prisma/src/middlewares/validation.middleware.ts +22 -20
  206. package/lib/prisma/src/routes/auth.route.ts +8 -10
  207. package/lib/prisma/src/routes/users.route.ts +9 -11
  208. package/lib/prisma/src/server.ts +6 -7
  209. package/lib/prisma/src/services/auth.service.ts +6 -12
  210. package/lib/prisma/src/services/users.service.ts +15 -23
  211. package/lib/prisma/src/utils/validateEnv.ts +1 -3
  212. package/lib/prisma/tsconfig.json +1 -1
  213. package/lib/routing-controllers/Dockerfile.dev +19 -0
  214. package/lib/routing-controllers/Dockerfile.prod +19 -0
  215. package/lib/routing-controllers/Makefile +29 -16
  216. package/lib/routing-controllers/docker-compose.yml +9 -9
  217. package/lib/routing-controllers/package.json +1 -0
  218. package/lib/routing-controllers/src/app.ts +4 -6
  219. package/lib/routing-controllers/src/controllers/auth.controller.ts +13 -12
  220. package/lib/routing-controllers/src/controllers/users.controller.ts +15 -13
  221. package/lib/routing-controllers/src/dtos/users.dto.ts +12 -1
  222. package/lib/routing-controllers/src/interfaces/users.interface.ts +1 -1
  223. package/lib/routing-controllers/src/middlewares/auth.middleware.ts +16 -10
  224. package/lib/routing-controllers/src/middlewares/error.middleware.ts +2 -5
  225. package/lib/routing-controllers/src/middlewares/validation.middleware.ts +23 -27
  226. package/lib/routing-controllers/src/models/users.model.ts +1 -3
  227. package/lib/routing-controllers/src/server.ts +5 -6
  228. package/lib/routing-controllers/src/services/auth.service.ts +21 -31
  229. package/lib/routing-controllers/src/services/users.service.ts +13 -21
  230. package/lib/routing-controllers/src/{tests → test}/auth.test.ts +1 -1
  231. package/lib/routing-controllers/src/{tests → test}/users.test.ts +10 -10
  232. package/lib/routing-controllers/src/utils/validateEnv.ts +1 -3
  233. package/lib/routing-controllers/tsconfig.json +1 -1
  234. package/lib/sequelize/.env.development.local +2 -2
  235. package/lib/sequelize/.env.production.local +3 -3
  236. package/lib/sequelize/.env.test.local +3 -3
  237. package/lib/sequelize/.sequelizerc +8 -0
  238. package/lib/sequelize/.swcrc +1 -1
  239. package/lib/sequelize/Dockerfile.dev +23 -0
  240. package/lib/sequelize/Dockerfile.prod +23 -0
  241. package/lib/sequelize/Makefile +32 -15
  242. package/lib/sequelize/docker-compose.yml +19 -14
  243. package/lib/sequelize/package.json +5 -1
  244. package/lib/sequelize/src/app.ts +7 -8
  245. package/lib/sequelize/src/config/index.ts +2 -1
  246. package/lib/sequelize/src/config/sequelize-cli.js +15 -0
  247. package/lib/sequelize/src/controllers/auth.controller.ts +7 -8
  248. package/lib/sequelize/src/controllers/users.controller.ts +9 -10
  249. package/lib/sequelize/src/{databases → database}/index.ts +1 -3
  250. package/lib/sequelize/src/dtos/users.dto.ts +12 -1
  251. package/lib/sequelize/src/interfaces/users.interface.ts +1 -1
  252. package/lib/sequelize/src/middlewares/auth.middleware.ts +16 -10
  253. package/lib/sequelize/src/middlewares/error.middleware.ts +2 -4
  254. package/lib/sequelize/src/middlewares/validation.middleware.ts +22 -20
  255. package/lib/sequelize/src/routes/auth.route.ts +8 -11
  256. package/lib/sequelize/src/routes/users.route.ts +9 -11
  257. package/lib/sequelize/src/server.ts +6 -7
  258. package/lib/sequelize/src/services/auth.service.ts +20 -31
  259. package/lib/sequelize/src/services/users.service.ts +14 -25
  260. package/lib/sequelize/src/{tests → test}/auth.test.ts +2 -2
  261. package/lib/sequelize/src/{tests → test}/users.test.ts +2 -2
  262. package/lib/sequelize/src/utils/validateEnv.ts +1 -3
  263. package/lib/sequelize/tsconfig.json +2 -2
  264. package/lib/starter.js +17 -26
  265. package/lib/typegoose/.env.production.local +1 -1
  266. package/lib/typegoose/.env.test.local +1 -1
  267. package/lib/typegoose/.swcrc +1 -1
  268. package/lib/typegoose/Dockerfile.dev +19 -0
  269. package/lib/typegoose/Dockerfile.prod +19 -0
  270. package/lib/typegoose/Makefile +32 -15
  271. package/lib/typegoose/docker-compose.yml +20 -11
  272. package/lib/typegoose/package.json +2 -0
  273. package/lib/typegoose/src/app.ts +7 -10
  274. package/lib/typegoose/src/config/index.ts +2 -1
  275. package/lib/typegoose/src/controllers/auth.controller.ts +9 -11
  276. package/lib/typegoose/src/controllers/users.controller.ts +11 -13
  277. package/lib/typegoose/src/database/index.ts +18 -0
  278. package/lib/typegoose/src/dtos/users.dto.ts +12 -1
  279. package/lib/typegoose/src/interfaces/users.interface.ts +1 -1
  280. package/lib/typegoose/src/middlewares/auth.middleware.ts +16 -10
  281. package/lib/typegoose/src/middlewares/error.middleware.ts +2 -4
  282. package/lib/typegoose/src/middlewares/validation.middleware.ts +22 -20
  283. package/lib/typegoose/src/models/users.model.ts +1 -3
  284. package/lib/typegoose/src/routes/auth.route.ts +8 -11
  285. package/lib/typegoose/src/routes/users.route.ts +9 -11
  286. package/lib/typegoose/src/server.ts +5 -6
  287. package/lib/typegoose/src/services/auth.service.ts +23 -32
  288. package/lib/typegoose/src/services/users.service.ts +12 -21
  289. package/lib/typegoose/src/{tests → test}/auth.test.ts +2 -2
  290. package/lib/{mongoose/src/tests → typegoose/src/test}/users.test.ts +7 -7
  291. package/lib/typegoose/src/utils/validateEnv.ts +1 -3
  292. package/lib/typegoose/tsconfig.json +2 -2
  293. package/lib/typeorm/.env.development.local +2 -2
  294. package/lib/typeorm/.env.production.local +3 -3
  295. package/lib/typeorm/.env.test.local +3 -3
  296. package/lib/typeorm/.swcrc +1 -1
  297. package/lib/typeorm/Dockerfile.dev +19 -0
  298. package/lib/typeorm/Dockerfile.prod +19 -0
  299. package/lib/typeorm/Makefile +32 -15
  300. package/lib/typeorm/docker-compose.yml +21 -14
  301. package/lib/typeorm/package.json +1 -0
  302. package/lib/typeorm/src/app.ts +7 -10
  303. package/lib/typeorm/src/config/index.ts +2 -1
  304. package/lib/typeorm/src/controllers/auth.controller.ts +9 -11
  305. package/lib/typeorm/src/controllers/users.controller.ts +11 -13
  306. package/lib/typeorm/src/database/index.ts +26 -0
  307. package/lib/typeorm/src/dtos/users.dto.ts +12 -1
  308. package/lib/typeorm/src/interfaces/users.interface.ts +1 -1
  309. package/lib/typeorm/src/middlewares/auth.middleware.ts +14 -7
  310. package/lib/typeorm/src/middlewares/error.middleware.ts +2 -4
  311. package/lib/typeorm/src/middlewares/validation.middleware.ts +22 -20
  312. package/lib/typeorm/src/routes/auth.route.ts +8 -11
  313. package/lib/typeorm/src/routes/users.route.ts +9 -11
  314. package/lib/typeorm/src/server.ts +6 -7
  315. package/lib/typeorm/src/services/auth.service.ts +20 -28
  316. package/lib/typeorm/src/services/users.service.ts +6 -16
  317. package/lib/typeorm/src/{tests → test}/auth.test.ts +6 -6
  318. package/lib/typeorm/src/{tests → test}/users.test.ts +6 -6
  319. package/lib/typeorm/src/utils/validateEnv.ts +1 -3
  320. package/lib/typeorm/tsconfig.json +2 -2
  321. package/package.json +2 -1
  322. package/lib/default/Dockerfile +0 -24
  323. package/lib/default/src/controllers/index.controller.ts +0 -13
  324. package/lib/default/src/routes/index.route.ts +0 -19
  325. package/lib/default/src/utils/util.ts +0 -19
  326. package/lib/graphql/Dockerfile +0 -24
  327. package/lib/graphql/src/databases/index.ts +0 -22
  328. package/lib/graphql/src/tests/index.test.ts +0 -18
  329. package/lib/graphql/src/tests/users.test.ts +0 -71
  330. package/lib/graphql/src/utils/util.ts +0 -19
  331. package/lib/knex/Dockerfile +0 -24
  332. package/lib/knex/src/controllers/index.controller.ts +0 -13
  333. package/lib/knex/src/databases/index.ts +0 -21
  334. package/lib/knex/src/databases/migrations/20210713110926_initial.ts +0 -13
  335. package/lib/knex/src/routes/index.route.ts +0 -19
  336. package/lib/knex/src/tests/index.test.ts +0 -17
  337. package/lib/knex/src/utils/util.ts +0 -19
  338. package/lib/mikro-orm/Dockerfile +0 -24
  339. package/lib/mikro-orm/src/controllers/index.controller.ts +0 -13
  340. package/lib/mikro-orm/src/routes/index.route.ts +0 -19
  341. package/lib/mikro-orm/src/tests/index.test.ts +0 -18
  342. package/lib/mikro-orm/src/utils/util.ts +0 -19
  343. package/lib/mongoose/Dockerfile +0 -24
  344. package/lib/mongoose/src/controllers/index.controller.ts +0 -13
  345. package/lib/mongoose/src/databases/index.ts +0 -9
  346. package/lib/mongoose/src/routes/index.route.ts +0 -19
  347. package/lib/mongoose/src/utils/util.ts +0 -19
  348. package/lib/prisma/Dockerfile +0 -24
  349. package/lib/prisma/src/controllers/index.controller.ts +0 -13
  350. package/lib/prisma/src/routes/index.route.ts +0 -19
  351. package/lib/prisma/src/tests/index.test.ts +0 -18
  352. package/lib/prisma/src/utils/util.ts +0 -19
  353. package/lib/routing-controllers/Dockerfile +0 -24
  354. package/lib/routing-controllers/src/controllers/index.controller.ts +0 -9
  355. package/lib/routing-controllers/src/tests/index.test.ts +0 -17
  356. package/lib/routing-controllers/src/utils/util.ts +0 -19
  357. package/lib/sequelize/Dockerfile +0 -28
  358. package/lib/sequelize/src/controllers/index.controller.ts +0 -13
  359. package/lib/sequelize/src/routes/index.route.ts +0 -19
  360. package/lib/sequelize/src/tests/index.test.ts +0 -18
  361. package/lib/sequelize/src/utils/util.ts +0 -19
  362. package/lib/typegoose/Dockerfile +0 -24
  363. package/lib/typegoose/src/controllers/index.controller.ts +0 -13
  364. package/lib/typegoose/src/databases/index.ts +0 -3
  365. package/lib/typegoose/src/routes/index.route.ts +0 -19
  366. package/lib/typegoose/src/tests/index.test.ts +0 -18
  367. package/lib/typegoose/src/utils/util.ts +0 -19
  368. package/lib/typeorm/Dockerfile +0 -24
  369. package/lib/typeorm/src/controllers/index.controller.ts +0 -13
  370. package/lib/typeorm/src/databases/index.ts +0 -22
  371. package/lib/typeorm/src/routes/index.route.ts +0 -19
  372. package/lib/typeorm/src/tests/index.test.ts +0 -18
  373. package/lib/typeorm/src/utils/util.ts +0 -19
  374. package/lib/knex/src/{databases → database}/migrations/.gitkeep +0 -0
  375. package/lib/knex/src/{databases → database}/seeds/.gitkeep +0 -0
  376. package/lib/mikro-orm/src/{databases → database}/index.ts +0 -0
  377. package/lib/mongoose/src/{tests → test}/auth.test.ts +0 -0
  378. package/lib/{default/src/tests → mongoose/src/test}/index.test.ts +0 -0
  379. package/lib/prisma/src/{tests → test}/auth.test.ts +1 -1
  380. package/lib/{mongoose/src/tests → prisma/src/test}/index.test.ts +0 -0
  381. package/lib/prisma/src/{tests → test}/users.test.ts +1 -1
  382. /package/lib/sequelize/src/{migrations → database/migrations}/.gitkeep +0 -0
  383. /package/lib/sequelize/src/{seeders → database/seeders}/.gitkeep +0 -0
  384. /package/lib/typeorm/src/{migration → database/migrations}/.gitkeep +0 -0
package/README.md CHANGED
@@ -23,10 +23,10 @@
23
23
  <img src="https://img.shields.io/github/v/release/ljlm0402/typescript-express-starter" alt="npm Release Version" />
24
24
  </a>
25
25
  <a href="http://npm.im/typescript-express-starter" target="_blank">
26
- <img src="https://img.shields.io/npm/l/typescript-express-starter.svg" alt="npm Package License" />
26
+ <img src="https://img.shields.io/npm/dm/typescript-express-starter.svg" alt="npm Downloads" />
27
27
  </a>
28
28
  <a href="http://npm.im/typescript-express-starter" target="_blank">
29
- <img src="https://img.shields.io/npm/dm/typescript-express-starter.svg" alt="npm Downloads" />
29
+ <img src="https://img.shields.io/npm/l/typescript-express-starter.svg" alt="npm Package License" />
30
30
  </a>
31
31
  </p>
32
32
 
@@ -47,10 +47,8 @@
47
47
 
48
48
  <br />
49
49
 
50
- ## Translations - read in your own language
51
-
52
- - [🇺🇸 English](https://github.com/ljlm0402/typescript-express-starter/blob/master/README.md)
53
50
  - [🇰🇷 Korean](https://github.com/ljlm0402/typescript-express-starter/blob/master/README.kr.md)
51
+ - [🇺🇸 English](https://github.com/ljlm0402/typescript-express-starter/blob/master/README.md)
54
52
 
55
53
  <br />
56
54
 
@@ -96,19 +94,29 @@ Start your typescript-express-starter app in development mode at `http://localho
96
94
 
97
95
  #### Template Type
98
96
 
99
- | Name | Description |
100
- | :--------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
101
- | Default | Express Default |
102
- | [Routing Controllers](https://github.com/typestack/routing-controllers) | Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage |
103
- | [Sequelize](https://github.com/sequelize/sequelize) | Easy to use multi SQL dialect ORM for Node.js |
104
- | [Mongoose](https://github.com/Automattic/mongoose) | MongoDB Object Modeling(ODM) designed to work in an asynchronous environment |
105
- | [TypeORM](https://github.com/typeorm/typeorm) | An ORM that can run in Node.js and Others |
106
- | [Prisma](https://github.com/prisma/prisma) | Modern Database Access for TypeScript & Node.js |
107
- | [Knex](https://github.com/knex/knex) | SQL query builder for Postgres, MySQL, MariaDB, SQLite3 and Oracle |
108
- | [GraphQL](https://github.com/graphql/graphql-js) | query language for APIs and a runtime for fulfilling those queries with your existing data |
109
- | [Typegoose](https://github.com/typegoose/typegoose) | Define Mongoose models using TypeScript classes |
110
- | [Mikro ORM](https://github.com/mikro-orm/mikro-orm) | TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases |
111
- | [Sequelize Typescript](https://github.com/RobinBuschmann/sequelize-typescript) (Develop) | Decorators and some other features for sequelize |
97
+ | Name | Description |
98
+ | :---------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
99
+ | Default | Express Default |
100
+ | [Routing Controllers](https://github.com/typestack/routing-controllers) | Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage |
101
+ | [Sequelize](https://github.com/sequelize/sequelize) | Easy to use multi SQL dialect ORM for Node.js |
102
+ | [Mongoose](https://github.com/Automattic/mongoose) | MongoDB Object Modeling(ODM) designed to work in an asynchronous environment |
103
+ | [TypeORM](https://github.com/typeorm/typeorm) | An ORM that can run in Node.js and Others |
104
+ | [Prisma](https://github.com/prisma/prisma) | Modern Database Access for TypeScript & Node.js |
105
+ | [Knex](https://github.com/knex/knex) | SQL query builder for Postgres, MySQL, MariaDB, SQLite3 and Oracle |
106
+ | [GraphQL](https://github.com/graphql/graphql-js) | query language for APIs and a runtime for fulfilling those queries with your existing data |
107
+ | [Typegoose](https://github.com/typegoose/typegoose) | Define Mongoose models using TypeScript classes |
108
+ | [Mikro ORM](https://github.com/mikro-orm/mikro-orm) | TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases |
109
+ | [Node Postgres](https://node-postgres.com/) | node-postgres is a collection of node.js modules for interfacing with your PostgreSQL database |
110
+
111
+ #### Template to be developed
112
+
113
+ | Name | Description |
114
+ | :------------------------------------------------------------------------------ | :------------------------------------------------------------------------- |
115
+ | [Sequelize Typescript](https://github.com/RobinBuschmann/sequelize-typescript) | Decorators and some other features for sequelize |
116
+ | [TS SQL](https://github.com/codemix/ts-sql) | A SQL database implemented purely in TypeScript type annotations |
117
+ | [inversify-express-utils](https://github.com/inversify/inversify-express-utils) | Some utilities for the development of Express application with InversifyJS |
118
+ | [postgress typescript]() | |
119
+ | [graphql prisma]() | |
112
120
 
113
121
  ## 🛎 Available Commands for the Server
114
122
 
@@ -120,34 +128,28 @@ Start your typescript-express-starter app in development mode at `http://localho
120
128
 
121
129
  ## 💎 The Package Features
122
130
 
123
- - Application
124
-
125
- - ![](https://img.shields.io/badge/-TypeScript-007ACC?style=for-the-badge&logo=TypeScript&logoColor=fff)
126
- ![](https://img.shields.io/badge/-Node.js-339933?style=for-the-badge&logo=Node.js&logoColor=fff)
127
- ![](https://img.shields.io/badge/-NPM-CB3837?style=for-the-badge&logo=NPM&logoColor=fff)
128
- ![](https://img.shields.io/badge/-NGINX-269539?style=for-the-badge&logo=NGINX&logoColor=fff)
129
-
130
- - DevOps
131
-
132
- - ![](https://img.shields.io/badge/-Docker-2496ED?style=for-the-badge&logo=Docker&logoColor=fff)
133
- ![](https://img.shields.io/badge/-Nodemon-76D04B?style=for-the-badge&logo=Nodemon&logoColor=fff)
134
- ![](https://img.shields.io/badge/-PM2-2B037A?style=for-the-badge&logo=PM2&logoColor=fff)
135
- ![](https://img.shields.io/badge/-ESLint-4B32C3?style=for-the-badge&logo=ESLint&logoColor=fff)
136
- ![](https://img.shields.io/badge/-Prettier-F7B93E?style=for-the-badge&logo=Prettier&logoColor=000)
137
- ![](https://img.shields.io/badge/-Jest-C21325?style=for-the-badge&logo=Jest&logoColor=fff)
138
- ![](https://img.shields.io/badge/-SWC-FFFFFF?style=for-the-badge&logo=swc&logoColor=FBE1A6)
139
-
140
- - Utilities
141
-
142
- - ![](https://img.shields.io/badge/-Swagger-85EA2D?style=for-the-badge&logo=Swagger&logoColor=000)
143
-
144
- - Database
145
- - ![](https://img.shields.io/badge/-MySQL-4479A1?style=for-the-badge&logo=MySQL&logoColor=fff)
146
- ![](https://img.shields.io/badge/-MariaDB-003545?style=for-the-badge&logo=MariaDB&logoColor=fff)
147
- ![](https://img.shields.io/badge/-PostgreSQL-336791?style=for-the-badge&logo=PostgreSQL&logoColor=fff)
148
- ![](https://img.shields.io/badge/-MongoDB-47A248?style=for-the-badge&logo=MongoDB&logoColor=fff)
149
-
150
- > [Simple Icons](https://simpleicons.org/)
131
+ <p>
132
+ <img src="https://img.shields.io/badge/-TypeScript-007ACC?style=for-the-badge&logo=TypeScript&logoColor=fff" />&nbsp;&nbsp;
133
+ <img src="https://img.shields.io/badge/-Node.js-339933?style=for-the-badge&logo=Node.js&logoColor=fff" />&nbsp;&nbsp;
134
+ <img src="https://img.shields.io/badge/-NPM-CB3837?style=for-the-badge&logo=NPM&logoColor=fff" />&nbsp;&nbsp;
135
+ </p>
136
+ <p>
137
+ <img src="https://img.shields.io/badge/-Docker-2496ED?style=for-the-badge&logo=Docker&logoColor=fff" />&nbsp;&nbsp;
138
+ <img src="https://img.shields.io/badge/-NGINX-269539?style=for-the-badge&logo=NGINX&logoColor=fff" />
139
+ <img src="https://img.shields.io/badge/-PM2-2B037A?style=for-the-badge&logo=PM2&logoColor=fff" />&nbsp;&nbsp;
140
+ <img src="https://img.shields.io/badge/-Nodemon-76D04B?style=for-the-badge&logo=Nodemon&logoColor=fff" />&nbsp;&nbsp;
141
+ <img src="https://img.shields.io/badge/-ESLint-4B32C3?style=for-the-badge&logo=ESLint&logoColor=fff" />&nbsp;&nbsp;
142
+ <img src="https://img.shields.io/badge/-Prettier-F7B93E?style=for-the-badge&logo=Prettier&logoColor=000" />&nbsp;&nbsp;
143
+ <img src="https://img.shields.io/badge/-Jest-C21325?style=for-the-badge&logo=Jest&logoColor=fff" />&nbsp;&nbsp;
144
+ <img src="https://img.shields.io/badge/-Swagger-85EA2D?style=for-the-badge&logo=Swagger&logoColor=000" />
145
+ <img src="https://img.shields.io/badge/-SWC-FFFFFF?style=for-the-badge&logo=swc&logoColor=FBE1A6" />
146
+ </p>
147
+ <p>
148
+ <img src="https://img.shields.io/badge/-MySQL-4479A1?style=for-the-badge&logo=MySQL&logoColor=fff" />&nbsp;&nbsp;
149
+ <img src="https://img.shields.io/badge/-MariaDB-003545?style=for-the-badge&logo=MariaDB&logoColor=fff" />&nbsp;&nbsp;
150
+ <img src="https://img.shields.io/badge/-PostgreSQL-336791?style=for-the-badge&logo=PostgreSQL&logoColor=fff" />&nbsp;&nbsp;
151
+ <img src="https://img.shields.io/badge/-MongoDB-47A248?style=for-the-badge&logo=MongoDB&logoColor=fff" />
152
+ </p>
151
153
 
152
154
  ### 🐳 Docker :: Container Platform
153
155
 
@@ -231,67 +233,71 @@ Modify `ecosystem.config.js` file to your source code.
231
233
 
232
234
  Modify `.swcrc` file to your source code.
233
235
 
236
+ ### 💄 Makefile :: This is a setting file of the make program used to make the compilation that occurs repeatedly on Linux
237
+
238
+ [Makefile](https://makefiletutorial.com/)s are used to help decide which parts of a large program need to be recompiled.
239
+
240
+ - help :: `make help`
241
+
242
+ Modify `Makefile` file to your source code.
243
+
234
244
  ## 🗂 Code Structure (default)
235
245
 
236
- ```bash
246
+ ```sh
237
247
 
238
- ├── /.vscode
239
- ├── launch.json
240
- └── settings.json
248
+ ├──📂 .vscode
249
+ ├── launch.json
250
+ └── settings.json
241
251
 
242
- ├── /src
243
- ├── /config
244
- └── index.ts
245
-
246
- ├── /controllers
247
- ├── auth.controller.ts
248
- ├── index.controller.ts
249
- └── users.controller.ts
250
-
251
- ├── /dtos
252
- └── users.dto.ts
253
-
254
- ├── /exceptions
255
- └── HttpException.ts
256
-
257
- ├── /http
258
- ├── auth.http
259
- └── users.http
260
-
261
- ├── /interfaces
262
- ├── auth.interface.ts
263
- ├── routes.interface.ts
264
- └── users.interface.ts
265
-
266
- ├── /middlewares
267
- ├── auth.middleware.ts
268
- ├── error.middleware.ts
269
- └── validation.middleware.ts
270
-
271
- ├── /models
272
- └── users.model.ts
273
-
274
- ├── /routes
275
- ├── auth.route.ts
276
- ├── index.route.ts
277
- │ └── users.route.ts
278
-
279
- ├── /services
280
- ├── auth.service.ts
281
- │ └── users.service.ts
282
-
283
- ├── /tests
284
- ├── auth.test.ts
285
- │ ├── index.test.ts
286
- └── users.test.ts
287
-
288
- ├── /utils
289
- ├── logger.ts
290
- │ ├── util.ts
291
- │ │ └── vaildateEnv.ts
292
- │ │
293
- │ ├── app.ts
294
- │ └── server.ts
252
+ ├──📂 src
253
+ ├──📂 config
254
+ └── index.ts
255
+
256
+ ├──📂 controllers
257
+ ├── auth.controller.ts
258
+ └── users.controller.ts
259
+
260
+ ├──📂 dtos
261
+ │ └── users.dto.ts
262
+
263
+ ├──📂 exceptions
264
+ │ └── httpException.ts
265
+
266
+ ├──📂 http
267
+ ├── auth.http
268
+ └── users.http
269
+
270
+ ├──📂 interfaces
271
+ ├── auth.interface.ts
272
+ ├── routes.interface.ts
273
+ └── users.interface.ts
274
+
275
+ ├──📂 middlewares
276
+ ├── auth.middleware.ts
277
+ ├── error.middleware.ts
278
+ └── validation.middleware.ts
279
+
280
+ ├──📂 models
281
+ │ └── users.model.ts
282
+
283
+ ├──📂 routes
284
+ ├── auth.route.ts
285
+ └── users.route.ts
286
+
287
+ ├──📂 services
288
+ ├── auth.service.ts
289
+ │ └── users.service.ts
290
+
291
+ ├──📂 test
292
+ ├── auth.test.ts
293
+ │ └── users.test.ts
294
+
295
+ ├──📂 utils
296
+ ├── logger.ts
297
+ └── vaildateEnv.ts
298
+
299
+ ├── app.ts
300
+ └── server.ts
295
301
 
296
302
  ├── .dockerignore
297
303
  ├── .editorconfig
@@ -306,7 +312,8 @@ Modify `.swcrc` file to your source code.
306
312
  ├── .prettierrc
307
313
  ├── .swcrc
308
314
  ├── docker-compose.yml
309
- ├── Dockerfile
315
+ ├── Dockerfile.dev
316
+ ├── Dockerfile.prod
310
317
  ├── ecosystem.config.js
311
318
  ├── jest.config.js
312
319
  ├── Makefile
@@ -328,67 +335,13 @@ Modify `.swcrc` file to your source code.
328
335
 
329
336
  ## 🤝 Contributors
330
337
 
331
- <img src="https://contributors-img.web.app/image?repo=ljlm0402/typescript-express-starter" alt="Contributors">
332
-
333
- - Jeongwon Kim [https://github.com/swtpumpkin](https://github.com/swtpumpkin)
334
-
335
- - João Silva [https://github.com/joaopms](https://github.com/joaopms)
336
-
337
- - BitYoungjae [https://github.com/BitYoungjae](https://github.com/BitYoungjae)
338
-
339
- - Paolo Tagliani [https://github.com/pablosproject](https://github.com/pablosproject)
340
-
341
- - Lloyd Park [https://github.com/yeondam88](https://github.com/yeondam88)
342
-
343
- - strama4 [https://github.com/strama4](https://github.com/strama4)
344
-
345
- - sonbyungjun [https://github.com/sonbyungjun](https://github.com/sonbyungjun)
346
-
347
- - Sean Maxwell [https://github.com/seanpmaxwell](https://github.com/seanpmaxwell)
348
-
349
- - Ed Guy [https://github.com/edguy3](https://github.com/edguy3)
350
-
351
- - Malavan [https://github.com/malavancs](https://github.com/malavancs)
352
-
353
- - Jon Gallant [https://github.com/jongio](https://github.com/jongio)
354
-
355
- - Kuba Rozkwitalski [https://github.com/kubarozkwitalski](https://github.com/kubarozkwitalski)
356
-
357
- - Craig Harman [https://github.com/craigharman](https://github.com/craigharman)
358
-
359
- - Edward Teixeira Dias Junior [https://github.com/edward-teixeira](https://github.com/edward-teixeira)
360
-
361
- - n2ptune [https://github.com/n2ptune](https://github.com/n2ptune)
362
-
363
- - michael r [https://github.com/alanmynah](https://github.com/alanmynah)
364
-
365
- - Benjamin [https://github.com/benjaminudoh10](https://github.com/benjaminudoh10)
366
-
367
- - Amrik Singh [https://github.com/AmrikSD](https://github.com/AmrikSD)
368
-
369
- - oricc [https://github.com/oricc](https://github.com/oricc)
370
-
371
- - Dustin Newbold [https://github.com/dustinnewbold](https://github.com/dustinnewbold)
372
-
373
- - WhatIfWeDigDeeper [https://github.com/WhatIfWeDigDeeper](https://github.com/WhatIfWeDigDeeper)
374
-
375
- - David Stewart [https://github.com/davidjmstewart](https://github.com/davidjmstewart)
376
-
377
- - JagTheFriend [JagTheFriend](https://github.com/JagTheFriend)
378
-
379
- - Tamzid Karim [Tamzid Karim](https://github.com/tamzidkarim)
380
-
381
- - Andrija Milojević [https://github.com/andrija29](https://github.com/andrija29)
382
-
383
- - Engjell Avdiu [https://github.com/engjellavdiu](https://github.com/engjellavdiu)
384
-
385
- - Florian Mifsud [https://github.com/florianmifsud](https://github.com/florianmifsud)
338
+ [![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)
386
339
 
387
340
  ## 💳 License
388
341
 
389
342
  [MIT](LICENSE)
390
343
 
391
- ## 📬 Recommended Commit Message
344
+ ## 📑 Recommended Commit Message
392
345
 
393
346
  | When | Commit Message |
394
347
  | :--------------- | :----------------- |
@@ -402,8 +355,10 @@ Modify `.swcrc` file to your source code.
402
355
 
403
356
  ## 📬 Please request an issue
404
357
 
405
- In the future, please write down your desired template, questions, and features to be added, and we will try our best to answer and reflect them.
358
+ Please leave a question or question as an issue.
359
+
360
+ I will do my best to answer and reflect.
406
361
 
407
- Thank you very much for your interest in our package.
362
+ Thank you for your interest.
408
363
 
409
- # (๑˃̵ᴗ˂̵)و
364
+ # ദ്ദി*ˊᗜˋ*)
package/bin/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /*****************************************************************
4
- * Typescript Express Starter
4
+ * TypeScript Express Starter
5
5
  * 2019.12.18 ~ 🎮
6
6
  * Made By AGUMON 🦖
7
7
  * https://github.com/ljlm0402/typescript-express-starter
@@ -37,6 +37,3 @@
37
37
  "type": "commonjs"
38
38
  }
39
39
  }
40
-
41
-
42
-
@@ -0,0 +1,18 @@
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
+ # Set Env
14
+ ENV NODE_ENV development
15
+ EXPOSE 3000
16
+
17
+ # Cmd script
18
+ CMD ["npm", "run", "dev"]
@@ -0,0 +1,18 @@
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
+ # Set Env
14
+ ENV NODE_ENV production
15
+ EXPOSE 3000
16
+
17
+ # Cmd script
18
+ CMD ["npm", "run", "start"]
@@ -2,28 +2,41 @@
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:
11
- docker build -t ${APP_NAME}\
12
- --target development-build-stage\
13
- -f Dockerfile .
10
+ .PHONY: help up down clean db
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
14
23
 
15
- # Build the container image - Production
16
- build:
24
+ build: ## Build the container image - Production
17
25
  docker build -t ${APP_NAME}\
18
- --target production-build-stage\
19
- -f Dockerfile .
26
+ -f Dockerfile.prod .
20
27
 
21
- # Clean the container image
22
- clean:
23
- docker rmi -f ${APP_NAME}
28
+ build-dev: ## Build the container image - Development
29
+ docker build -t ${APP_NAME}\
30
+ -f Dockerfile.dev .
24
31
 
25
- # Run the container image
26
- run:
32
+ run: ## Run the container image
27
33
  docker run -d -it -p 3000:3000 ${APP_NAME}
28
34
 
29
- all: build
35
+ pause: ## Pause the containers
36
+ docker container rm -f ${APP_NAME}
37
+
38
+ clean: ## Clean the images
39
+ docker rmi -f ${APP_NAME}
40
+
41
+ remove: ## Remove the volumes
42
+ docker volume rm -f ${APP_NAME}
@@ -1,24 +1,24 @@
1
- version: '3.7'
1
+ version: "3.9"
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
22
  volumes:
23
23
  - ./:/app
24
24
  - /app/node_modules
@@ -10,7 +10,7 @@
10
10
  "build": "swc src -d dist --source-maps --copy-files",
11
11
  "build:tsc": "tsc && tsc-alias",
12
12
  "test": "jest --forceExit --detectOpenHandles",
13
- "lint": "eslint --ignore-path .gitignore --ext .ts src/",
13
+ "lint": "eslint --ignore-path .gitignore --ext .ts src",
14
14
  "lint:fix": "npm run lint -- --fix",
15
15
  "deploy:prod": "npm run build && pm2 start ecosystem.config.js --only prod",
16
16
  "deploy:dev": "pm2 start ecosystem.config.js --only dev"
@@ -29,8 +29,10 @@
29
29
  "hpp": "^0.2.3",
30
30
  "jsonwebtoken": "^8.5.1",
31
31
  "morgan": "^1.10.0",
32
+ "reflect-metadata": "^0.1.13",
32
33
  "swagger-jsdoc": "^6.2.1",
33
34
  "swagger-ui-express": "^4.5.0",
35
+ "typedi": "^0.10.0",
34
36
  "winston": "^3.8.1",
35
37
  "winston-daily-rotate-file": "^4.7.1"
36
38
  },
@@ -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';
@@ -9,10 +10,10 @@ 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
12
  import { Routes } from '@interfaces/routes.interface';
12
- import errorMiddleware from '@middlewares/error.middleware';
13
+ import { ErrorMiddleware } from '@middlewares/error.middleware';
13
14
  import { logger, stream } from '@utils/logger';
14
15
 
15
- class App {
16
+ export class App {
16
17
  public app: express.Application;
17
18
  public env: string;
18
19
  public port: string | number;
@@ -75,8 +76,6 @@ class App {
75
76
  }
76
77
 
77
78
  private initializeErrorHandling() {
78
- this.app.use(errorMiddleware);
79
+ this.app.use(ErrorMiddleware);
79
80
  }
80
81
  }
81
-
82
- export default App;
@@ -1,16 +1,16 @@
1
1
  import { NextFunction, Request, Response } from 'express';
2
- import { CreateUserDto } from '@dtos/users.dto';
2
+ import { Container } from 'typedi';
3
3
  import { RequestWithUser } from '@interfaces/auth.interface';
4
4
  import { User } from '@interfaces/users.interface';
5
- import AuthService from '@services/auth.service';
5
+ import { AuthService } from '@services/auth.service';
6
6
 
7
- class AuthController {
8
- public authService = new AuthService();
7
+ export class AuthController {
8
+ public auth = Container.get(AuthService);
9
9
 
10
10
  public signUp = async (req: Request, res: Response, next: NextFunction): Promise<void> => {
11
11
  try {
12
- const userData: CreateUserDto = req.body;
13
- const signUpUserData: User = await this.authService.signup(userData);
12
+ const userData: User = req.body;
13
+ const signUpUserData: User = await this.auth.signup(userData);
14
14
 
15
15
  res.status(201).json({ data: signUpUserData, message: 'signup' });
16
16
  } catch (error) {
@@ -20,8 +20,8 @@ class AuthController {
20
20
 
21
21
  public logIn = async (req: Request, res: Response, next: NextFunction): Promise<void> => {
22
22
  try {
23
- const userData: CreateUserDto = req.body;
24
- const { cookie, findUser } = await this.authService.login(userData);
23
+ const userData: User = req.body;
24
+ const { cookie, findUser } = await this.auth.login(userData);
25
25
 
26
26
  res.setHeader('Set-Cookie', [cookie]);
27
27
  res.status(200).json({ data: findUser, message: 'login' });
@@ -33,7 +33,7 @@ class AuthController {
33
33
  public logOut = async (req: RequestWithUser, res: Response, next: NextFunction): Promise<void> => {
34
34
  try {
35
35
  const userData: User = req.user;
36
- const logOutUserData: User = await this.authService.logout(userData);
36
+ const logOutUserData: User = await this.auth.logout(userData);
37
37
 
38
38
  res.setHeader('Set-Cookie', ['Authorization=; Max-age=0']);
39
39
  res.status(200).json({ data: logOutUserData, message: 'logout' });
@@ -42,5 +42,3 @@ class AuthController {
42
42
  }
43
43
  };
44
44
  }
45
-
46
- export default AuthController;