UNPKG

@tsclean/scaffold

Version:

This CLI creates an initial structure of a project based on clean architecture.

83 lines (73 loc) 3.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeCommand = exports.errorMessage = exports.banner = void 0; exports.structureInitialProject = structureInitialProject; const figlet_1 = __importDefault(require("figlet")); const messages_1 = require("./messages"); const child_process_1 = require("child_process"); const chalk_1 = __importDefault(require("chalk")); const emojis_1 = require("./emojis"); const banner = () => { console.log(""); figlet_1.default.text('Clean Scaffold.', { font: 'ANSI Shadow', whitespaceBreak: true }, (err, data) => { if (err) return; console.log(data); }); }; exports.banner = banner; const errorMessage = (error, type) => { console.log(messages_1.MESSAGES.ERROR_HANDLER(`Error during ${type} creation.`)); console.error(error); process.exit(1); }; exports.errorMessage = errorMessage; const executeCommand = (command) => { return new Promise((resolve, reject) => { (0, child_process_1.exec)(command, (error, stdout, stderr) => { if (stdout) return resolve(stdout); if (stderr) return reject(stderr); if (error) return reject(error); resolve(""); }); }); }; exports.executeCommand = executeCommand; function structureInitialProject(name) { console.log(` ${emojis_1.EMOJIS.APPLICATION} ${chalk_1.default.blue("Layer APPLICATION")} ${chalk_1.default.green("CREATE")} ${name}/src/application/app.ts ${chalk_1.default.green("CREATE")} ${name}/src/application/config/environment.ts ${emojis_1.EMOJIS.ROCKET} ${chalk_1.default.cyan("Layer DEPLOYMENT")} ${chalk_1.default.green("CREATE")} ${name}/src/deployment/Dockerfile ${emojis_1.EMOJIS.ENTITIES} ${chalk_1.default.yellow("Layer ENTITIES - DOMAIN")} ${chalk_1.default.green("CREATE")} ${name}/src/domain/entities ${emojis_1.EMOJIS.CASES} ${chalk_1.default.red("Layer USE CASES - DOMAIN")} ${chalk_1.default.green("CREATE")} ${name}/src/domain/use-cases/impl ${emojis_1.EMOJIS.INFRA} ${chalk_1.default.greenBright("Layer INFRASTRUCTURE")} ${chalk_1.default.green("CREATE")} ${name}/src/infrastructure/driven-adapters/index.ts ${chalk_1.default.green("CREATE")} ${name}/src/infrastructure/driven-adapters/adapters/index.ts ${chalk_1.default.green("CREATE")} ${name}/src/infrastructure/driven-adapters/providers/index.ts ${chalk_1.default.green("CREATE")} ${name}/src/infrastructure/entry-points/index.ts ${chalk_1.default.green("CREATE")} ${name}/src/infrastructure/entry-points/api/index.ts ${chalk_1.default.green("CREATE")} ${name}/.dockerignore ${chalk_1.default.green("CREATE")} ${name}/.env ${chalk_1.default.green("CREATE")} ${name}/.env.example ${chalk_1.default.green("CREATE")} ${name}/.gitignore ${chalk_1.default.green("CREATE")} ${name}/README.md ${chalk_1.default.green("CREATE")} ${name}/docker-compose.yml ${chalk_1.default.green("CREATE")} ${name}/package.json ${chalk_1.default.green("CREATE")} ${name}/tsconfig.build.json ${chalk_1.default.green("CREATE")} ${name}/tsconfig.json ${chalk_1.default.green("CREATE")} ${name}/src/index.ts ${chalk_1.default.green("CREATE")} ${name}/tests/domain ${chalk_1.default.green("CREATE")} ${name}/tests/infrastructure `); } //# sourceMappingURL=helpers.js.map