grind-cli
Version:
CLI provider for Grind
59 lines (45 loc) • 4.58 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OutputFormatterStyle = void 0;
var _chalk = require("chalk");
function _isnil(val) { return val === null || typeof val === 'undefined'; }
const chalk = new _chalk.Instance({
enabled: true
});
class OutputFormatterStyle {
constructor(foreground = null, background = null, options = []) {
this.foreground = null;
this.background = null;
this.options = [];
this.foreground = foreground;
this.background = background;
this.options = [...options];
}
setOption(value) {
this.options.push(value);
}
apply(text) {
let style = chalk;
let count = 0;
if (!_isnil(this.foreground)) {
style = style[this.foreground];
count++;
}
if (!_isnil(this.background)) {
style = style[`bg${this.background.substring(0, 1).toUpperCase()}${this.background.substring(1)}`];
count++;
}
for (const option of this.options) {
style = style[option];
count++;
}
if (count === 0) {
return text;
}
return style(text);
}
}
exports.OutputFormatterStyle = OutputFormatterStyle;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9PdXRwdXQvT3V0cHV0Rm9ybWF0dGVyU3R5bGUuanMiXSwibmFtZXMiOlsiY2hhbGsiLCJDaGFsayIsImVuYWJsZWQiLCJPdXRwdXRGb3JtYXR0ZXJTdHlsZSIsImNvbnN0cnVjdG9yIiwiZm9yZWdyb3VuZCIsImJhY2tncm91bmQiLCJvcHRpb25zIiwic2V0T3B0aW9uIiwidmFsdWUiLCJwdXNoIiwiYXBwbHkiLCJ0ZXh0Iiwic3R5bGUiLCJjb3VudCIsInN1YnN0cmluZyIsInRvVXBwZXJDYXNlIiwib3B0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7Ozs7QUFDQSxNQUFNQSxLQUFLLEdBQUcsSUFBSUMsZUFBSixDQUFVO0FBQUVDLEVBQUFBLE9BQU8sRUFBRTtBQUFYLENBQVYsQ0FBZDs7QUFFTyxNQUFNQyxvQkFBTixDQUEyQjtBQUtqQ0MsRUFBQUEsV0FBVyxDQUFDQyxVQUFVLEdBQUcsSUFBZCxFQUFvQkMsVUFBVSxHQUFHLElBQWpDLEVBQXVDQyxPQUFPLEdBQUcsRUFBakQsRUFBcUQ7QUFBQSxTQUpoRUYsVUFJZ0UsR0FKbkQsSUFJbUQ7QUFBQSxTQUhoRUMsVUFHZ0UsR0FIbkQsSUFHbUQ7QUFBQSxTQUZoRUMsT0FFZ0UsR0FGdEQsRUFFc0Q7QUFDL0QsU0FBS0YsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLQyxVQUFMLEdBQWtCQSxVQUFsQjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxDQUFDLEdBQUdBLE9BQUosQ0FBZjtBQUNBOztBQUVEQyxFQUFBQSxTQUFTLENBQUNDLEtBQUQsRUFBUTtBQUNoQixTQUFLRixPQUFMLENBQWFHLElBQWIsQ0FBa0JELEtBQWxCO0FBQ0E7O0FBRURFLEVBQUFBLEtBQUssQ0FBQ0MsSUFBRCxFQUFPO0FBQ1gsUUFBSUMsS0FBSyxHQUFHYixLQUFaO0FBQ0EsUUFBSWMsS0FBSyxHQUFHLENBQVo7O0FBRUEsUUFBSSxRQUFDLEtBQUtULFVBQU4sQ0FBSixFQUE0QjtBQUMzQlEsTUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUMsS0FBS1IsVUFBTixDQUFiO0FBQ0FTLE1BQUFBLEtBQUs7QUFDTDs7QUFFRCxRQUFJLFFBQUMsS0FBS1IsVUFBTixDQUFKLEVBQTRCO0FBQzNCTyxNQUFBQSxLQUFLLEdBQ0pBLEtBQUssQ0FDSCxLQUFJLEtBQUtQLFVBQUwsQ0FBZ0JTLFNBQWhCLENBQTBCLENBQTFCLEVBQTZCLENBQTdCLEVBQWdDQyxXQUFoQyxFQUE4QyxHQUFFLEtBQUtWLFVBQUwsQ0FBZ0JTLFNBQWhCLENBQ3BELENBRG9ELENBRW5ELEVBSEUsQ0FETjtBQU1BRCxNQUFBQSxLQUFLO0FBQ0w7O0FBRUQsU0FBSyxNQUFNRyxNQUFYLElBQXFCLEtBQUtWLE9BQTFCLEVBQW1DO0FBQ2xDTSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0ksTUFBRCxDQUFiO0FBQ0FILE1BQUFBLEtBQUs7QUFDTDs7QUFFRCxRQUFJQSxLQUFLLEtBQUssQ0FBZCxFQUFpQjtBQUNoQixhQUFPRixJQUFQO0FBQ0E7O0FBRUQsV0FBT0MsS0FBSyxDQUFDRCxJQUFELENBQVo7QUFDQTs7QUE1Q2dDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gIEFkb3B0ZWQgZnJvbSBTeW1mb255OiBodHRwczovL2dpdGh1Yi5jb20vc3ltZm9ueS9jb25zb2xlL2Jsb2IvNDBiM2FjYS9Gb3JtYXR0ZXIvT3V0cHV0Rm9ybWF0dGVyU3R5bGUucGhwXG5cbmltcG9ydCB7IEluc3RhbmNlIGFzIENoYWxrIH0gZnJvbSAnY2hhbGsnXG5jb25zdCBjaGFsayA9IG5ldyBDaGFsayh7IGVuYWJsZWQ6IHRydWUgfSlcblxuZXhwb3J0IGNsYXNzIE91dHB1dEZvcm1hdHRlclN0eWxlIHtcblx0Zm9yZWdyb3VuZCA9IG51bGxcblx0YmFja2dyb3VuZCA9IG51bGxcblx0b3B0aW9ucyA9IFtdXG5cblx0Y29uc3RydWN0b3IoZm9yZWdyb3VuZCA9IG51bGwsIGJhY2tncm91bmQgPSBudWxsLCBvcHRpb25zID0gW10pIHtcblx0XHR0aGlzLmZvcmVncm91bmQgPSBmb3JlZ3JvdW5kXG5cdFx0dGhpcy5iYWNrZ3JvdW5kID0gYmFja2dyb3VuZFxuXHRcdHRoaXMub3B0aW9ucyA9IFsuLi5vcHRpb25zXVxuXHR9XG5cblx0c2V0T3B0aW9uKHZhbHVlKSB7XG5cdFx0dGhpcy5vcHRpb25zLnB1c2godmFsdWUpXG5cdH1cblxuXHRhcHBseSh0ZXh0KSB7XG5cdFx0bGV0IHN0eWxlID0gY2hhbGtcblx0XHRsZXQgY291bnQgPSAwXG5cblx0XHRpZiAoIXRoaXMuZm9yZWdyb3VuZC5pc05pbCkge1xuXHRcdFx0c3R5bGUgPSBzdHlsZVt0aGlzLmZvcmVncm91bmRdXG5cdFx0XHRjb3VudCsrXG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmJhY2tncm91bmQuaXNOaWwpIHtcblx0XHRcdHN0eWxlID1cblx0XHRcdFx0c3R5bGVbXG5cdFx0XHRcdFx0YGJnJHt0aGlzLmJhY2tncm91bmQuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCl9JHt0aGlzLmJhY2tncm91bmQuc3Vic3RyaW5nKFxuXHRcdFx0XHRcdFx0MSxcblx0XHRcdFx0XHQpfWBcblx0XHRcdFx0XVxuXHRcdFx0Y291bnQrK1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuXHRcdFx0c3R5bGUgPSBzdHlsZVtvcHRpb25dXG5cdFx0XHRjb3VudCsrXG5cdFx0fVxuXG5cdFx0aWYgKGNvdW50ID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gdGV4dFxuXHRcdH1cblxuXHRcdHJldHVybiBzdHlsZSh0ZXh0KVxuXHR9XG59XG4iXX0=
;