createCurry.js 661 B

1234567891011121314151617181920212223
  1. var createWrapper = require('./createWrapper'),
  2. isIterateeCall = require('./isIterateeCall');
  3. /**
  4. * Creates a `_.curry` or `_.curryRight` function.
  5. *
  6. * @private
  7. * @param {boolean} flag The curry bit flag.
  8. * @returns {Function} Returns the new curry function.
  9. */
  10. function createCurry(flag) {
  11. function curryFunc(func, arity, guard) {
  12. if (guard && isIterateeCall(func, arity, guard)) {
  13. arity = undefined;
  14. }
  15. var result = createWrapper(func, flag, undefined, undefined, undefined, undefined, undefined, arity);
  16. result.placeholder = curryFunc.placeholder;
  17. return result;
  18. }
  19. return curryFunc;
  20. }
  21. module.exports = createCurry;