safeCb.js 497 B

123456789101112131415
  1. var isFn = require('./isFn');
  2. var isObj = require('./isObj');
  3. var isArr = require('./isArr');
  4. var optimizeCb = require('./optimizeCb');
  5. var matcher = require('./matcher');
  6. var identity = require('./identity');
  7. var property = require('./property');
  8. exports = function(val, ctx, argCount) {
  9. if (val == null) return identity;
  10. if (isFn(val)) return optimizeCb(val, ctx, argCount);
  11. if (isObj(val) && !isArr(val)) return matcher(val);
  12. return property(val);
  13. };
  14. module.exports = exports;