typescript-express-starter 6.2.1 → 8.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 (222) hide show
  1. package/README.kr.md +55 -26
  2. package/README.md +54 -25
  3. package/bin/cli.js +4 -3
  4. package/lib/default/.swcrc +41 -0
  5. package/lib/default/nodemon.json +2 -2
  6. package/lib/default/package.json +12 -8
  7. package/lib/default/src/app.ts +1 -2
  8. package/lib/default/src/http/auth.http +12 -15
  9. package/lib/default/src/http/users.http +12 -16
  10. package/lib/default/src/index.ts +1 -0
  11. package/lib/default/src/middlewares/auth.middleware.ts +3 -3
  12. package/lib/default/src/models/users.model.ts +5 -5
  13. package/lib/default/src/server.ts +1 -2
  14. package/lib/default/src/services/auth.service.ts +5 -5
  15. package/lib/default/src/services/users.service.ts +3 -3
  16. package/lib/default/src/tests/auth.test.ts +4 -4
  17. package/lib/default/src/tests/users.test.ts +4 -4
  18. package/lib/default/src/utils/logger.ts +5 -5
  19. package/lib/default/tsconfig.json +2 -2
  20. package/lib/graphql/.dockerignore +18 -0
  21. package/lib/graphql/.editorconfig +9 -0
  22. package/lib/graphql/.env +1 -0
  23. package/lib/graphql/.eslintignore +1 -0
  24. package/lib/graphql/.eslintrc +18 -0
  25. package/lib/graphql/.huskyrc +5 -0
  26. package/lib/graphql/.lintstagedrc.json +5 -0
  27. package/lib/graphql/.prettierrc +8 -0
  28. package/lib/graphql/.swcrc +39 -0
  29. package/lib/graphql/.vscode/launch.json +35 -0
  30. package/lib/graphql/.vscode/settings.json +6 -0
  31. package/lib/graphql/Dockerfile +24 -0
  32. package/lib/graphql/Makefile +6 -0
  33. package/lib/graphql/docker-compose.yml +50 -0
  34. package/lib/graphql/ecosystem.config.js +59 -0
  35. package/lib/graphql/jest.config.js +12 -0
  36. package/lib/graphql/nginx.conf +40 -0
  37. package/lib/graphql/nodemon.json +12 -0
  38. package/lib/graphql/package.json +79 -0
  39. package/lib/graphql/src/app.ts +105 -0
  40. package/lib/graphql/src/configs/development.json +19 -0
  41. package/lib/graphql/src/configs/production.json +19 -0
  42. package/lib/graphql/src/configs/test.json +19 -0
  43. package/lib/graphql/src/databases/index.ts +24 -0
  44. package/lib/graphql/src/dtos/users.dto.ts +14 -0
  45. package/lib/{typeorm/src/entity → graphql/src/entities}/users.entity.ts +3 -3
  46. package/lib/graphql/src/exceptions/HttpException.ts +10 -0
  47. package/lib/graphql/src/http/auth.http +49 -0
  48. package/lib/graphql/src/http/users.http +78 -0
  49. package/lib/graphql/src/index.ts +1 -0
  50. package/lib/graphql/src/interfaces/auth.interface.ts +14 -0
  51. package/lib/graphql/src/interfaces/db.interface.ts +7 -0
  52. package/lib/graphql/src/interfaces/users.interface.ts +5 -0
  53. package/lib/graphql/src/middlewares/auth.middleware.ts +32 -0
  54. package/lib/graphql/src/middlewares/error.middleware.ts +17 -0
  55. package/lib/graphql/src/repositories/auth.repository.ts +61 -0
  56. package/lib/graphql/src/repositories/users.repository.ts +60 -0
  57. package/lib/graphql/src/resolvers/auth.resolver.ts +32 -0
  58. package/lib/graphql/src/resolvers/users.resolver.ts +47 -0
  59. package/lib/graphql/src/server.ts +14 -0
  60. package/lib/graphql/src/tests/auth.test.ts +52 -0
  61. package/lib/graphql/src/tests/index.test.ts +18 -0
  62. package/lib/graphql/src/tests/users.test.ts +71 -0
  63. package/lib/graphql/src/typedefs/users.type.ts +13 -0
  64. package/lib/graphql/src/utils/logger.ts +75 -0
  65. package/lib/graphql/src/utils/util.ts +19 -0
  66. package/lib/graphql/src/utils/validateEnv.ts +10 -0
  67. package/lib/graphql/tsconfig.json +39 -0
  68. package/lib/knex/.swcrc +39 -0
  69. package/lib/knex/knexfile.ts +6 -6
  70. package/lib/knex/nodemon.json +2 -2
  71. package/lib/knex/package.json +11 -8
  72. package/lib/knex/src/app.ts +2 -3
  73. package/lib/knex/src/databases/index.ts +6 -6
  74. package/lib/knex/src/http/auth.http +12 -15
  75. package/lib/knex/src/http/users.http +12 -16
  76. package/lib/knex/src/index.ts +1 -0
  77. package/lib/knex/src/middlewares/auth.middleware.ts +4 -4
  78. package/lib/knex/src/server.ts +1 -2
  79. package/lib/knex/src/services/auth.service.ts +5 -5
  80. package/lib/knex/src/services/users.service.ts +3 -3
  81. package/lib/knex/src/tests/auth.test.ts +2 -2
  82. package/lib/knex/src/tests/index.test.ts +1 -1
  83. package/lib/knex/src/tests/users.test.ts +2 -2
  84. package/lib/knex/src/utils/logger.ts +5 -5
  85. package/lib/knex/tsconfig.json +2 -2
  86. package/lib/mongoose/.swcrc +39 -0
  87. package/lib/mongoose/docker-compose.yml +0 -4
  88. package/lib/mongoose/nodemon.json +2 -2
  89. package/lib/mongoose/package.json +12 -8
  90. package/lib/mongoose/src/app.ts +2 -3
  91. package/lib/mongoose/src/configs/development.json +1 -1
  92. package/lib/mongoose/src/configs/production.json +1 -1
  93. package/lib/mongoose/src/configs/test.json +1 -1
  94. package/lib/mongoose/src/http/auth.http +32 -0
  95. package/lib/mongoose/src/http/users.http +34 -0
  96. package/lib/mongoose/src/index.ts +1 -0
  97. package/lib/mongoose/src/middlewares/auth.middleware.ts +3 -3
  98. package/lib/mongoose/src/server.ts +1 -2
  99. package/lib/mongoose/src/services/auth.service.ts +5 -5
  100. package/lib/mongoose/src/services/users.service.ts +3 -3
  101. package/lib/mongoose/src/utils/logger.ts +5 -5
  102. package/lib/mongoose/tsconfig.json +2 -2
  103. package/lib/prisma/.env +1 -1
  104. package/lib/prisma/.swcrc +37 -0
  105. package/lib/prisma/docker-compose.yml +1 -6
  106. package/lib/prisma/nodemon.json +2 -2
  107. package/lib/prisma/package.json +14 -10
  108. package/lib/prisma/src/app.ts +2 -3
  109. package/lib/prisma/src/http/auth.http +12 -15
  110. package/lib/prisma/src/http/users.http +12 -16
  111. package/lib/prisma/src/index.ts +1 -0
  112. package/lib/prisma/src/middlewares/auth.middleware.ts +4 -4
  113. package/lib/prisma/src/server.ts +1 -2
  114. package/lib/prisma/src/services/auth.service.ts +5 -5
  115. package/lib/prisma/src/services/users.service.ts +3 -3
  116. package/lib/prisma/src/utils/logger.ts +5 -5
  117. package/lib/prisma/tsconfig.json +2 -2
  118. package/lib/routing-controllers/.swcrc +37 -0
  119. package/lib/routing-controllers/nodemon.json +2 -2
  120. package/lib/routing-controllers/package.json +12 -9
  121. package/lib/routing-controllers/src/app.ts +3 -4
  122. package/lib/routing-controllers/src/http/auth.http +12 -15
  123. package/lib/routing-controllers/src/http/users.http +12 -16
  124. package/lib/routing-controllers/src/index.ts +1 -0
  125. package/lib/routing-controllers/src/middlewares/auth.middleware.ts +3 -3
  126. package/lib/routing-controllers/src/middlewares/validation.middleware.ts +10 -2
  127. package/lib/routing-controllers/src/models/users.model.ts +5 -5
  128. package/lib/routing-controllers/src/server.ts +1 -3
  129. package/lib/routing-controllers/src/services/auth.service.ts +5 -5
  130. package/lib/routing-controllers/src/services/users.service.ts +3 -3
  131. package/lib/routing-controllers/src/utils/logger.ts +5 -5
  132. package/lib/routing-controllers/tsconfig.json +2 -2
  133. package/lib/sequelize/.swcrc +39 -0
  134. package/lib/sequelize/docker-compose.yml +1 -6
  135. package/lib/sequelize/nodemon.json +2 -2
  136. package/lib/sequelize/package.json +12 -8
  137. package/lib/sequelize/src/app.ts +1 -2
  138. package/lib/sequelize/src/configs/development.json +2 -2
  139. package/lib/sequelize/src/configs/production.json +1 -1
  140. package/lib/sequelize/src/configs/test.json +1 -1
  141. package/lib/sequelize/src/http/auth.http +32 -0
  142. package/lib/sequelize/src/http/users.http +34 -0
  143. package/lib/sequelize/src/index.ts +1 -0
  144. package/lib/sequelize/src/middlewares/auth.middleware.ts +4 -4
  145. package/lib/sequelize/src/server.ts +1 -2
  146. package/lib/sequelize/src/services/auth.service.ts +5 -5
  147. package/lib/sequelize/src/services/users.service.ts +3 -3
  148. package/lib/sequelize/src/utils/logger.ts +5 -5
  149. package/lib/sequelize/tsconfig.json +2 -2
  150. package/lib/starter.js +4 -6
  151. package/lib/typegoose/.dockerignore +18 -0
  152. package/lib/typegoose/.editorconfig +9 -0
  153. package/lib/typegoose/.env.development.local +18 -0
  154. package/lib/typegoose/.env.production.local +18 -0
  155. package/lib/typegoose/.env.test.local +18 -0
  156. package/lib/typegoose/.eslintignore +1 -0
  157. package/lib/typegoose/.eslintrc +18 -0
  158. package/lib/typegoose/.huskyrc +5 -0
  159. package/lib/typegoose/.lintstagedrc.json +5 -0
  160. package/lib/typegoose/.prettierrc +8 -0
  161. package/lib/typegoose/.swcrc +40 -0
  162. package/lib/typegoose/.vscode/launch.json +35 -0
  163. package/lib/typegoose/.vscode/settings.json +6 -0
  164. package/lib/typegoose/Dockerfile +24 -0
  165. package/lib/typegoose/Makefile +6 -0
  166. package/lib/typegoose/docker-compose.yml +46 -0
  167. package/lib/typegoose/ecosystem.config.js +57 -0
  168. package/lib/typegoose/jest.config.js +12 -0
  169. package/lib/typegoose/nginx.conf +40 -0
  170. package/lib/typegoose/nodemon.json +12 -0
  171. package/lib/typegoose/package.json +80 -0
  172. package/lib/typegoose/src/app.ts +93 -0
  173. package/lib/typegoose/src/config/index.ts +5 -0
  174. package/lib/typegoose/src/controllers/auth.controller.ts +46 -0
  175. package/lib/typegoose/src/controllers/index.controller.ts +13 -0
  176. package/lib/typegoose/src/controllers/users.controller.ts +65 -0
  177. package/lib/typegoose/src/databases/index.ts +3 -0
  178. package/lib/typegoose/src/dtos/users.dto.ts +9 -0
  179. package/lib/typegoose/src/exceptions/HttpException.ts +10 -0
  180. package/lib/typegoose/src/http/auth.http +32 -0
  181. package/lib/typegoose/src/http/users.http +34 -0
  182. package/lib/typegoose/src/interfaces/auth.interface.ts +15 -0
  183. package/lib/typegoose/src/interfaces/routes.interface.ts +6 -0
  184. package/lib/typegoose/src/interfaces/users.interface.ts +5 -0
  185. package/lib/typegoose/src/middlewares/auth.middleware.ts +32 -0
  186. package/lib/typegoose/src/middlewares/error.middleware.ts +17 -0
  187. package/lib/typegoose/src/middlewares/validation.middleware.ts +25 -0
  188. package/lib/typegoose/src/models/users.model.ts +18 -0
  189. package/lib/typegoose/src/routes/auth.route.ts +24 -0
  190. package/lib/typegoose/src/routes/index.route.ts +19 -0
  191. package/lib/typegoose/src/routes/users.route.ts +25 -0
  192. package/lib/typegoose/src/server.ts +11 -0
  193. package/lib/typegoose/src/services/auth.service.ts +61 -0
  194. package/lib/typegoose/src/services/users.service.ts +64 -0
  195. package/lib/typegoose/src/tests/auth.test.ts +83 -0
  196. package/lib/typegoose/src/tests/index.test.ts +18 -0
  197. package/lib/typegoose/src/tests/users.test.ts +133 -0
  198. package/lib/typegoose/src/utils/logger.ts +65 -0
  199. package/lib/typegoose/src/utils/util.ts +19 -0
  200. package/lib/typegoose/src/utils/validateEnv.ts +10 -0
  201. package/lib/typegoose/swagger.yaml +122 -0
  202. package/lib/typegoose/tsconfig.json +40 -0
  203. package/lib/typeorm/.swcrc +39 -0
  204. package/lib/typeorm/docker-compose.yml +1 -1
  205. package/lib/typeorm/nodemon.json +2 -2
  206. package/lib/typeorm/package.json +12 -8
  207. package/lib/typeorm/src/app.ts +1 -2
  208. package/lib/typeorm/src/configs/development.json +1 -1
  209. package/lib/typeorm/src/configs/production.json +1 -1
  210. package/lib/typeorm/src/configs/test.json +1 -1
  211. package/lib/typeorm/src/databases/index.ts +5 -5
  212. package/lib/typeorm/src/entities/users.entity.ts +26 -0
  213. package/lib/typeorm/src/http/auth.http +12 -15
  214. package/lib/typeorm/src/http/users.http +12 -16
  215. package/lib/typeorm/src/index.ts +1 -0
  216. package/lib/typeorm/src/middlewares/auth.middleware.ts +5 -9
  217. package/lib/typeorm/src/server.ts +1 -2
  218. package/lib/typeorm/src/services/auth.service.ts +13 -17
  219. package/lib/typeorm/src/services/users.service.ts +16 -22
  220. package/lib/typeorm/src/utils/logger.ts +5 -5
  221. package/lib/typeorm/tsconfig.json +3 -3
  222. package/package.json +14 -4
