ninjs-lodash
Version:
lodash wrapper + utils
40 lines (32 loc) • 1.1 kB
JavaScript
/**
* Debug Output
*/
const _ = require('lodash')
const jpretty = require('./libs/jpretty')
const PADDING = 12
exports = module.exports = { log: log, logcb: logcb, jslog: jslog, jlog: jlog, olog: olog }
_.mixin(exports)
// standard console log
function log() { return console.log.apply(console, _.toArray(arguments)) }
// logs err || result from async callback
function logcb(err, result) { return err ? log(err) : (_.isObject(result) || _.isFunction(result) ? jslog(result) : log(result)) }
// logs pretty
function jslog(val) { return log(jpretty(val)) }
// logs inspected object
function jlog(val) {
let args = _.drop(_.toArray(arguments))
args.unshift(require('util').inspect(val, false, null))
return log.apply(null, args)
}
// logs object k/v pairs
function olog(obj) {
if(!_.isPlainObject(obj)) return
let str = ''
_.forIn(obj, (v, k) => {
let key = _.padEnd(k, PADDING)
let val = v ? (_.isPlainObject(v) ? `\n${jpretty(v)}` : `: ${v}`) : ''
str = str + `\n${key}${val}`
})
return _.log(str)
}