UNPKG

clown

Version:
53 lines (42 loc) 1.25 kB
var _ = require('lodash'); var log = require('./log'), params = require('./params'); var command = module.exports = function(method, signature) { var clientKeys = '_events,newListener,_conf,delimiter,wildcard,listenerTree,config,protocol,before,event,client'.split(','); return function(argv, client, cb) { params({ method: method, signature: signature }, argv, function(err, args) { if (err) return cb(err); log.verbose.call(log, 'command', 'client.%s(' + args.map(function(a) { return JSON.stringify(a); }).concat('[callback]') + ');', method ); args.push(function(err, res) { if (err) return cb(err); cb(null, res.map ? res.map(scrub) : scrub(res)); }); client[method].apply(client, args); }); }; function scrub(obj) { var clean = _.transform(obj, function(acc, v, k) { if (clientKeys.indexOf(k) === -1) { acc[k] = v; } }); return clean; }; }; command.help = function() { var argv = [].slice.call(arguments); return function(_, _, cb) { argv.forEach(function(ls) { ls.split('\n').forEach(function(l) { log.help('😄 ', l); }); }); cb(); }; };