@mbc-cqrs-serverless/cli
Version:
a CLI to get started with MBC CQRS serverless framework
55 lines (54 loc) • 1.93 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = void 0;
const chalk_1 = __importDefault(require("chalk"));
const MAX_PREFIX_LENGTH = 8;
const badge = (text, bgColor, textColor = chalk_1.default.black) => {
const wrappedText = ` ${text} `;
const repeat = Math.max(0, MAX_PREFIX_LENGTH - wrappedText.length);
return ' '.repeat(repeat) + bgColor(textColor(wrappedText));
};
const textIndent = (text, indentFirst = true, indent = MAX_PREFIX_LENGTH + 2) => {
const parts = Array.isArray(text) ? text : [text];
return parts
.map((part, i) => {
if (i === 0 && !indentFirst) {
return part;
}
return ' '.repeat(indent) + part;
})
.join('\n');
};
exports.logger = {
log(message) {
console.log(textIndent(message));
},
title(title, message) {
const prefix = badge(title, chalk_1.default.bgBlueBright);
console.log(`\n${prefix} ${message}`);
},
info(message) {
console.log(`${' '.repeat(7)}${chalk_1.default.cyan('●')} ${message}`);
},
success(message) {
console.log(`\n${' '.repeat(7)}${chalk_1.default.green('✓')} ${chalk_1.default.green(message)}`);
},
fatal(message) {
const prefix = badge('Error', chalk_1.default.bgRed);
if (message) {
console.error(`\n${prefix} ${textIndent(message, false)}\n`);
}
process.exit(1);
},
error(message) {
const prefix = badge('Error', chalk_1.default.bgRed);
console.error(`\n${prefix} ${textIndent(message, false)}\n`);
},
warn(message) {
const prefix = badge('Warn', chalk_1.default.bgYellow);
console.warn(`\n${prefix} ${textIndent(message, false)}\n`);
},
};