Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 32 additions & 20 deletions apps/backend/scripts/dev/module-generation-template.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const fs = require("fs");
const fs = require("fs").promises;
const path = require("path");

// Define the template for each file type
Expand Down Expand Up @@ -66,33 +66,42 @@ module.exports = { ${moduleName}Middleware };
`;

// Main function to generate files
const generateModule = (moduleName) => {
const generateModule = async (moduleName) => {
const moduleDir = path.join(__dirname, "..", "..", "modules", moduleName);

if (fs.existsSync(moduleDir)) {
try {
await fs.access(moduleDir);
console.log(`Module "${moduleName}" already exists.`);
return;
} catch (error) {
// Module directory does not exist, proceed to create it
}

// Create module directory
fs.mkdirSync(moduleDir, { recursive: true });
await fs.mkdir(moduleDir, { recursive: true });

// Create files with the respective templates
fs.writeFileSync(
path.join(moduleDir, `${moduleName}.controller.js`),
controllerTemplate(moduleName)
);
fs.writeFileSync(
path.join(moduleDir, `${moduleName}.service.js`),
serviceTemplate(moduleName)
);
fs.writeFileSync(
path.join(moduleDir, `${moduleName}.v1.routes.js`),
routeTemplate(moduleName)
);
fs.writeFileSync(
path.join(moduleDir, `${moduleName}.middleware.js`),
middlewareTemplate(moduleName)
const filesToCreate = [
{
path: path.join(moduleDir, `${moduleName}.controller.js`),
content: controllerTemplate(moduleName),
},
{
path: path.join(moduleDir, `${moduleName}.service.js`),
content: serviceTemplate(moduleName),
},
{
path: path.join(moduleDir, `${moduleName}.v1.routes.js`),
content: routeTemplate(moduleName),
},
{
path: path.join(moduleDir, `${moduleName}.middleware.js`),
content: middlewareTemplate(moduleName),
},
];

await Promise.all(
filesToCreate.map((file) => fs.writeFile(file.path, file.content))
);

console.log(`Module "${moduleName}" created successfully.`);
Expand All @@ -105,4 +114,7 @@ if (!moduleName) {
process.exit(1);
}

generateModule(moduleName);
generateModule(moduleName).catch((error) => {
console.error("Error generating module:", error);
process.exit(1);
});