nodejs-structure-cli 1.0.0 → 1.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.
- package/lib/generator.js +3 -2
- package/lib/modules/app-setup.js +27 -0
- package/package.json +1 -1
- package/templates/clean-architecture/js/src/interfaces/routes/api.js.ejs +4 -4
- package/templates/clean-architecture/ts/src/interfaces/routes/userRoutes.ts.ejs +4 -4
- package/templates/mvc/js/src/routes/api.js.ejs +4 -4
- package/templates/mvc/ts/src/routes/api.ts.ejs +4 -4
package/lib/generator.js
CHANGED
|
@@ -2,7 +2,7 @@ import path from 'path';
|
|
|
2
2
|
import { fileURLToPath } from 'url';
|
|
3
3
|
import { setupProjectDirectory, copyBaseStructure, copyCommonFiles } from './modules/project-setup.js';
|
|
4
4
|
import { renderPackageJson, renderDockerCompose, renderReadme, renderDockerfile, renderProfessionalConfig, setupCiCd, renderTestSample, renderEnvExample, renderPm2Config, renderAiNativeFiles } from './modules/config-files.js';
|
|
5
|
-
import { renderIndexFile, renderEnvConfig, renderErrorMiddleware, renderDynamicComponents, renderSwaggerConfig, setupViews as setupSrcViews, processAllTests, renderAuthAndUploadComponents } from './modules/app-setup.js';
|
|
5
|
+
import { renderIndexFile, renderEnvConfig, renderErrorMiddleware, renderDynamicComponents, renderSwaggerConfig, setupViews as setupSrcViews, processAllTests, renderAuthAndUploadComponents, renderApiRoutes } from './modules/app-setup.js';
|
|
6
6
|
import { setupDatabase } from './modules/database-setup.js';
|
|
7
7
|
import { setupKafka, setupViews } from './modules/kafka-setup.js';
|
|
8
8
|
import { setupCaching } from './modules/caching-setup.js';
|
|
@@ -54,8 +54,9 @@ export const generateProject = async (config) => {
|
|
|
54
54
|
// 6a. Render error middleware
|
|
55
55
|
await renderErrorMiddleware(templatePath, targetDir, config);
|
|
56
56
|
|
|
57
|
-
// 7. Render Dynamic Components (Controllers/Repos/Server)
|
|
57
|
+
// 7. Render Dynamic Components (Controllers/Repos/Server/Routes)
|
|
58
58
|
await renderDynamicComponents(templatePath, targetDir, config);
|
|
59
|
+
await renderApiRoutes(templatePath, targetDir, config);
|
|
59
60
|
|
|
60
61
|
// 8. Kafka Setup
|
|
61
62
|
await setupKafka(templatesDir, targetDir, config);
|
package/lib/modules/app-setup.js
CHANGED
|
@@ -477,3 +477,30 @@ export const renderAuthAndUploadComponents = async (templatesDir, targetDir, con
|
|
|
477
477
|
}
|
|
478
478
|
}
|
|
479
479
|
};
|
|
480
|
+
|
|
481
|
+
export const renderApiRoutes = async (templatePath, targetDir, config) => {
|
|
482
|
+
const { architecture, language } = config;
|
|
483
|
+
const ext = language === 'TypeScript' ? 'ts' : 'js';
|
|
484
|
+
const routeFileName = `api.${ext}`;
|
|
485
|
+
const routeTemplateName = `${routeFileName}.ejs`;
|
|
486
|
+
|
|
487
|
+
let routesDir = 'src/routes';
|
|
488
|
+
if (architecture === 'Clean Architecture') {
|
|
489
|
+
routesDir = 'src/interfaces/routes';
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
const templateSource = path.join(templatePath, routesDir, routeTemplateName);
|
|
493
|
+
const targetPath = path.join(targetDir, routesDir, routeFileName);
|
|
494
|
+
|
|
495
|
+
if (await fs.pathExists(templateSource)) {
|
|
496
|
+
const template = await fs.readFile(templateSource, 'utf-8');
|
|
497
|
+
const content = ejs.render(template, { ...config });
|
|
498
|
+
await fs.writeFile(targetPath, content);
|
|
499
|
+
|
|
500
|
+
// Remove the raw ejs copy in target
|
|
501
|
+
const targetEjsCopy = path.join(targetDir, routesDir, routeTemplateName);
|
|
502
|
+
if (await fs.pathExists(targetEjsCopy)) {
|
|
503
|
+
await fs.remove(targetEjsCopy);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
};
|
package/package.json
CHANGED
|
@@ -9,9 +9,9 @@ const userController = new UserController();
|
|
|
9
9
|
|
|
10
10
|
<% if (auth && auth !== 'None') { %>router.use('/auth', authRoutes);<% } %>
|
|
11
11
|
|
|
12
|
-
router.get('/users', (req, res, next) => userController.getUsers(req, res, next));
|
|
13
|
-
router.post('/users', <% if (includeMulter) { %>upload.single('image'), <% } %>(req, res, next) => userController.createUser(req, res, next));
|
|
14
|
-
router.patch('/users/:id', <% if (includeMulter) { %>upload.single('image'), <% } %>(req, res, next) => userController.updateUser(req, res, next));
|
|
15
|
-
router.delete('/users/:id', (req, res, next) => userController.deleteUser(req, res, next));
|
|
12
|
+
router.get('/users', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>(req, res, next) => userController.getUsers(req, res, next));
|
|
13
|
+
router.post('/users', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>(req, res, next) => userController.createUser(req, res, next));
|
|
14
|
+
router.patch('/users/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>(req, res, next) => userController.updateUser(req, res, next));
|
|
15
|
+
router.delete('/users/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>(req, res, next) => userController.deleteUser(req, res, next));
|
|
16
16
|
|
|
17
17
|
module.exports = router;
|
|
@@ -9,10 +9,10 @@ const userController = new UserController();
|
|
|
9
9
|
|
|
10
10
|
<% if (auth && auth !== 'None') { %>router.use('/auth', authRoutes);<% } %>
|
|
11
11
|
|
|
12
|
-
router.get('/', (req: Request, res: Response, next: NextFunction) => userController.getUsers(req, res, next));
|
|
13
|
-
router.post('/', <% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.createUser(req, res, next));
|
|
14
|
-
router.patch('/:id', <% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.updateUser(req, res, next));
|
|
15
|
-
router.delete('/:id', (req: Request, res: Response, next: NextFunction) => userController.deleteUser(req, res, next));
|
|
12
|
+
router.get('/', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.getUsers(req, res, next));
|
|
13
|
+
router.post('/', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.createUser(req, res, next));
|
|
14
|
+
router.patch('/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.updateUser(req, res, next));
|
|
15
|
+
router.delete('/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.deleteUser(req, res, next));
|
|
16
16
|
|
|
17
17
|
export default router;
|
|
18
18
|
|
|
@@ -7,9 +7,9 @@ const userController = require('../controllers/userController');
|
|
|
7
7
|
|
|
8
8
|
<% if (auth && auth !== 'None') { %>router.use('/auth', authRoutes);<% } %>
|
|
9
9
|
|
|
10
|
-
router.get('/users', userController.getUsers);
|
|
11
|
-
router.post('/users', <% if (includeMulter) { %>upload.single('image'), <% } %>userController.createUser);
|
|
12
|
-
router.patch('/users/:id', <% if (includeMulter) { %>upload.single('image'), <% } %>userController.updateUser);
|
|
13
|
-
router.delete('/users/:id', userController.deleteUser);
|
|
10
|
+
router.get('/users', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>userController.getUsers);
|
|
11
|
+
router.post('/users', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>userController.createUser);
|
|
12
|
+
router.patch('/users/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>userController.updateUser);
|
|
13
|
+
router.delete('/users/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>userController.deleteUser);
|
|
14
14
|
|
|
15
15
|
module.exports = router;
|
|
@@ -9,9 +9,9 @@ const userController = new UserController();
|
|
|
9
9
|
|
|
10
10
|
<% if (auth && auth !== 'None') { %>router.use('/auth', authRoutes);<% } %>
|
|
11
11
|
|
|
12
|
-
router.get('/users', (req: Request, res: Response, next: NextFunction) => userController.getUsers(req, res, next));
|
|
13
|
-
router.post('/users', <% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.createUser(req, res, next));
|
|
14
|
-
router.patch('/users/:id', <% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.updateUser(req, res, next));
|
|
15
|
-
router.delete('/users/:id', (req: Request, res: Response, next: NextFunction) => userController.deleteUser(req, res, next));
|
|
12
|
+
router.get('/users', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.getUsers(req, res, next));
|
|
13
|
+
router.post('/users', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.createUser(req, res, next));
|
|
14
|
+
router.patch('/users/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %><% if (includeMulter) { %>upload.single('image'), <% } %>(req: Request, res: Response, next: NextFunction) => userController.updateUser(req, res, next));
|
|
15
|
+
router.delete('/users/:id', <% if (auth && auth !== 'None') { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.deleteUser(req, res, next));
|
|
16
16
|
|
|
17
17
|
export default router;
|