log-events
Version:
Create custom, chainable logging methods that emit log events when called.
61 lines (48 loc) • 1.19 kB
JavaScript
;
var utils = require('lazy-cache')(require);
var fn = require;
require = utils; // eslint-disable-line no-native-reassign
/**
* Lazily required module dependencies
*/
require('define-property', 'define');
require('extend-shallow', 'extend');
require('get-value', 'get');
require('set-value', 'set');
require('union-value', 'union');
require('use');
require = fn; // eslint-disable-line no-native-reassign
/**
* Cast `val` to an array
*
* @param {String|Array} `val`
* @return {Array}
*/
utils.arrayify = function(val) {
return val ? (Array.isArray(val) ? val : [val]) : [];
};
utils.last = function(arr) {
if (Array.isArray(arr)) {
return arr[arr.length - 1];
}
};
utils.isLast = function(arr, val) {
return utils.last(arr) === val;
};
utils.hasType = function(types, key) {
return types.indexOf(key) !== -1;
};
utils.assertType = function(types, keys) {
keys.forEach(function(key) {
if (!utils.hasType(types, key)) {
throw new Error('"type" must be one of [' + types.join(', ') + '] but got "' + key + '"');
}
});
};
utils.identity = function(val) {
return val;
};
/**
* Expose `utils` modules
*/
module.exports = utils;