@@ -1,25 +1,22 @@
1
- import bcrypt from 'bcrypt';
2
- import { getRepository } from 'typeorm';
1
+ import { hash } from 'bcrypt';
2
+ import { EntityRepository, Repository } from 'typeorm';
3
3
  import { CreateUserDto } from '@dtos/users.dto';
4
- import { UserEntity } from '@entity/users.entity';
4
+ import { UserEntity } from '@entities/users.entity';
5
5
  import { HttpException } from '@exceptions/HttpException';
6
6
  import { User } from '@interfaces/users.interface';
7
7
  import { isEmpty } from '@utils/util';
8
8
 
9
- class UserService {
10
- public users = UserEntity;
11
-
9
+ @EntityRepository()
10
+ class UserService extends Repository<UserEntity> {
12
11
  public async findAllUser(): Promise<User[]> {
13
- const userRepository = getRepository(this.users);
14
- const users: User[] = await userRepository.find();
12
+ const users: User[] = await UserEntity.find();
15
13
  return users;
16
14
  }
17
15
 
18
16
  public async findUserById(userId: number): Promise<User> {
19
17
  if (isEmpty(userId)) throw new HttpException(400, "You're not userId");
20
18
 
21
- const userRepository = getRepository(this.users);
22
- const findUser: User = await userRepository.findOne({ where: { id: userId } });
19
+ const findUser: User = await UserEntity.findOne({ where: { id: userId } });
23
20
  if (!findUser) throw new HttpException(409, "You're not user");
24
21
 
25
22
  return findUser;
@@ -28,12 +25,11 @@ class UserService {
28
25
  public async createUser(userData: CreateUserDto): Promise<User> {
29
26
  if (isEmpty(userData)) throw new HttpException(400, "You're not userData");
30
27
 
31
- const userRepository = getRepository(this.users);
32
- const findUser: User = await userRepository.findOne({ where: { email: userData.email } });
28
+ const findUser: User = await UserEntity.findOne({ where: { email: userData.email } });
33
29
  if (findUser) throw new HttpException(409, `You're email ${userData.email} already exists`);
34
30
 
35
- const hashedPassword = await bcrypt.hash(userData.password, 10);
36
- const createUserData: User = await userRepository.save({ ...userData, password: hashedPassword });
31
+ const hashedPassword = await hash(userData.password, 10);
32
+ const createUserData: User = await UserEntity.create({ ...userData, password: hashedPassword }).save();
37
33
 
38
34
  return createUserData;
39
35
  }
@@ -41,25 +37,23 @@ class UserService {
41
37
  public async updateUser(userId: number, userData: CreateUserDto): Promise<User> {
42
38
  if (isEmpty(userData)) throw new HttpException(400, "You're not userData");
43
39
 
44
- const userRepository = getRepository(this.users);
45
- const findUser: User = await userRepository.findOne({ where: { id: userId } });
40
+ const findUser: User = await UserEntity.findOne({ where: { id: userId } });
46
41
  if (!findUser) throw new HttpException(409, "You're not user");
47
42
 
48
- const hashedPassword = await bcrypt.hash(userData.password, 10);
49
- await userRepository.update(userId, { ...userData, password: hashedPassword });
43
+ const hashedPassword = await hash(userData.password, 10);
44
+ await UserEntity.update(userId, { ...userData, password: hashedPassword });
50
45
 
51
- const updateUser: User = await userRepository.findOne({ where: { id: userId } });
46
+ const updateUser: User = await UserEntity.findOne({ where: { id: userId } });
52
47
  return updateUser;
53
48
  }
54
49
 
55
50
  public async deleteUser(userId: number): Promise<User> {
56
51
  if (isEmpty(userId)) throw new HttpException(400, "You're not userId");
57
52
 
58
- const userRepository = getRepository(this.users);
59
- const findUser: User = await userRepository.findOne({ where: { id: userId } });
53
+ const findUser: User = await UserEntity.findOne({ where: { id: userId } });
60
54
  if (!findUser) throw new HttpException(409, "You're not user");
61
55
 
62
- await userRepository.delete({ id: userId });
56
+ await UserEntity.delete({ id: userId });
63
57
  return findUser;
64
58
  }
65
59
  }
@@ -1,14 +1,14 @@
1
1
  import config from 'config';
2
- import fs from 'fs';
3
- import path from 'path';
2
+ import { existsSync, mkdirSync } from 'fs';
3
+ import { join } from 'path';
4
4
  import winston from 'winston';
5
5
  import winstonDaily from 'winston-daily-rotate-file';
6
6
 
7
7
  // logs dir
8
- const logDir: string = path.join(__dirname, config.get('log.dir'));
8
+ const logDir: string = join(__dirname, config.get('log.dir'));
9
9
 
10
- if (!fs.existsSync(logDir)) {
11
- fs.mkdirSync(logDir);
10
+ if (!existsSync(logDir)) {
11
+ mkdirSync(logDir);
12
12
  }
13
13
 
14
14
  // Define log format
@@ -13,7 +13,7 @@
13
13
  "pretty": true,
14
14
  "sourceMap": true,
15
15
  "declaration": true,
16
- "outDir": "./dist",
16
+ "outDir": "dist",
17
17
  "allowJs": true,
18
18
  "noEmit": false,
19
19
  "esModuleInterop": true,
@@ -25,7 +25,7 @@
25
25
  "@controllers/*": ["controllers/*"],
26
26
  "@databases": ["databases"],
27
27
  "@dtos/*": ["dtos/*"],
28
- "@entity/*": ["entity/*"],
28
+ "@entities/*": ["entities/*"],
29
29
  "@exceptions/*": ["exceptions/*"],
30
30
  "@interfaces/*": ["interfaces/*"],
31
31
  "@middlewares/*": ["middlewares/*"],
@@ -35,5 +35,5 @@
35
35
  }
36
36
  },
37
37
  "include": ["src/**/*.ts", "src/**/*.json", ".env"],
38
- "exclude": ["node_modules"]
38
+ "exclude": ["node_modules", "src/http", "src/logs", "src/tests"]
39
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typescript-express-starter",
3
- "version": "6.2.1",
3
+ "version": "8.0.1",
4
4
  "description": "Quick and Easy TypeScript Express Starter",
5
5
  "author": "AGUMON <ljlm0402@gmail.com>",
6
6
  "license": "MIT",
@@ -11,10 +11,12 @@
11
11
  "routing-controllers-openapi",
12
12
  "sequelize",
13
13
  "mongoose",
14
+ "typegoose",
14
15
  "typeorm",
15
16
  "knex",
16
17
  "prisma",
17
- "querybuilder",
18
+ "graphql",
19
+ "apollo",
18
20
  "jest",
19
21
  "nodemon",
20
22
  "jsonwebtoken",
@@ -32,7 +34,8 @@
32
34
  "mysql",
33
35
  "mariadb",
34
36
  "mongodb",
35
- "postgresql"
37
+ "postgresql",
38
+ "swc"
36
39
  ],
37
40
  "main": "bin/cli.js",
38
41
  "bin": {
@@ -50,6 +53,13 @@
50
53
  "ora": "^4.0.3"
51
54
  },
52
55
  "devDependencies": {},
56
+ "publishConfig": {
57
+ "access": "public"
58
+ },
59
+ "engines": {
60
+ "node": ">= 10.13.0",
61
+ "npm": ">= 6.11.0"
62
+ },
53
63
  "repository": {
54
64
  "type": "git",
55
65
  "url": "git+https://github.com/ljlm0402/typescript-express-starter.git"
@@ -58,4 +68,4 @@
58
68
  "url": "https://github.com/ljlm0402/typescript-express-starter/issues"
59
69
  },
60
70
  "homepage": "https://github.com/ljlm0402/typescript-express-starter#readme"
61
- }
71
+ }