nodejs-quickstart-structure 1.11.0 → 1.11.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.11.1] - 2026-03-03
9
+ ### Fixed
10
+ - Fixed relative import paths in Clean Architecture JS `error.middleware.js` — changed to correct 3-level relative paths (`../../../`).
11
+
8
12
  ## [1.11.0] - 2026-03-02
9
13
  ### Added
10
14
  - **Centralized Error Handling Mechanism:** All generated projects now include a standardized, predictable error response structure for both REST APIs and GraphQL communication types.
package/README.md CHANGED
@@ -19,7 +19,7 @@ A powerful CLI tool to scaffold production-ready Node.js microservices with buil
19
19
  - **Database Integration**: Pre-configured setup for **MySQL**, **PostgreSQL**, or **MongoDB**.
20
20
  - **Communication Flow**: Scaffold APIs using **REST**, **GraphQL** (with Apollo Server), or **Kafka** (event-driven).
21
21
  - **Caching Layer**: Choose between **Redis** or built-in **Memory Cache** for data caching.
22
- - **Centralized Error Handling**: Every project ships with a global error handler, custom error classes (`ApiError`, `NotFoundError`, `BadRequestError`), and structured JSON error responses — consistent across REST & GraphQL.
22
+ - **Centralized Error Handling**: Every project ships with a global error handler, custom error classes and structured JSON error responses — consistent across REST & GraphQL.
23
23
  - **Dockerized**: Automatically generates `docker-compose.yml` for DB, Kafka, Redis, and Zookeeper.
24
24
  - **Database Migrations/Schemas**: Integrated **Flyway** for SQL migrations or **Mongoose** schemas for MongoDB.
25
25
  - **Professional Standards**: Generated projects come with highly professional, industry-standard tooling.
@@ -30,7 +30,7 @@ We don't just generate boilerplate; we generate **production-ready** foundations
30
30
 
31
31
  - **🔍 Code Quality**: Pre-configured `Eslint` and `Prettier` for consistent coding standards.
32
32
  - **🛡️ Security**: Built-in `Helmet`, `HPP`, `CORS`, and Rate-Limiting middleware.
33
- - **🚨 Error Handling**: Centralized global error middleware with custom error classes and structured `{ statusCode, message }` JSON responses. GraphQL uses Apollo's `formatError` hook; REST uses Express error middleware. Both integrate with Winston for automatic 500-level logging.
33
+ - **🚨 Error Handling**: Centralized global error middleware with custom error classes and structured JSON responses. GraphQL uses Apollo's `formatError` hook; REST uses Express error middleware.
34
34
  - **🧪 Testing Strategy**: Integrated `Jest` and `Supertest` setup for Unit and Integration testing.
35
35
  - **🔄 CI/CD Integration**: Pre-configured workflows for **GitHub Actions**, **Jenkins**, and **GitLab CI**.
36
36
  - **⚓ Git Hooks**: `Husky` and `Lint-Staged` to ensure no bad code is ever committed.
@@ -1,185 +1,265 @@
1
1
  # NodeJS Quickstart Generator - Test Cases
2
2
 
3
- This document lists the **160 possible project combinations** supported by the `nodejs-quickstart` CLI. These combinations cover all supported languages, architectures, databases, communication patterns, and caching options.
3
+ This document lists the **240 possible project combinations** supported by the `nodejs-quickstart` CLI. These combinations cover all supported languages, architectures, databases, communication patterns, and caching options.
4
4
 
5
5
  ## Summary
6
6
  - **CI Providers**: `None`, `GitHub Actions`, `Jenkins`, `GitLab CI`
7
- - **MVC Architecture**: 120 Combinations
8
- - **Clean Architecture**: 40 Combinations
7
+ - **MVC Architecture**: 180 Combinations
8
+ - **Clean Architecture**: 60 Combinations
9
9
 
10
- **Total Core Combinations: 160**
10
+ **Total Core Combinations: 240**
11
11
 
12
12
  > **Note on CI/CD**: Each combination can be generated with or without CI/CD (`--ci-provider`), effectively doubling the state space.
13
13
 
14
14
  ---
15
15
 
16
- ## 1. MVC Architecture (120 Cases)
16
+ ## 1. MVC Architecture (180 Cases)
17
17
 
18
18
  | # | Language | Architecture | View Engine | Database | Communication | Caching |
19
19
  | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
20
20
  | 1 | TypeScript | MVC | EJS | None | REST APIs | None |
