nodejs-quickstart-structure 1.11.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +3 -3
- package/bin/index.js +2 -2
- package/docs/generateCase.md +245 -165
- package/lib/generator.js +8 -2
- package/lib/modules/app-setup.js +24 -0
- package/lib/modules/config-files.js +18 -1
- package/lib/modules/kafka-setup.js +2 -35
- package/package.json +1 -1
- package/templates/clean-architecture/js/src/errors/BadRequestError.js +1 -1
- package/templates/clean-architecture/js/src/errors/NotFoundError.js +1 -1
- package/templates/clean-architecture/js/src/index.js.ejs +2 -4
- package/templates/clean-architecture/js/src/infrastructure/config/env.js.ejs +47 -0
- package/templates/clean-architecture/js/src/infrastructure/webserver/middlewares/error.middleware.js +2 -1
- package/templates/clean-architecture/js/src/infrastructure/webserver/server.js.ejs +5 -2
- package/templates/clean-architecture/js/src/interfaces/graphql/resolvers/user.resolvers.js.ejs +4 -1
- package/templates/clean-architecture/ts/src/config/env.ts.ejs +46 -0
- package/templates/clean-architecture/ts/src/index.ts.ejs +9 -12
- package/templates/clean-architecture/ts/src/interfaces/graphql/resolvers/user.resolvers.ts.ejs +4 -1
- package/templates/clean-architecture/ts/src/utils/error.middleware.ts.ejs +2 -1
- package/templates/common/.env.example.ejs +3 -1
- package/templates/common/README.md.ejs +30 -0
- package/templates/common/database/js/mongoose.js.ejs +3 -1
- package/templates/common/database/ts/mongoose.ts.ejs +3 -1
- package/templates/common/docker-compose.yml.ejs +11 -1
- package/templates/common/ecosystem.config.js.ejs +40 -0
- package/templates/common/package.json.ejs +3 -1
- package/templates/mvc/js/src/config/env.js.ejs +46 -0
- package/templates/mvc/js/src/errors/BadRequestError.js +1 -1
- package/templates/mvc/js/src/errors/NotFoundError.js +1 -1
- package/templates/mvc/js/src/graphql/resolvers/user.resolvers.js.ejs +4 -1
- package/templates/mvc/js/src/index.js.ejs +2 -2
- package/templates/mvc/js/src/utils/error.middleware.js +2 -1
- package/templates/mvc/ts/src/config/env.ts.ejs +45 -0
- package/templates/mvc/ts/src/graphql/resolvers/user.resolvers.ts.ejs +4 -1
- package/templates/mvc/ts/src/index.ts.ejs +8 -12
- package/templates/mvc/ts/src/utils/error.middleware.ts.ejs +2 -1
- package/templates/clean-architecture/js/src/domain/repositories/UserRepository.js +0 -9
- /package/templates/clean-architecture/ts/src/infrastructure/repositories/{userRepository.ts.ejs → UserRepository.ts.ejs} +0 -0
|
@@ -14,5 +14,8 @@ export const userResolvers = {
|
|
|
14
14
|
const user = await userController.createUser({ name, email });
|
|
15
15
|
return user;
|
|
16
16
|
}
|
|
17
|
-
}
|
|
17
|
+
}<%_ if (database === 'MongoDB') { -%>,
|
|
18
|
+
User: {
|
|
19
|
+
id: (parent: { id?: string; _id?: unknown }) => parent.id || parent._id
|
|
20
|
+
}<%_ } %>
|
|
18
21
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { env } from '@/config/env';
|
|
1
2
|
import express, { Request, Response } from 'express';
|
|
2
3
|
import cors from 'cors';
|
|
3
4
|
import helmet from 'helmet';
|
|
4
5
|
import hpp from 'hpp';
|
|
5
6
|
import rateLimit from 'express-rate-limit';
|
|
6
|
-
import dotenv from 'dotenv';
|
|
7
7
|
import logger from '@/utils/logger';
|
|
8
8
|
import morgan from 'morgan';
|
|
9
9
|
import { errorMiddleware } from '@/utils/error.middleware';
|
|
@@ -23,10 +23,8 @@ import { typeDefs, resolvers } from '@/graphql';
|
|
|
23
23
|
import { gqlContext, MyContext } from '@/graphql/context';
|
|
24
24
|
<% } -%>
|
|
25
25
|
|
|
26
|
-
dotenv.config();
|
|
27
|
-
|
|
28
26
|
const app = express();
|
|
29
|
-
const port =
|
|
27
|
+
const port = env.PORT;
|
|
30
28
|
|
|
31
29
|
// Security Middleware
|
|
32
30
|
<%_ if (communication === 'GraphQL') { -%>
|
|
@@ -111,15 +109,13 @@ const startServer = async () => {
|
|
|
111
109
|
app.listen(port, () => {
|
|
112
110
|
logger.info(`Server running on port ${port}`);
|
|
113
111
|
<%_ if (communication === 'Kafka') { -%>
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
});
|
|
120
|
-
} catch (err) {
|
|
112
|
+
const kafkaService = new KafkaService();
|
|
113
|
+
kafkaService.connect().then(() => {
|
|
114
|
+
logger.info('Kafka connected');
|
|
115
|
+
kafkaService.sendMessage('test-topic', 'Hello Kafka from MVC TS!');
|
|
116
|
+
}).catch(err => {
|
|
121
117
|
logger.error('Failed to connect to Kafka:', err);
|
|
122
|
-
}
|
|
118
|
+
});
|
|
123
119
|
<%_ } -%>
|
|
124
120
|
});
|
|
125
121
|
};
|
|
@@ -3,7 +3,8 @@ import logger from '@/utils/logger';
|
|
|
3
3
|
import { ApiError } from '@/errors/ApiError';
|
|
4
4
|
import { HTTP_STATUS } from '@/utils/httpCodes';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7
|
+
export const errorMiddleware = (err: Error, req: Request, res: Response, next: unknown) => {
|
|
7
8
|
let error = err;
|
|
8
9
|
|
|
9
10
|
if (!(error instanceof ApiError)) {
|