nodejs-quickstart-structure 1.18.1 → 1.19.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 (235) hide show
  1. package/CHANGELOG.md +309 -294
  2. package/LICENSE +15 -15
  3. package/README.md +2 -1
  4. package/lib/generator.js +139 -139
  5. package/lib/modules/app-setup.js +401 -401
  6. package/lib/modules/caching-setup.js +76 -73
  7. package/lib/modules/config-files.js +151 -151
  8. package/lib/modules/database-setup.js +116 -116
  9. package/lib/modules/kafka-setup.js +249 -191
  10. package/lib/modules/project-setup.js +32 -31
  11. package/lib/prompts.js +100 -100
  12. package/package.json +78 -67
  13. package/templates/clean-architecture/js/src/domain/models/User.js +9 -9
  14. package/templates/clean-architecture/js/src/errors/ApiError.js +14 -14
  15. package/templates/clean-architecture/js/src/errors/BadRequestError.js +11 -10
  16. package/templates/clean-architecture/js/src/errors/BadRequestError.spec.js.ejs +22 -21
  17. package/templates/clean-architecture/js/src/errors/NotFoundError.js +11 -10
  18. package/templates/clean-architecture/js/src/errors/NotFoundError.spec.js.ejs +22 -21
  19. package/templates/clean-architecture/js/src/index.js.ejs +55 -55
  20. package/templates/clean-architecture/js/src/infrastructure/config/env.js.ejs +47 -47
  21. package/templates/clean-architecture/js/src/infrastructure/log/logger.js +36 -36
  22. package/templates/clean-architecture/js/src/infrastructure/log/logger.spec.js.ejs +63 -63
  23. package/templates/clean-architecture/js/src/infrastructure/repositories/UserRepository.js.ejs +69 -39
  24. package/templates/clean-architecture/js/src/infrastructure/repositories/UserRepository.spec.js.ejs +142 -81
  25. package/templates/clean-architecture/js/src/infrastructure/webserver/middleware/errorMiddleware.js +30 -30
  26. package/templates/clean-architecture/js/src/infrastructure/webserver/server.js.ejs +89 -89
  27. package/templates/clean-architecture/js/src/infrastructure/webserver/swagger.js.ejs +6 -6
  28. package/templates/clean-architecture/js/src/interfaces/controllers/userController.js.ejs +156 -75
  29. package/templates/clean-architecture/js/src/interfaces/controllers/userController.spec.js.ejs +234 -138
  30. package/templates/clean-architecture/js/src/interfaces/graphql/context.js.ejs +13 -13
  31. package/templates/clean-architecture/js/src/interfaces/graphql/context.spec.js.ejs +31 -31
  32. package/templates/clean-architecture/js/src/interfaces/graphql/index.js.ejs +5 -5
  33. package/templates/clean-architecture/js/src/interfaces/graphql/resolvers/index.js.ejs +6 -6
  34. package/templates/clean-architecture/js/src/interfaces/graphql/resolvers/user.resolvers.js.ejs +27 -21
  35. package/templates/clean-architecture/js/src/interfaces/graphql/resolvers/user.resolvers.spec.js.ejs +66 -49
  36. package/templates/clean-architecture/js/src/interfaces/graphql/typeDefs/index.js.ejs +6 -6
  37. package/templates/clean-architecture/js/src/interfaces/graphql/typeDefs/user.types.js.ejs +19 -17
  38. package/templates/clean-architecture/js/src/interfaces/routes/api.js +12 -10
  39. package/templates/clean-architecture/js/src/interfaces/routes/api.spec.js.ejs +38 -38
  40. package/templates/clean-architecture/js/src/usecases/CreateUser.js +14 -14
  41. package/templates/clean-architecture/js/src/usecases/CreateUser.spec.js.ejs +51 -51
  42. package/templates/clean-architecture/js/src/usecases/DeleteUser.js +11 -0
  43. package/templates/clean-architecture/js/src/usecases/DeleteUser.spec.js.ejs +47 -0
  44. package/templates/clean-architecture/js/src/usecases/GetAllUsers.js +12 -12
  45. package/templates/clean-architecture/js/src/usecases/GetAllUsers.spec.js.ejs +61 -61
  46. package/templates/clean-architecture/js/src/usecases/UpdateUser.js +11 -0
  47. package/templates/clean-architecture/js/src/usecases/UpdateUser.spec.js.ejs +48 -0
  48. package/templates/clean-architecture/js/src/utils/errorMessages.js +14 -0
  49. package/templates/clean-architecture/js/src/utils/httpCodes.js +9 -9
  50. package/templates/clean-architecture/ts/src/config/env.ts.ejs +46 -46
  51. package/templates/clean-architecture/ts/src/config/swagger.ts.ejs +6 -6
  52. package/templates/clean-architecture/ts/src/domain/user.ts +7 -7
  53. package/templates/clean-architecture/ts/src/errors/ApiError.ts +15 -15
  54. package/templates/clean-architecture/ts/src/errors/BadRequestError.spec.ts.ejs +22 -21
  55. package/templates/clean-architecture/ts/src/errors/BadRequestError.ts +9 -8
  56. package/templates/clean-architecture/ts/src/errors/NotFoundError.spec.ts.ejs +22 -21
  57. package/templates/clean-architecture/ts/src/errors/NotFoundError.ts +9 -8
  58. package/templates/clean-architecture/ts/src/index.ts.ejs +139 -139
  59. package/templates/clean-architecture/ts/src/infrastructure/log/logger.spec.ts.ejs +63 -63
  60. package/templates/clean-architecture/ts/src/infrastructure/log/logger.ts +36 -36
  61. package/templates/clean-architecture/ts/src/infrastructure/repositories/UserRepository.spec.ts.ejs +175 -85
  62. package/templates/clean-architecture/ts/src/infrastructure/repositories/userRepository.ts.ejs +74 -0
  63. package/templates/clean-architecture/ts/src/interfaces/controllers/userController.spec.ts.ejs +331 -185
  64. package/templates/clean-architecture/ts/src/interfaces/controllers/userController.ts.ejs +173 -84
  65. package/templates/clean-architecture/ts/src/interfaces/graphql/context.spec.ts.ejs +32 -32
  66. package/templates/clean-architecture/ts/src/interfaces/graphql/context.ts.ejs +17 -17
  67. package/templates/clean-architecture/ts/src/interfaces/graphql/index.ts.ejs +3 -3
  68. package/templates/clean-architecture/ts/src/interfaces/graphql/resolvers/index.ts.ejs +4 -4
  69. package/templates/clean-architecture/ts/src/interfaces/graphql/resolvers/user.resolvers.spec.ts.ejs +68 -51
  70. package/templates/clean-architecture/ts/src/interfaces/graphql/resolvers/user.resolvers.ts.ejs +29 -21
  71. package/templates/clean-architecture/ts/src/interfaces/graphql/typeDefs/index.ts.ejs +4 -4
  72. package/templates/clean-architecture/ts/src/interfaces/graphql/typeDefs/user.types.ts.ejs +17 -15
  73. package/templates/clean-architecture/ts/src/interfaces/routes/userRoutes.spec.ts.ejs +40 -40
  74. package/templates/clean-architecture/ts/src/interfaces/routes/userRoutes.ts +13 -11
  75. package/templates/clean-architecture/ts/src/usecases/createUser.spec.ts.ejs +51 -51
  76. package/templates/clean-architecture/ts/src/usecases/createUser.ts +13 -13
  77. package/templates/clean-architecture/ts/src/usecases/deleteUser.spec.ts.ejs +47 -0
  78. package/templates/clean-architecture/ts/src/usecases/deleteUser.ts +9 -0
  79. package/templates/clean-architecture/ts/src/usecases/getAllUsers.spec.ts.ejs +63 -63
  80. package/templates/clean-architecture/ts/src/usecases/getAllUsers.ts +10 -10
  81. package/templates/clean-architecture/ts/src/usecases/updateUser.spec.ts.ejs +48 -0
  82. package/templates/clean-architecture/ts/src/usecases/updateUser.ts +9 -0
  83. package/templates/clean-architecture/ts/src/utils/errorMessages.ts +12 -0
  84. package/templates/clean-architecture/ts/src/utils/errorMiddleware.ts.ejs +27 -27
  85. package/templates/clean-architecture/ts/src/utils/httpCodes.ts +7 -7
  86. package/templates/common/.cursorrules.ejs +60 -60
  87. package/templates/common/.dockerignore +12 -12
  88. package/templates/common/.env.example.ejs +41 -41
  89. package/templates/common/.gitattributes +46 -0
  90. package/templates/common/.gitlab-ci.yml.ejs +86 -86
  91. package/templates/common/.lintstagedrc +6 -6
  92. package/templates/common/.prettierrc +7 -7
  93. package/templates/common/Dockerfile +73 -73
  94. package/templates/common/Jenkinsfile.ejs +87 -87
  95. package/templates/common/README.md.ejs +294 -270
  96. package/templates/common/SECURITY.md +20 -20
  97. package/templates/common/_github/workflows/ci.yml.ejs +46 -46
  98. package/templates/common/_github/workflows/security.yml.ejs +36 -36
  99. package/templates/common/_gitignore +5 -5
  100. package/templates/common/_husky/pre-commit +4 -4
  101. package/templates/common/caching/clean/js/CreateUser.js.ejs +29 -29
  102. package/templates/common/caching/clean/js/DeleteUser.js.ejs +27 -0
  103. package/templates/common/caching/clean/js/GetAllUsers.js.ejs +37 -37
  104. package/templates/common/caching/clean/js/UpdateUser.js.ejs +27 -0
  105. package/templates/common/caching/clean/ts/createUser.ts.ejs +27 -27
  106. package/templates/common/caching/clean/ts/deleteUser.ts.ejs +24 -0
  107. package/templates/common/caching/clean/ts/getAllUsers.ts.ejs +34 -34
  108. package/templates/common/caching/clean/ts/updateUser.ts.ejs +25 -0
  109. package/templates/common/caching/js/memoryCache.js.ejs +60 -60
  110. package/templates/common/caching/js/memoryCache.spec.js.ejs +101 -101
  111. package/templates/common/caching/js/redisClient.js.ejs +75 -75
  112. package/templates/common/caching/js/redisClient.spec.js.ejs +147 -147
  113. package/templates/common/caching/ts/memoryCache.spec.ts.ejs +102 -102
  114. package/templates/common/caching/ts/memoryCache.ts.ejs +73 -64
  115. package/templates/common/caching/ts/redisClient.spec.ts.ejs +157 -157
  116. package/templates/common/caching/ts/redisClient.ts.ejs +89 -80
  117. package/templates/common/database/js/database.js.ejs +19 -19
  118. package/templates/common/database/js/database.spec.js.ejs +56 -56
  119. package/templates/common/database/js/models/User.js.ejs +79 -53
  120. package/templates/common/database/js/models/User.js.mongoose.ejs +23 -19
  121. package/templates/common/database/js/models/User.spec.js.ejs +94 -84
  122. package/templates/common/database/js/mongoose.js.ejs +33 -33
  123. package/templates/common/database/js/mongoose.spec.js.ejs +43 -43
  124. package/templates/common/database/ts/database.spec.ts.ejs +56 -56
  125. package/templates/common/database/ts/database.ts.ejs +21 -21
  126. package/templates/common/database/ts/models/User.spec.ts.ejs +100 -84
  127. package/templates/common/database/ts/models/User.ts.ejs +87 -61
  128. package/templates/common/database/ts/models/User.ts.mongoose.ejs +30 -25
  129. package/templates/common/database/ts/mongoose.spec.ts.ejs +42 -42
  130. package/templates/common/database/ts/mongoose.ts.ejs +28 -28
  131. package/templates/common/docker-compose.yml.ejs +159 -159
  132. package/templates/common/ecosystem.config.js.ejs +40 -40
  133. package/templates/common/eslint.config.mjs.ejs +77 -77
  134. package/templates/common/health/js/healthRoute.js.ejs +50 -47
  135. package/templates/common/health/js/healthRoute.spec.js.ejs +70 -70
  136. package/templates/common/health/ts/healthRoute.spec.ts.ejs +76 -76
  137. package/templates/common/health/ts/healthRoute.ts.ejs +49 -46
  138. package/templates/common/jest.config.js.ejs +32 -32
  139. package/templates/common/jest.e2e.config.js.ejs +8 -8
  140. package/templates/common/kafka/js/config/kafka.js +9 -9
  141. package/templates/common/kafka/js/config/kafka.spec.js.ejs +27 -27
  142. package/templates/common/kafka/js/messaging/baseConsumer.js.ejs +30 -30
  143. package/templates/common/kafka/js/messaging/baseConsumer.spec.js.ejs +58 -58
  144. package/templates/common/kafka/js/messaging/userEventSchema.js.ejs +12 -11
  145. package/templates/common/kafka/js/messaging/userEventSchema.spec.js.ejs +27 -27
  146. package/templates/common/kafka/js/messaging/welcomeEmailConsumer.js.ejs +44 -31
  147. package/templates/common/kafka/js/messaging/welcomeEmailConsumer.spec.js.ejs +86 -49
  148. package/templates/common/kafka/js/services/kafkaService.js.ejs +93 -93
  149. package/templates/common/kafka/js/services/kafkaService.spec.js.ejs +106 -106
  150. package/templates/common/kafka/js/utils/kafkaEvents.js.ejs +7 -0
  151. package/templates/common/kafka/ts/config/kafka.spec.ts.ejs +27 -27
  152. package/templates/common/kafka/ts/config/kafka.ts +7 -7
  153. package/templates/common/kafka/ts/messaging/baseConsumer.spec.ts.ejs +50 -50
  154. package/templates/common/kafka/ts/messaging/baseConsumer.ts.ejs +27 -27
  155. package/templates/common/kafka/ts/messaging/userEventSchema.spec.ts.ejs +51 -51
  156. package/templates/common/kafka/ts/messaging/userEventSchema.ts.ejs +12 -11
  157. package/templates/common/kafka/ts/messaging/welcomeEmailConsumer.spec.ts.ejs +86 -49
  158. package/templates/common/kafka/ts/messaging/welcomeEmailConsumer.ts.ejs +38 -25
  159. package/templates/common/kafka/ts/services/kafkaService.spec.ts.ejs +81 -81
  160. package/templates/common/kafka/ts/services/kafkaService.ts.ejs +95 -95
  161. package/templates/common/kafka/ts/utils/kafkaEvents.ts.ejs +5 -0
  162. package/templates/common/migrate-mongo-config.js.ejs +31 -31
  163. package/templates/common/migrations/init.js.ejs +23 -23
  164. package/templates/common/package.json.ejs +119 -118
  165. package/templates/common/prompts/add-feature.md.ejs +26 -26
  166. package/templates/common/prompts/project-context.md.ejs +43 -43
  167. package/templates/common/prompts/troubleshoot.md.ejs +28 -28
  168. package/templates/common/public/css/style.css +147 -147
  169. package/templates/common/scripts/run-e2e.js.ejs +63 -63
  170. package/templates/common/shutdown/js/gracefulShutdown.js.ejs +65 -61
  171. package/templates/common/shutdown/js/gracefulShutdown.spec.js.ejs +149 -160
  172. package/templates/common/shutdown/ts/gracefulShutdown.spec.ts.ejs +179 -158
  173. package/templates/common/shutdown/ts/gracefulShutdown.ts.ejs +59 -55
  174. package/templates/common/sonar-project.properties.ejs +27 -27
  175. package/templates/common/src/tests/e2e/e2e.users.test.js.ejs +120 -49
  176. package/templates/common/src/tests/e2e/e2e.users.test.ts.ejs +120 -49
  177. package/templates/common/src/utils/errorMiddleware.spec.js.ejs +79 -79
  178. package/templates/common/src/utils/errorMiddleware.spec.ts.ejs +94 -94
  179. package/templates/common/swagger.yml.ejs +118 -66
  180. package/templates/common/tsconfig.json +22 -22
  181. package/templates/common/views/ejs/index.ejs +55 -55
  182. package/templates/common/views/pug/index.pug +40 -40
  183. package/templates/db/mysql/V1__Initial_Setup.sql.ejs +10 -9
  184. package/templates/db/postgres/V1__Initial_Setup.sql.ejs +10 -9
  185. package/templates/mvc/js/src/config/env.js.ejs +46 -46
  186. package/templates/mvc/js/src/config/swagger.js.ejs +6 -6
  187. package/templates/mvc/js/src/controllers/userController.js.ejs +246 -105
  188. package/templates/mvc/js/src/controllers/userController.spec.js.ejs +481 -209
  189. package/templates/mvc/js/src/errors/ApiError.js +14 -14
  190. package/templates/mvc/js/src/errors/BadRequestError.js +11 -10
  191. package/templates/mvc/js/src/errors/BadRequestError.spec.js.ejs +22 -21
  192. package/templates/mvc/js/src/errors/NotFoundError.js +11 -10
  193. package/templates/mvc/js/src/errors/NotFoundError.spec.js.ejs +22 -21
  194. package/templates/mvc/js/src/graphql/context.js.ejs +7 -7
  195. package/templates/mvc/js/src/graphql/context.spec.js.ejs +29 -29
  196. package/templates/mvc/js/src/graphql/index.js.ejs +5 -5
  197. package/templates/mvc/js/src/graphql/resolvers/index.js.ejs +6 -6
  198. package/templates/mvc/js/src/graphql/resolvers/user.resolvers.js.ejs +25 -19
  199. package/templates/mvc/js/src/graphql/resolvers/user.resolvers.spec.js.ejs +64 -47
  200. package/templates/mvc/js/src/graphql/typeDefs/index.js.ejs +6 -6
  201. package/templates/mvc/js/src/graphql/typeDefs/user.types.js.ejs +19 -17
  202. package/templates/mvc/js/src/index.js.ejs +136 -136
  203. package/templates/mvc/js/src/routes/api.js +10 -8
  204. package/templates/mvc/js/src/routes/api.spec.js.ejs +41 -36
  205. package/templates/mvc/js/src/utils/errorMessages.js +14 -0
  206. package/templates/mvc/js/src/utils/errorMiddleware.js +29 -29
  207. package/templates/mvc/js/src/utils/httpCodes.js +9 -9
  208. package/templates/mvc/js/src/utils/logger.js +40 -40
  209. package/templates/mvc/js/src/utils/logger.spec.js.ejs +63 -63
  210. package/templates/mvc/ts/src/config/env.ts.ejs +45 -45
  211. package/templates/mvc/ts/src/config/swagger.ts.ejs +6 -6
  212. package/templates/mvc/ts/src/controllers/userController.spec.ts.ejs +481 -203
  213. package/templates/mvc/ts/src/controllers/userController.ts.ejs +248 -107
  214. package/templates/mvc/ts/src/errors/ApiError.ts +15 -15
  215. package/templates/mvc/ts/src/errors/BadRequestError.spec.ts.ejs +22 -21
  216. package/templates/mvc/ts/src/errors/BadRequestError.ts +9 -8
  217. package/templates/mvc/ts/src/errors/NotFoundError.spec.ts.ejs +27 -21
  218. package/templates/mvc/ts/src/errors/NotFoundError.ts +9 -8
  219. package/templates/mvc/ts/src/graphql/context.spec.ts.ejs +30 -30
  220. package/templates/mvc/ts/src/graphql/context.ts.ejs +12 -12
  221. package/templates/mvc/ts/src/graphql/index.ts.ejs +3 -3
  222. package/templates/mvc/ts/src/graphql/resolvers/index.ts.ejs +4 -4
  223. package/templates/mvc/ts/src/graphql/resolvers/user.resolvers.spec.ts.ejs +68 -51
  224. package/templates/mvc/ts/src/graphql/resolvers/user.resolvers.ts.ejs +29 -21
  225. package/templates/mvc/ts/src/graphql/typeDefs/index.ts.ejs +4 -4
  226. package/templates/mvc/ts/src/graphql/typeDefs/user.types.ts.ejs +17 -15
  227. package/templates/mvc/ts/src/index.ts.ejs +156 -153
  228. package/templates/mvc/ts/src/routes/api.spec.ts.ejs +59 -40
  229. package/templates/mvc/ts/src/routes/api.ts +12 -10
  230. package/templates/mvc/ts/src/utils/errorMessages.ts +12 -0
  231. package/templates/mvc/ts/src/utils/errorMiddleware.ts.ejs +27 -27
  232. package/templates/mvc/ts/src/utils/httpCodes.ts +7 -7
  233. package/templates/mvc/ts/src/utils/logger.spec.ts.ejs +63 -63
  234. package/templates/mvc/ts/src/utils/logger.ts +36 -36
  235. package/templates/clean-architecture/ts/src/infrastructure/repositories/UserRepository.ts.ejs +0 -37