21
- | 2 | TypeScript | MVC | EJS | None | Kafka | None |
22
- | 3 | TypeScript | MVC | EJS | MySQL | REST APIs | None |
23
- | 4 | TypeScript | MVC | EJS | MySQL | REST APIs | Redis |
24
- | 5 | TypeScript | MVC | EJS | MySQL | REST APIs | Memory Cache |
25
- | 6 | TypeScript | MVC | EJS | MySQL | Kafka | None |
26
- | 7 | TypeScript | MVC | EJS | MySQL | Kafka | Redis |
27
- | 8 | TypeScript | MVC | EJS | MySQL | Kafka | Memory Cache |
28
- | 9 | TypeScript | MVC | EJS | PostgreSQL | REST APIs | None |
29
- | 10 | TypeScript | MVC | EJS | PostgreSQL | REST APIs | Redis |
30
- | 11 | TypeScript | MVC | EJS | PostgreSQL | REST APIs | Memory Cache |
31
- | 12 | TypeScript | MVC | EJS | PostgreSQL | Kafka | None |
32
- | 13 | TypeScript | MVC | EJS | PostgreSQL | Kafka | Redis |
33
- | 14 | TypeScript | MVC | EJS | PostgreSQL | Kafka | Memory Cache |
34
- | 15 | TypeScript | MVC | EJS | MongoDB | REST APIs | None |
35
- | 16 | TypeScript | MVC | EJS | MongoDB | REST APIs | Redis |
36
- | 17 | TypeScript | MVC | EJS | MongoDB | REST APIs | Memory Cache |
37
- | 18 | TypeScript | MVC | EJS | MongoDB | Kafka | None |
38
- | 19 | TypeScript | MVC | EJS | MongoDB | Kafka | Redis |
39
- | 20 | TypeScript | MVC | EJS | MongoDB | Kafka | Memory Cache |
40
- | 21 | TypeScript | MVC | Pug | None | REST APIs | None |
41
- | 22 | TypeScript | MVC | Pug | None | Kafka | None |
42
- | 23 | TypeScript | MVC | Pug | MySQL | REST APIs | None |
43
- | 24 | TypeScript | MVC | Pug | MySQL | REST APIs | Redis |
44
- | 25 | TypeScript | MVC | Pug | MySQL | REST APIs | Memory Cache |
45
- | 26 | TypeScript | MVC | Pug | MySQL | Kafka | None |
46
- | 27 | TypeScript | MVC | Pug | MySQL | Kafka | Redis |
47
- | 28 | TypeScript | MVC | Pug | MySQL | Kafka | Memory Cache |
48
- | 29 | TypeScript | MVC | Pug | PostgreSQL | REST APIs | None |
49
- | 30 | TypeScript | MVC | Pug | PostgreSQL | REST APIs | Redis |
50
- | 31 | TypeScript | MVC | Pug | PostgreSQL | REST APIs | Memory Cache |
51
- | 32 | TypeScript | MVC | Pug | PostgreSQL | Kafka | None |
52
- | 33 | TypeScript | MVC | Pug | PostgreSQL | Kafka | Redis |
53
- | 34 | TypeScript | MVC | Pug | PostgreSQL | Kafka | Memory Cache |
54
- | 35 | TypeScript | MVC | Pug | MongoDB | REST APIs | None |
55
- | 36 | TypeScript | MVC | Pug | MongoDB | REST APIs | Redis |
56
- | 37 | TypeScript | MVC | Pug | MongoDB | REST APIs | Memory Cache |
57
- | 38 | TypeScript | MVC | Pug | MongoDB | Kafka | None |
58
- | 39 | TypeScript | MVC | Pug | MongoDB | Kafka | Redis |
59
- | 40 | TypeScript | MVC | Pug | MongoDB | Kafka | Memory Cache |
60
- | 41 | TypeScript | MVC | None | None | REST APIs | None |
61
- | 42 | TypeScript | MVC | None | None | Kafka | None |
62
- | 43 | TypeScript | MVC | None | MySQL | REST APIs | None |
63
- | 44 | TypeScript | MVC | None | MySQL | REST APIs | Redis |
64
- | 45 | TypeScript | MVC | None | MySQL | REST APIs | Memory Cache |
65
- | 46 | TypeScript | MVC | None | MySQL | Kafka | None |
66
- | 47 | TypeScript | MVC | None | MySQL | Kafka | Redis |
67
- | 48 | TypeScript | MVC | None | MySQL | Kafka | Memory Cache |
68
- | 49 | TypeScript | MVC | None | PostgreSQL | REST APIs | None |
69
- | 50 | TypeScript | MVC | None | PostgreSQL | REST APIs | Redis |
70
- | 51 | TypeScript | MVC | None | PostgreSQL | REST APIs | Memory Cache |
71
- | 52 | TypeScript | MVC | None | PostgreSQL | Kafka | None |
72
- | 53 | TypeScript | MVC | None | PostgreSQL | Kafka | Redis |
73
- | 54 | TypeScript | MVC | None | PostgreSQL | Kafka | Memory Cache |
74
- | 55 | TypeScript | MVC | None | MongoDB | REST APIs | None |
75
- | 56 | TypeScript | MVC | None | MongoDB | REST APIs | Redis |
76
- | 57 | TypeScript | MVC | None | MongoDB | REST APIs | Memory Cache |
77
- | 58 | TypeScript | MVC | None | MongoDB | Kafka | None |
78
- | 59 | TypeScript | MVC | None | MongoDB | Kafka | Redis |
79
- | 60 | TypeScript | MVC | None | MongoDB | Kafka | Memory Cache |
80
- | 61 | JavaScript | MVC | EJS | None | REST APIs | None |
81
- | 62 | JavaScript | MVC | EJS | None | Kafka | None |
82
- | 63 | JavaScript | MVC | EJS | MySQL | REST APIs | None |
83
- | 64 | JavaScript | MVC | EJS | MySQL | REST APIs | Redis |
84
- | 65 | JavaScript | MVC | EJS | MySQL | REST APIs | Memory Cache |
85
- | 66 | JavaScript | MVC | EJS | MySQL | Kafka | None |
86
- | 67 | JavaScript | MVC | EJS | MySQL | Kafka | Redis |
87
- | 68 | JavaScript | MVC | EJS | MySQL | Kafka | Memory Cache |
88
- | 69 | JavaScript | MVC | EJS | PostgreSQL | REST APIs | None |
89
- | 70 | JavaScript | MVC | EJS | PostgreSQL | REST APIs | Redis |
90
- | 71 | JavaScript | MVC | EJS | PostgreSQL | REST APIs | Memory Cache |
91
- | 72 | JavaScript | MVC | EJS | PostgreSQL | Kafka | None |
92
- | 73 | JavaScript | MVC | EJS | PostgreSQL | Kafka | Redis |
93
- | 74 | JavaScript | MVC | EJS | PostgreSQL | Kafka | Memory Cache |
94
- | 75 | JavaScript | MVC | EJS | MongoDB | REST APIs | None |
95
- | 76 | JavaScript | MVC | EJS | MongoDB | REST APIs | Redis |
96
- | 77 | JavaScript | MVC | EJS | MongoDB | REST APIs | Memory Cache |
97
- | 78 | JavaScript | MVC | EJS | MongoDB | Kafka | None |
98
- | 79 | JavaScript | MVC | EJS | MongoDB | Kafka | Redis |
99
- | 80 | JavaScript | MVC | EJS | MongoDB | Kafka | Memory Cache |
100
- | 81 | JavaScript | MVC | Pug | None | REST APIs | None |
101
- | 82 | JavaScript | MVC | Pug | None | Kafka | None |
102
- | 83 | JavaScript | MVC | Pug | MySQL | REST APIs | None |
103
- | 84 | JavaScript | MVC | Pug | MySQL | REST APIs | Redis |
104
- | 85 | JavaScript | MVC | Pug | MySQL | REST APIs | Memory Cache |
105
- | 86 | JavaScript | MVC | Pug | MySQL | Kafka | None |
106
- | 87 | JavaScript | MVC | Pug | MySQL | Kafka | Redis |
107
- | 88 | JavaScript | MVC | Pug | MySQL | Kafka | Memory Cache |
108
- | 89 | JavaScript | MVC | Pug | PostgreSQL | REST APIs | None |
109
- | 90 | JavaScript | MVC | Pug | PostgreSQL | REST APIs | Redis |
110
- | 91 | JavaScript | MVC | Pug | PostgreSQL | REST APIs | Memory Cache |
111
- | 92 | JavaScript | MVC | Pug | PostgreSQL | Kafka | None |
112
- | 93 | JavaScript | MVC | Pug | PostgreSQL | Kafka | Redis |
113
- | 94 | JavaScript | MVC | Pug | PostgreSQL | Kafka | Memory Cache |
114
- | 95 | JavaScript | MVC | Pug | MongoDB | REST APIs | None |
115
- | 96 | JavaScript | MVC | Pug | MongoDB | REST APIs | Redis |
116
- | 97 | JavaScript | MVC | Pug | MongoDB | REST APIs | Memory Cache |
117
- | 98 | JavaScript | MVC | Pug | MongoDB | Kafka | None |
118
- | 99 | JavaScript | MVC | Pug | MongoDB | Kafka | Redis |
119
- | 100 | JavaScript | MVC | Pug | MongoDB | Kafka | Memory Cache |
120
- | 101 | JavaScript | MVC | None | None | REST APIs | None |
121
- | 102 | JavaScript | MVC | None | None | Kafka | None |
122
- | 103 | JavaScript | MVC | None | MySQL | REST APIs | None |
123
- | 104 | JavaScript | MVC | None | MySQL | REST APIs | Redis |
124
- | 105 | JavaScript | MVC | None | MySQL | REST APIs | Memory Cache |
125
- | 106 | JavaScript | MVC | None | MySQL | Kafka | None |
126
- | 107 | JavaScript | MVC | None | MySQL | Kafka | Redis |
127
- | 108 | JavaScript | MVC | None | MySQL | Kafka | Memory Cache |
128
- | 109 | JavaScript | MVC | None | PostgreSQL | REST APIs | None |
129
- | 110 | JavaScript | MVC | None | PostgreSQL | REST APIs | Redis |
130
- | 111 | JavaScript | MVC | None | PostgreSQL | REST APIs | Memory Cache |
131
- | 112 | JavaScript | MVC | None | PostgreSQL | Kafka | None |
132
- | 113 | JavaScript | MVC | None | PostgreSQL | Kafka | Redis |
133
- | 114 | JavaScript | MVC | None | PostgreSQL | Kafka | Memory Cache |
134
- | 115 | JavaScript | MVC | None | MongoDB | REST APIs | None |
135
- | 116 | JavaScript | MVC | None | MongoDB | REST APIs | Redis |
136
- | 117 | JavaScript | MVC | None | MongoDB | REST APIs | Memory Cache |
137
- | 118 | JavaScript | MVC | None | MongoDB | Kafka | None |
138
- | 119 | JavaScript | MVC | None | MongoDB | Kafka | Redis |
139
- | 120 | JavaScript | MVC | None | MongoDB | Kafka | Memory Cache |
21
+ | 2 | TypeScript | MVC | EJS | None | GraphQL | None |
22
+ | 3 | TypeScript | MVC | EJS | None | Kafka | None |
23
+ | 4 | TypeScript | MVC | EJS | MySQL | REST APIs | None |
24
+ | 5 | TypeScript | MVC | EJS | MySQL | REST APIs | Redis |
25
+ | 6 | TypeScript | MVC | EJS | MySQL | REST APIs | Memory Cache |
26
+ | 7 | TypeScript | MVC | EJS | MySQL | GraphQL | None |
27
+ | 8 | TypeScript | MVC | EJS | MySQL | GraphQL | Redis |
28
+ | 9 | TypeScript | MVC | EJS | MySQL | GraphQL | Memory Cache |
29
+ | 10 | TypeScript | MVC | EJS | MySQL | Kafka | None |
30
+ | 11 | TypeScript | MVC | EJS | MySQL | Kafka | Redis |
31
+ | 12 | TypeScript | MVC | EJS | MySQL | Kafka | Memory Cache |
32
+ | 13 | TypeScript | MVC | EJS | PostgreSQL | REST APIs | None |
33
+ | 14 | TypeScript | MVC | EJS | PostgreSQL | REST APIs | Redis |
34
+ | 15 | TypeScript | MVC | EJS | PostgreSQL | REST APIs | Memory Cache |
35
+ | 16 | TypeScript | MVC | EJS | PostgreSQL | GraphQL | None |
36
+ | 17 | TypeScript | MVC | EJS | PostgreSQL | GraphQL | Redis |
37
+ | 18 | TypeScript | MVC | EJS | PostgreSQL | GraphQL | Memory Cache |
38
+ | 19 | TypeScript | MVC | EJS | PostgreSQL | Kafka | None |
39
+ | 20 | TypeScript | MVC | EJS | PostgreSQL | Kafka | Redis |
40
+ | 21 | TypeScript | MVC | EJS | PostgreSQL | Kafka | Memory Cache |
41
+ | 22 | TypeScript | MVC | EJS | MongoDB | REST APIs | None |
42
+ | 23 | TypeScript | MVC | EJS | MongoDB | REST APIs | Redis |
43
+ | 24 | TypeScript | MVC | EJS | MongoDB | REST APIs | Memory Cache |
44
+ | 25 | TypeScript | MVC | EJS | MongoDB | GraphQL | None |
45
+ | 26 | TypeScript | MVC | EJS | MongoDB | GraphQL | Redis |
46
+ | 27 | TypeScript | MVC | EJS | MongoDB | GraphQL | Memory Cache |
47
+ | 28 | TypeScript | MVC | EJS | MongoDB | Kafka | None |
48
+ | 29 | TypeScript | MVC | EJS | MongoDB | Kafka | Redis |
49
+ | 30 | TypeScript | MVC | EJS | MongoDB | Kafka | Memory Cache |
50
+ | 31 | TypeScript | MVC | Pug | None | REST APIs | None |
51
+ | 32 | TypeScript | MVC | Pug | None | GraphQL | None |
52
+ | 33 | TypeScript | MVC | Pug | None | Kafka | None |
53
+ | 34 | TypeScript | MVC | Pug | MySQL | REST APIs | None |
54
+ | 35 | TypeScript | MVC | Pug | MySQL | REST APIs | Redis |
55
+ | 36 | TypeScript | MVC | Pug | MySQL | REST APIs | Memory Cache |
56
+ | 37 | TypeScript | MVC | Pug | MySQL | GraphQL | None |
57
+ | 38 | TypeScript | MVC | Pug | MySQL | GraphQL | Redis |
58
+ | 39 | TypeScript | MVC | Pug | MySQL | GraphQL | Memory Cache |
59
+ | 40 | TypeScript | MVC | Pug | MySQL | Kafka | None |
60
+ | 41 | TypeScript | MVC | Pug | MySQL | Kafka | Redis |
61
+ | 42 | TypeScript | MVC | Pug | MySQL | Kafka | Memory Cache |
62
+ | 43 | TypeScript | MVC | Pug | PostgreSQL | REST APIs | None |
63
+ | 44 | TypeScript | MVC | Pug | PostgreSQL | REST APIs | Redis |
64
+ | 45 | TypeScript | MVC | Pug | PostgreSQL | REST APIs | Memory Cache |
65
+ | 46 | TypeScript | MVC | Pug | PostgreSQL | GraphQL | None |
66
+ | 47 | TypeScript | MVC | Pug | PostgreSQL | GraphQL | Redis |
67
+ | 48 | TypeScript | MVC | Pug | PostgreSQL | GraphQL | Memory Cache |
68
+ | 49 | TypeScript | MVC | Pug | PostgreSQL | Kafka | None |
69
+ | 50 | TypeScript | MVC | Pug | PostgreSQL | Kafka | Redis |
70
+ | 51 | TypeScript | MVC | Pug | PostgreSQL | Kafka | Memory Cache |
71
+ | 52 | TypeScript | MVC | Pug | MongoDB | REST APIs | None |
72
+ | 53 | TypeScript | MVC | Pug | MongoDB | REST APIs | Redis |
73
+ | 54 | TypeScript | MVC | Pug | MongoDB | REST APIs | Memory Cache |
74
+ | 55 | TypeScript | MVC | Pug | MongoDB | GraphQL | None |
75
+ | 56 | TypeScript | MVC | Pug | MongoDB | GraphQL | Redis |
76
+ | 57 | TypeScript | MVC | Pug | MongoDB | GraphQL | Memory Cache |
77
+ | 58 | TypeScript | MVC | Pug | MongoDB | Kafka | None |
78
+ | 59 | TypeScript | MVC | Pug | MongoDB | Kafka | Redis |
79
+ | 60 | TypeScript | MVC | Pug | MongoDB | Kafka | Memory Cache |
80
+ | 61 | TypeScript | MVC | None | None | REST APIs | None |
81
+ | 62 | TypeScript | MVC | None | None | GraphQL | None |
82
+ | 63 | TypeScript | MVC | None | None | Kafka | None |
83
+ | 64 | TypeScript | MVC | None | MySQL | REST APIs | None |
84
+ | 65 | TypeScript | MVC | None | MySQL | REST APIs | Redis |
85
+ | 66 | TypeScript | MVC | None | MySQL | REST APIs | Memory Cache |
86
+ | 67 | TypeScript | MVC | None | MySQL | GraphQL | None |
87
+ | 68 | TypeScript | MVC | None | MySQL | GraphQL | Redis |
88
+ | 69 | TypeScript | MVC | None | MySQL | GraphQL | Memory Cache |
89
+ | 70 | TypeScript | MVC | None | MySQL | Kafka | None |
90
+ | 71 | TypeScript | MVC | None | MySQL | Kafka | Redis |
91
+ | 72 | TypeScript | MVC | None | MySQL | Kafka | Memory Cache |
92
+ | 73 | TypeScript | MVC | None | PostgreSQL | REST APIs | None |
93
+ | 74 | TypeScript | MVC | None | PostgreSQL | REST APIs | Redis |
94
+ | 75 | TypeScript | MVC | None | PostgreSQL | REST APIs | Memory Cache |
95
+ | 76 | TypeScript | MVC | None | PostgreSQL | GraphQL | None |
96
+ | 77 | TypeScript | MVC | None | PostgreSQL | GraphQL | Redis |
97
+ | 78 | TypeScript | MVC | None | PostgreSQL | GraphQL | Memory Cache |
98
+ | 79 | TypeScript | MVC | None | PostgreSQL | Kafka | None |
99
+ | 80 | TypeScript | MVC | None | PostgreSQL | Kafka | Redis |
100
+ | 81 | TypeScript | MVC | None | PostgreSQL | Kafka | Memory Cache |
101
+ | 82 | TypeScript | MVC | None | MongoDB | REST APIs | None |
102
+ | 83 | TypeScript | MVC | None | MongoDB | REST APIs | Redis |
103
+ | 84 | TypeScript | MVC | None | MongoDB | REST APIs | Memory Cache |
104
+ | 85 | TypeScript | MVC | None | MongoDB | GraphQL | None |
105
+ | 86 | TypeScript | MVC | None | MongoDB | GraphQL | Redis |
106
+ | 87 | TypeScript | MVC | None | MongoDB | GraphQL | Memory Cache |
107
+ | 88 | TypeScript | MVC | None | MongoDB | Kafka | None |
108
+ | 89 | TypeScript | MVC | None | MongoDB | Kafka | Redis |
109
+ | 90 | TypeScript | MVC | None | MongoDB | Kafka | Memory Cache |
110
+ | 91 | JavaScript | MVC | EJS | None | REST APIs | None |
111
+ | 92 | JavaScript | MVC | EJS | None | GraphQL | None |
112
+ | 93 | JavaScript | MVC | EJS | None | Kafka | None |
113
+ | 94 | JavaScript | MVC | EJS | MySQL | REST APIs | None |
114
+ | 95 | JavaScript | MVC | EJS | MySQL | REST APIs | Redis |
115
+ | 96 | JavaScript | MVC | EJS | MySQL | REST APIs | Memory Cache |
116
+ | 97 | JavaScript | MVC | EJS | MySQL | GraphQL | None |
117
+ | 98 | JavaScript | MVC | EJS | MySQL | GraphQL | Redis |
118
+ | 99 | JavaScript | MVC | EJS | MySQL | GraphQL | Memory Cache |
119
+ | 100 | JavaScript | MVC | EJS | MySQL | Kafka | None |
120
+ | 101 | JavaScript | MVC | EJS | MySQL | Kafka | Redis |
121
+ | 102 | JavaScript | MVC | EJS | MySQL | Kafka | Memory Cache |
122
+ | 103 | JavaScript | MVC | EJS | PostgreSQL | REST APIs | None |
123
+ | 104 | JavaScript | MVC | EJS | PostgreSQL | REST APIs | Redis |
124
+ | 105 | JavaScript | MVC | EJS | PostgreSQL | REST APIs | Memory Cache |
125
+ | 106 | JavaScript | MVC | EJS | PostgreSQL | GraphQL | None |
126
+ | 107 | JavaScript | MVC | EJS | PostgreSQL | GraphQL | Redis |
127
+ | 108 | JavaScript | MVC | EJS | PostgreSQL | GraphQL | Memory Cache |
128
+ | 109 | JavaScript | MVC | EJS | PostgreSQL | Kafka | None |
129
+ | 110 | JavaScript | MVC | EJS | PostgreSQL | Kafka | Redis |
130
+ | 111 | JavaScript | MVC | EJS | PostgreSQL | Kafka | Memory Cache |
131
+ | 112 | JavaScript | MVC | EJS | MongoDB | REST APIs | None |
132
+ | 113 | JavaScript | MVC | EJS | MongoDB | REST APIs | Redis |
133
+ | 114 | JavaScript | MVC | EJS | MongoDB | REST APIs | Memory Cache |
134
+ | 115 | JavaScript | MVC | EJS | MongoDB | GraphQL | None |
135
+ | 116 | JavaScript | MVC | EJS | MongoDB | GraphQL | Redis |
136
+ | 117 | JavaScript | MVC | EJS | MongoDB | GraphQL | Memory Cache |
137
+ | 118 | JavaScript | MVC | EJS | MongoDB | Kafka | None |
138
+ | 119 | JavaScript | MVC | EJS | MongoDB | Kafka | Redis |
139
+ | 120 | JavaScript | MVC | EJS | MongoDB | Kafka | Memory Cache |
140
+ | 121 | JavaScript | MVC | Pug | None | REST APIs | None |
141
+ | 122 | JavaScript | MVC | Pug | None | GraphQL | None |
142
+ | 123 | JavaScript | MVC | Pug | None | Kafka | None |
143
+ | 124 | JavaScript | MVC | Pug | MySQL | REST APIs | None |
144
+ | 125 | JavaScript | MVC | Pug | MySQL | REST APIs | Redis |
145
+ | 126 | JavaScript | MVC | Pug | MySQL | REST APIs | Memory Cache |
146
+ | 127 | JavaScript | MVC | Pug | MySQL | GraphQL | None |
147
+ | 128 | JavaScript | MVC | Pug | MySQL | GraphQL | Redis |
148
+ | 129 | JavaScript | MVC | Pug | MySQL | GraphQL | Memory Cache |
149
+ | 130 | JavaScript | MVC | Pug | MySQL | Kafka | None |
150
+ | 131 | JavaScript | MVC | Pug | MySQL | Kafka | Redis |
151
+ | 132 | JavaScript | MVC | Pug | MySQL | Kafka | Memory Cache |
152
+ | 133 | JavaScript | MVC | Pug | PostgreSQL | REST APIs | None |
153
+ | 134 | JavaScript | MVC | Pug | PostgreSQL | REST APIs | Redis |
154
+ | 135 | JavaScript | MVC | Pug | PostgreSQL | REST APIs | Memory Cache |
155
+ | 136 | JavaScript | MVC | Pug | PostgreSQL | GraphQL | None |
156
+ | 137 | JavaScript | MVC | Pug | PostgreSQL | GraphQL | Redis |
157
+ | 138 | JavaScript | MVC | Pug | PostgreSQL | GraphQL | Memory Cache |
158
+ | 139 | JavaScript | MVC | Pug | PostgreSQL | Kafka | None |
159
+ | 140 | JavaScript | MVC | Pug | PostgreSQL | Kafka | Redis |
160
+ | 141 | JavaScript | MVC | Pug | PostgreSQL | Kafka | Memory Cache |
161
+ | 142 | JavaScript | MVC | Pug | MongoDB | REST APIs | None |
162
+ | 143 | JavaScript | MVC | Pug | MongoDB | REST APIs | Redis |
163
+ | 144 | JavaScript | MVC | Pug | MongoDB | REST APIs | Memory Cache |
164
+ | 145 | JavaScript | MVC | Pug | MongoDB | GraphQL | None |
165
+ | 146 | JavaScript | MVC | Pug | MongoDB | GraphQL | Redis |
166
+ | 147 | JavaScript | MVC | Pug | MongoDB | GraphQL | Memory Cache |
167
+ | 148 | JavaScript | MVC | Pug | MongoDB | Kafka | None |
168
+ | 149 | JavaScript | MVC | Pug | MongoDB | Kafka | Redis |
169
+ | 150 | JavaScript | MVC | Pug | MongoDB | Kafka | Memory Cache |
170
+ | 151 | JavaScript | MVC | None | None | REST APIs | None |
171
+ | 152 | JavaScript | MVC | None | None | GraphQL | None |
172
+ | 153 | JavaScript | MVC | None | None | Kafka | None |
173
+ | 154 | JavaScript | MVC | None | MySQL | REST APIs | None |
174
+ | 155 | JavaScript | MVC | None | MySQL | REST APIs | Redis |
175
+ | 156 | JavaScript | MVC | None | MySQL | REST APIs | Memory Cache |
176
+ | 157 | JavaScript | MVC | None | MySQL | GraphQL | None |
177
+ | 158 | JavaScript | MVC | None | MySQL | GraphQL | Redis |
178
+ | 159 | JavaScript | MVC | None | MySQL | GraphQL | Memory Cache |
179
+ | 160 | JavaScript | MVC | None | MySQL | Kafka | None |
180
+ | 161 | JavaScript | MVC | None | MySQL | Kafka | Redis |
181
+ | 162 | JavaScript | MVC | None | MySQL | Kafka | Memory Cache |
182
+ | 163 | JavaScript | MVC | None | PostgreSQL | REST APIs | None |
183
+ | 164 | JavaScript | MVC | None | PostgreSQL | REST APIs | Redis |
184
+ | 165 | JavaScript | MVC | None | PostgreSQL | REST APIs | Memory Cache |
185
+ | 166 | JavaScript | MVC | None | PostgreSQL | GraphQL | None |
186
+ | 167 | JavaScript | MVC | None | PostgreSQL | GraphQL | Redis |
187
+ | 168 | JavaScript | MVC | None | PostgreSQL | GraphQL | Memory Cache |
188
+ | 169 | JavaScript | MVC | None | PostgreSQL | Kafka | None |
189
+ | 170 | JavaScript | MVC | None | PostgreSQL | Kafka | Redis |
190
+ | 171 | JavaScript | MVC | None | PostgreSQL | Kafka | Memory Cache |
191
+ | 172 | JavaScript | MVC | None | MongoDB | REST APIs | None |
192
+ | 173 | JavaScript | MVC | None | MongoDB | REST APIs | Redis |
193
+ | 174 | JavaScript | MVC | None | MongoDB | REST APIs | Memory Cache |
194
+ | 175 | JavaScript | MVC | None | MongoDB | GraphQL | None |
195
+ | 176 | JavaScript | MVC | None | MongoDB | GraphQL | Redis |
196
+ | 177 | JavaScript | MVC | None | MongoDB | GraphQL | Memory Cache |
197
+ | 178 | JavaScript | MVC | None | MongoDB | Kafka | None |
198
+ | 179 | JavaScript | MVC | None | MongoDB | Kafka | Redis |
199
+ | 180 | JavaScript | MVC | None | MongoDB | Kafka | Memory Cache |
140
200
 
