UNPKG

@hotglue/cli

Version:
92 lines (73 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cl = cl; exports.default = void 0; exports.pp = pp; exports.pr = pr; exports.printJSON = void 0; exports.setDefault = setDefault; exports.setTheme = setTheme; exports.themed = void 0; var _util = require("util"); var _chalk = _interopRequireDefault(require("chalk")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const defaultTheme = { primary: str => _chalk.default.whiteBright(str), secondary: str => _chalk.default.white(str), info: str => _chalk.default.green(str), warn: str => _chalk.default.yellow(str), error: str => _chalk.default.redBright(str), success: str => _chalk.default.greenBright(str) }; let _currentTheme = defaultTheme; let _defaultColor = 'primary'; function setTheme(theme) { _currentTheme = { ...defaultTheme, ...theme }; return funcs; } function print(str) { process.stdout.write(str); } // maybe rename themed to color() const themed = (content, color = _defaultColor) => { if (!content) return ''; if (typeof content === 'string') return _currentTheme[color] ? _currentTheme[color](content) : _currentTheme[_defaultColor](content); // apply limits on returned string from inspected object const objString = (0, _util.inspect)(content, { colors: true }); return _currentTheme[color] ? _currentTheme[color](objString) : objString; }; // console.log passthrough with default coloring exports.themed = themed; function cl(...contentArgs) { console.log(...contentArgs); return funcs; } function pr(content, color) { print(themed(content, color)); print('\n'); return funcs; } function pp(content, color) { print(themed(content, color)); return funcs; } function setDefault(color = 'primary') { if (_currentTheme[color]) _defaultColor = color; return funcs; } const funcs = { cl, pr, pp, setTheme, setDefault }; const printJSON = data => { console.log(JSON.stringify(data)); }; exports.printJSON = printJSON; var _default = funcs; exports.default = _default;