cli-utils
Version:
Common utils for command line applications.
88 lines (68 loc) • 1.65 kB
JavaScript
/*!
* cli-utils <https://github.com/jonschlinkert/cli-utils>
*
* Copyright (c) 2016, Jon Schlinkert.
* Licensed under the MIT License.
*/
;
// require('time-require');
// cli stuff is a perfect use case for lazy evaluation,
// and 'ansi-colors' exposes the 'lazy-cache' getter, so
// we'll use that to cache module dependencies.
var utils = require('ansi-colors');
var fn = require;
require = utils;
var cache = {};
require('error-symbol');
require('info-symbol');
require('success-symbol', 'check');
require('warning-symbol');
require('time-stamp');
require = fn;
utils.symbol = {};
define(utils.symbol, 'error', function() {
return utils.errorSymbol;
});
define(utils.symbol, 'info', function() {
return utils.infoSymbol;
});
define(utils.symbol, 'success', function() {
return utils.check;
});
define(utils.symbol, 'warning', function() {
return utils.warningSymbol;
});
define(utils, 'error', function() {
return utils.red(utils.symbol.error);
});
define(utils, 'info', function() {
return utils.cyan(utils.symbol.info);
});
define(utils, 'success', function() {
return utils.green(utils.symbol.success);
});
define(utils, 'warning', function() {
return utils.yellow(utils.symbol.warning);
});
/**
* Get a formatted timestamp.
*
* ```js
* console.log(utils.timestamp);
* ```
* @api public
*/
define(utils, 'timestamp', function() {
return '[' + utils.gray(utils.timeStamp('HH:mm:ss')) + ']';
});
function define(obj, prop, fn) {
Object.defineProperty(obj, prop, {
configurable: true,
enumerable: true,
get: fn
});
}
/**
* Expose `utils`
*/
module.exports = utils;