141
- ## 2. Clean Architecture (40 Cases)
201
+ ## 2. Clean Architecture (60 Cases)
142
202
  *Note: Clean Architecture does not use server-side view engines (EJS/Pug).*
143
203
 
144
204
  | # | Language | Architecture | View Engine | Database | Communication | Caching |
145
205
  | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
146
- | 121 | TypeScript | Clean Architecture | N/A | None | REST APIs | None |
147
- | 122 | TypeScript | Clean Architecture | N/A | None | Kafka | None |
148
- | 123 | TypeScript | Clean Architecture | N/A | MySQL | REST APIs | None |
149
- | 124 | TypeScript | Clean Architecture | N/A | MySQL | REST APIs | Redis |
150
- | 125 | TypeScript | Clean Architecture | N/A | MySQL | REST APIs | Memory Cache |
151
- | 126 | TypeScript | Clean Architecture | N/A | MySQL | Kafka | None |
152
- | 127 | TypeScript | Clean Architecture | N/A | MySQL | Kafka | Redis |
153
- | 128 | TypeScript | Clean Architecture | N/A | MySQL | Kafka | Memory Cache |
154
- | 129 | TypeScript | Clean Architecture | N/A | PostgreSQL | REST APIs | None |
155
- | 130 | TypeScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Redis |
156
- | 131 | TypeScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Memory Cache |
157
- | 132 | TypeScript | Clean Architecture | N/A | PostgreSQL | Kafka | None |
158
- | 133 | TypeScript | Clean Architecture | N/A | PostgreSQL | Kafka | Redis |
159
- | 134 | TypeScript | Clean Architecture | N/A | PostgreSQL | Kafka | Memory Cache |
160
- | 135 | TypeScript | Clean Architecture | N/A | MongoDB | REST APIs | None |
161
- | 136 | TypeScript | Clean Architecture | N/A | MongoDB | REST APIs | Redis |
162
- | 137 | TypeScript | Clean Architecture | N/A | MongoDB | REST APIs | Memory Cache |
163
- | 138 | TypeScript | Clean Architecture | N/A | MongoDB | Kafka | None |
164
- | 139 | TypeScript | Clean Architecture | N/A | MongoDB | Kafka | Redis |
165
- | 140 | TypeScript | Clean Architecture | N/A | MongoDB | Kafka | Memory Cache |
166
- | 141 | JavaScript | Clean Architecture | N/A | None | REST APIs | None |
167
- | 142 | JavaScript | Clean Architecture | N/A | None | Kafka | None |
168
- | 143 | JavaScript | Clean Architecture | N/A | MySQL | REST APIs | None |
169
- | 144 | JavaScript | Clean Architecture | N/A | MySQL | REST APIs | Redis |
170
- | 145 | JavaScript | Clean Architecture | N/A | MySQL | REST APIs | Memory Cache |
171
- | 146 | JavaScript | Clean Architecture | N/A | MySQL | Kafka | None |
172
- | 147 | JavaScript | Clean Architecture | N/A | MySQL | Kafka | Redis |
173
- | 148 | JavaScript | Clean Architecture | N/A | MySQL | Kafka | Memory Cache |
174
- | 149 | JavaScript | Clean Architecture | N/A | PostgreSQL | REST APIs | None |
175
- | 150 | JavaScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Redis |
176
- | 151 | JavaScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Memory Cache |
177
- | 152 | JavaScript | Clean Architecture | N/A | PostgreSQL | Kafka | None |
178
- | 153 | JavaScript | Clean Architecture | N/A | PostgreSQL | Kafka | Redis |
179
- | 154 | JavaScript | Clean Architecture | N/A | PostgreSQL | Kafka | Memory Cache |
180
- | 155 | JavaScript | Clean Architecture | N/A | MongoDB | REST APIs | None |
181
- | 156 | JavaScript | Clean Architecture | N/A | MongoDB | REST APIs | Redis |
182
- | 157 | JavaScript | Clean Architecture | N/A | MongoDB | REST APIs | Memory Cache |
183
- | 158 | JavaScript | Clean Architecture | N/A | MongoDB | Kafka | None |
184
- | 159 | JavaScript | Clean Architecture | N/A | MongoDB | Kafka | Redis |
185
- | 160 | JavaScript | Clean Architecture | N/A | MongoDB | Kafka | Memory Cache |
206
+ | 181 | TypeScript | Clean Architecture | N/A | None | REST APIs | None |
207
+ | 182 | TypeScript | Clean Architecture | N/A | None | GraphQL | None |
208
+ | 183 | TypeScript | Clean Architecture | N/A | None | Kafka | None |
209
+ | 184 | TypeScript | Clean Architecture | N/A | MySQL | REST APIs | None |
210
+ | 185 | TypeScript | Clean Architecture | N/A | MySQL | REST APIs | Redis |
211
+ | 186 | TypeScript | Clean Architecture | N/A | MySQL | REST APIs | Memory Cache |
212
+ | 187 | TypeScript | Clean Architecture | N/A | MySQL | GraphQL | None |
213
+ | 188 | TypeScript | Clean Architecture | N/A | MySQL | GraphQL | Redis |
214
+ | 189 | TypeScript | Clean Architecture | N/A | MySQL | GraphQL | Memory Cache |
215
+ | 190 | TypeScript | Clean Architecture | N/A | MySQL | Kafka | None |
216
+ | 191 | TypeScript | Clean Architecture | N/A | MySQL | Kafka | Redis |
217
+ | 192 | TypeScript | Clean Architecture | N/A | MySQL | Kafka | Memory Cache |
218
+ | 193 | TypeScript | Clean Architecture | N/A | PostgreSQL | REST APIs | None |
219
+ | 194 | TypeScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Redis |
220
+ | 195 | TypeScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Memory Cache |
221
+ | 196 | TypeScript | Clean Architecture | N/A | PostgreSQL | GraphQL | None |
222
+ | 197 | TypeScript | Clean Architecture | N/A | PostgreSQL | GraphQL | Redis |
223
+ | 198 | TypeScript | Clean Architecture | N/A | PostgreSQL | GraphQL | Memory Cache |
224
+ | 199 | TypeScript | Clean Architecture | N/A | PostgreSQL | Kafka | None |
225
+ | 200 | TypeScript | Clean Architecture | N/A | PostgreSQL | Kafka | Redis |
226
+ | 201 | TypeScript | Clean Architecture | N/A | PostgreSQL | Kafka | Memory Cache |
227
+ | 202 | TypeScript | Clean Architecture | N/A | MongoDB | REST APIs | None |
228
+ | 203 | TypeScript | Clean Architecture | N/A | MongoDB | REST APIs | Redis |
229
+ | 204 | TypeScript | Clean Architecture | N/A | MongoDB | REST APIs | Memory Cache |
230
+ | 205 | TypeScript | Clean Architecture | N/A | MongoDB | GraphQL | None |
231
+ | 206 | TypeScript | Clean Architecture | N/A | MongoDB | GraphQL | Redis |
232
+ | 207 | TypeScript | Clean Architecture | N/A | MongoDB | GraphQL | Memory Cache |
233
+ | 208 | TypeScript | Clean Architecture | N/A | MongoDB | Kafka | None |
234
+ | 209 | TypeScript | Clean Architecture | N/A | MongoDB | Kafka | Redis |
235
+ | 210 | TypeScript | Clean Architecture | N/A | MongoDB | Kafka | Memory Cache |
236
+ | 211 | JavaScript | Clean Architecture | N/A | None | REST APIs | None |
237
+ | 212 | JavaScript | Clean Architecture | N/A | None | GraphQL | None |
238
+ | 213 | JavaScript | Clean Architecture | N/A | None | Kafka | None |
239
+ | 214 | JavaScript | Clean Architecture | N/A | MySQL | REST APIs | None |
240
+ | 215 | JavaScript | Clean Architecture | N/A | MySQL | REST APIs | Redis |
241
+ | 216 | JavaScript | Clean Architecture | N/A | MySQL | REST APIs | Memory Cache |
242
+ | 217 | JavaScript | Clean Architecture | N/A | MySQL | GraphQL | None |
243
+ | 218 | JavaScript | Clean Architecture | N/A | MySQL | GraphQL | Redis |
244
+ | 219 | JavaScript | Clean Architecture | N/A | MySQL | GraphQL | Memory Cache |
245
+ | 220 | JavaScript | Clean Architecture | N/A | MySQL | Kafka | None |
246
+ | 221 | JavaScript | Clean Architecture | N/A | MySQL | Kafka | Redis |
247
+ | 222 | JavaScript | Clean Architecture | N/A | MySQL | Kafka | Memory Cache |
248
+ | 223 | JavaScript | Clean Architecture | N/A | PostgreSQL | REST APIs | None |
249
+ | 224 | JavaScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Redis |
250
+ | 225 | JavaScript | Clean Architecture | N/A | PostgreSQL | REST APIs | Memory Cache |
251
+ | 226 | JavaScript | Clean Architecture | N/A | PostgreSQL | GraphQL | None |
252
+ | 227 | JavaScript | Clean Architecture | N/A | PostgreSQL | GraphQL | Redis |
253
+ | 228 | JavaScript | Clean Architecture | N/A | PostgreSQL | GraphQL | Memory Cache |
254
+ | 229 | JavaScript | Clean Architecture | N/A | PostgreSQL | Kafka | None |
255
+ | 230 | JavaScript | Clean Architecture | N/A | PostgreSQL | Kafka | Redis |
256
+ | 231 | JavaScript | Clean Architecture | N/A | PostgreSQL | Kafka | Memory Cache |
257
+ | 232 | JavaScript | Clean Architecture | N/A | MongoDB | REST APIs | None |
258
+ | 233 | JavaScript | Clean Architecture | N/A | MongoDB | REST APIs | Redis |
259
+ | 234 | JavaScript | Clean Architecture | N/A | MongoDB | REST APIs | Memory Cache |
260
+ | 235 | JavaScript | Clean Architecture | N/A | MongoDB | GraphQL | None |
261
+ | 236 | JavaScript | Clean Architecture | N/A | MongoDB | GraphQL | Redis |
262
+ | 237 | JavaScript | Clean Architecture | N/A | MongoDB | GraphQL | Memory Cache |
263
+ | 238 | JavaScript | Clean Architecture | N/A | MongoDB | Kafka | None |
264
+ | 239 | JavaScript | Clean Architecture | N/A | MongoDB | Kafka | Redis |
265
+ | 240 | JavaScript | Clean Architecture | N/A | MongoDB | Kafka | Memory Cache |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodejs-quickstart-structure",
3
- "version": "1.11.0",
3
+ "version": "1.11.1",
4
4
  "type": "module",