@@ -1,55 +1,55 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title><%= projectName %></title>
7
- <link rel="stylesheet" href="/css/style.css">
8
- </head>
9
- <body>
10
- <div class="container">
11
- <header class="header">
12
- <div class="logo">🚀</div>
13
- <h1>Welcome to <%= projectName %></h1>
14
- <p class="subtitle">A production-ready Node.js microservice starter.</p>
15
- </header>
16
-
17
- <div class="card-grid">
18
- <div class="card">
19
- <h3>Architecture</h3>
20
- <p><%= architecture %></p>
21
- </div>
22
- <div class="card">
23
- <h3>Database</h3>
24
- <p><%= database %></p>
25
- </div>
26
- <div class="card">
27
- <h3>Communication</h3>
28
- <p><%= communication %></p>
29
- </div>
30
- </div>
31
-
32
- <% if (communication === 'Kafka') { %>
33
- <div class="status-card">
34
- <div class="status-icon">🔄</div>
35
- <div class="status-content">
36
- <h3>Kafka Connected</h3>
37
- <p>Connection to broker established successfully.</p>
38
- </div>
39
- </div>
40
- <% } else { %>
41
- <div class="status-card">
42
- <div class="status-icon">✅</div>
43
- <div class="status-content">
44
- <h3>API Active</h3>
45
- <p>REST API is running and ready to accept requests.</p>
46
- </div>
47
- </div>
48
- <% } %>
49
-
50
- <footer>
51
- <p>Generated with ❤️ by Node.js Quickstart Generator</p>
52
- </footer>
53
- </div>
54
- </body>
55
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title><%= projectName %></title>
7
+ <link rel="stylesheet" href="/css/style.css">
8
+ </head>
9
+ <body>
10
+ <div class="container">
11
+ <header class="header">
12
+ <div class="logo">🚀</div>
13
+ <h1>Welcome to <%= projectName %></h1>
14
+ <p class="subtitle">A production-ready Node.js microservice starter.</p>
15
+ </header>
16
+
17
+ <div class="card-grid">
18
+ <div class="card">
19
+ <h3>Architecture</h3>
20
+ <p><%= architecture %></p>
21
+ </div>
22
+ <div class="card">
23
+ <h3>Database</h3>
24
+ <p><%= database %></p>
25
+ </div>
26
+ <div class="card">
27
+ <h3>Communication</h3>
28
+ <p><%= communication %></p>
29
+ </div>
30
+ </div>
31
+
32
+ <% if (communication === 'Kafka') { %>
33
+ <div class="status-card">
34
+ <div class="status-icon">🔄</div>
35
+ <div class="status-content">
36
+ <h3>Kafka Connected</h3>
37
+ <p>Connection to broker established successfully.</p>
38
+ </div>
39
+ </div>
40
+ <% } else { %>
41
+ <div class="status-card">
42
+ <div class="status-icon">✅</div>
43
+ <div class="status-content">
44
+ <h3>API Active</h3>
45
+ <p>REST API is running and ready to accept requests.</p>
46
+ </div>
47
+ </div>
48
+ <% } %>
49
+
50
+ <footer>
51
+ <p>Generated with ❤️ by Node.js Quickstart Generator</p>
52
+ </footer>
53
+ </div>
54
+ </body>
55
+ </html>
@@ -1,40 +1,40 @@
1
- doctype html
2
- html(lang="en")
3
- head
4
- meta(charset="UTF-8")
5
- meta(name="viewport", content="width=device-width, initial-scale=1.0")
6
- title= projectName
7
- link(rel="stylesheet", href="/css/style.css")
8
- body
9
- .container
10
- header.header
11
- .logo 🚀
12
- h1 Welcome to #{projectName}
13
- p.subtitle A production-ready Node.js microservice starter.
14
-
15
- .card-grid
16
- .card
17
- h3 Architecture
18
- p #{architecture}
19
- .card
20
- h3 Database
21
- p #{database}
22
- .card
23
- h3 Communication
24
- p #{communication}
25
-
26
- if communication === 'Kafka'
27
- .status-card
28
- .status-icon 🔄
29
- .status-content
30
- h3 Kafka Connected
31
- p Connection to broker established successfully.
32
- else
33
- .status-card
34
- .status-icon ✅
35
- .status-content
36
- h3 API Active
37
- p REST API is running and ready to accept requests.
38
-
39
- footer
40
- p Generated with ❤️ by Node.js Quickstart Generator
1
+ doctype html
2
+ html(lang="en")
3
+ head
4
+ meta(charset="UTF-8")
5
+ meta(name="viewport", content="width=device-width, initial-scale=1.0")
6
+ title= projectName
7
+ link(rel="stylesheet", href="/css/style.css")
8
+ body
9
+ .container
10
+ header.header
11
+ .logo 🚀
12
+ h1 Welcome to #{projectName}
13
+ p.subtitle A production-ready Node.js microservice starter.
14
+
15
+ .card-grid
16
+ .card
17
+ h3 Architecture
18
+ p #{architecture}
19
+ .card
20
+ h3 Database
21
+ p #{database}
22
+ .card
23
+ h3 Communication
24
+ p #{communication}
25
+
26
+ if communication === 'Kafka'
27
+ .status-card
28
+ .status-icon 🔄
29
+ .status-content
30
+ h3 Kafka Connected
31
+ p Connection to broker established successfully.
32
+ else
33
+ .status-card
34
+ .status-icon ✅
35
+ .status-content
36
+ h3 API Active
37
+ p REST API is running and ready to accept requests.
38
+
39
+ footer
40
+ p Generated with ❤️ by Node.js Quickstart Generator
@@ -1,9 +1,10 @@
1
- CREATE TABLE users (
2
- id INT AUTO_INCREMENT PRIMARY KEY,
3
- name VARCHAR(255) NOT NULL,
4
- email VARCHAR(255) NOT NULL UNIQUE,
5
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
6
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
7
- );
8
-
9
- INSERT INTO users (name, email) VALUES ('Admin User', 'admin@example.com');
1
+ CREATE TABLE users (
2
+ id INT AUTO_INCREMENT PRIMARY KEY,
3
+ name VARCHAR(255) NOT NULL,
4
+ email VARCHAR(255) NOT NULL UNIQUE,
5
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
6
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
7
+ deleted_at TIMESTAMP NULL
8
+ );
9
+
10
+ INSERT INTO users (name, email) VALUES ('Admin User', 'admin@example.com');
@@ -1,9 +1,10 @@
1
- CREATE TABLE users (
2
- id SERIAL PRIMARY KEY,
3
- name VARCHAR(255) NOT NULL,
4
- email VARCHAR(255) NOT NULL UNIQUE,
5
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
6
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
7
- );
8
-
9
- INSERT INTO users (name, email) VALUES ('Admin User', 'admin@example.com');
1
+ CREATE TABLE users (
2
+ id SERIAL PRIMARY KEY,
3
+ name VARCHAR(255) NOT NULL,
4
+ email VARCHAR(255) NOT NULL UNIQUE,
5
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
6
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
7
+ deleted_at TIMESTAMP NULL
8
+ );
9
+
10
+ INSERT INTO users (name, email) VALUES ('Admin User', 'admin@example.com');
@@ -1,46 +1,46 @@
1
- const { z } = require('zod');
2
- const logger = require('../utils/logger');
3
-
4
- if (process.env.NODE_ENV !== 'production') {
5
- require('dotenv').config();
6
- }
7
- const envSchema = z.object({
8
- NODE_ENV: z.enum(['development', 'production', 'test']).default('development'),
9
- PORT: z.string().transform(Number).default('3000'),
10
- <%_ if (database !== 'None') { -%>
11
- DB_HOST: z.string(),
12
- <%_ if (database === 'MySQL') { -%>
13
- DB_USER: z.string(),
14
- DB_PASSWORD: z.string(),
15
- DB_NAME: z.string(),
16
- DB_PORT: z.string().transform(Number),
17
- <%_ } else if (database === 'PostgreSQL') { -%>
18
- DB_USER: z.string(),
19
- DB_PASSWORD: z.string(),
20
- DB_NAME: z.string(),
21
- DB_PORT: z.string().transform(Number),
22
- <%_ } else if (database === 'MongoDB') { -%>
23
- DB_NAME: z.string(),
24
- DB_PORT: z.string().transform(Number),
25
- <%_ } -%>
26
- <%_ } -%>
27
- <%_ if (caching === 'Redis') { -%>
28
- REDIS_HOST: z.string(),
29
- REDIS_PORT: z.string().transform(Number),
30
- REDIS_PASSWORD: z.string().optional(),
31
- <%_ } -%>
32
- <%_ if (communication === 'Kafka') { -%>
33
- KAFKA_BROKER: z.string(),
34
- <%_ } -%>
35
- });
36
-
37
- const _env = envSchema.safeParse(process.env);
38
-
39
- if (!_env.success) {
40
- logger.error('❌ Invalid environment variables:', _env.error.format());
41
- process.exit(1);
42
- }
43
-
44
- const env = _env.data;
45
-
46
- module.exports = { env };
1
+ const { z } = require('zod');
2
+ const logger = require('../utils/logger');
3
+
4
+ if (process.env.NODE_ENV !== 'production') {
5
+ require('dotenv').config();
6
+ }
7
+ const envSchema = z.object({
8
+ NODE_ENV: z.enum(['development', 'production', 'test']).default('development'),
9
+ PORT: z.string().transform(Number).default('3000'),
10
+ <%_ if (database !== 'None') { -%>
11
+ DB_HOST: z.string(),
12
+ <%_ if (database === 'MySQL') { -%>
13
+ DB_USER: z.string(),
14
+ DB_PASSWORD: z.string(),
15
+ DB_NAME: z.string(),
16
+ DB_PORT: z.string().transform(Number),
17
+ <%_ } else if (database === 'PostgreSQL') { -%>
18
+ DB_USER: z.string(),
19
+ DB_PASSWORD: z.string(),
20
+ DB_NAME: z.string(),
21
+ DB_PORT: z.string().transform(Number),
22
+ <%_ } else if (database === 'MongoDB') { -%>
23
+ DB_NAME: z.string(),
24
+ DB_PORT: z.string().transform(Number),
25
+ <%_ } -%>
26
+ <%_ } -%>
27
+ <%_ if (caching === 'Redis') { -%>
28
+ REDIS_HOST: z.string(),
29
+ REDIS_PORT: z.string().transform(Number),
30
+ REDIS_PASSWORD: z.string().optional(),
31
+ <%_ } -%>
32
+ <%_ if (communication === 'Kafka') { -%>
33
+ KAFKA_BROKER: z.string(),
34
+ <%_ } -%>
35
+ });
36
+
37
+ const _env = envSchema.safeParse(process.env);
38
+
39
+ if (!_env.success) {
40
+ logger.error('❌ Invalid environment variables:', _env.error.format());
41
+ process.exit(1);
42
+ }
43
+
44
+ const env = _env.data;
45
+
46
+ module.exports = { env };
@@ -1,6 +1,6 @@
1
- const path = require('path');
2
- const YAML = require('yamljs');
3
-
4
- const swaggerDocument = YAML.load(path.join(__dirname, 'swagger.yml'));
5
-
6
- module.exports = swaggerDocument;
1
+ const path = require('path');
2
+ const YAML = require('yamljs');
3
+
4
+ const swaggerDocument = YAML.load(path.join(__dirname, 'swagger.yml'));
5
+
6
+ module.exports = swaggerDocument;