@tsclean/scaffold
Version:
This CLI creates an initial structure of a project based on clean architecture.
83 lines (73 loc) • 3.56 kB
JavaScript
;
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