5
5
  "description": "A CLI to scaffold Node.js microservices with MVC or Clean Architecture",
6
6
  "main": "bin/index.js",
@@ -1,5 +1,5 @@
1
1
  const { ApiError } = require('./ApiError');
2
- const { HTTP_STATUS } = require('../../utils/httpCodes');
2
+ const { HTTP_STATUS } = require('../utils/httpCodes');
3
3
 
4
4
  class BadRequestError extends ApiError {
5
5
  constructor(message = 'Bad request') {
@@ -1,5 +1,5 @@
1
1
  const { ApiError } = require('./ApiError');
2
- const { HTTP_STATUS } = require('../../utils/httpCodes');
2
+ const { HTTP_STATUS } = require('../utils/httpCodes');
3
3
 
4
4
  class NotFoundError extends ApiError {
5
5
  constructor(message = 'Resource not found') {
@@ -1,5 +1,5 @@
1
1
  const { ApiError } = require('./ApiError');
2
- const { HTTP_STATUS } = require('../../utils/httpCodes');
2
+ const { HTTP_STATUS } = require('../utils/httpCodes');
3
3
 
4
4
  class BadRequestError extends ApiError {
5
5
  constructor(message = 'Bad request') {
@@ -1,5 +1,5 @@
1
1
  const { ApiError } = require('./ApiError');
2
- const { HTTP_STATUS } = require('../../utils/httpCodes');
2
+ const { HTTP_STATUS } = require('../utils/httpCodes');
3
3
 
4
4
  class NotFoundError extends ApiError {
5
5
  constructor(message = 'Resource not found') {