_arity.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. export default function _arity(n, fn) {
  2. /* eslint-disable no-unused-vars */
  3. switch (n) {
  4. case 0:
  5. return function () {
  6. return fn.apply(this, arguments);
  7. };
  8. case 1:
  9. return function (a0) {
  10. return fn.apply(this, arguments);
  11. };
  12. case 2:
  13. return function (a0, a1) {
  14. return fn.apply(this, arguments);
  15. };
  16. case 3:
  17. return function (a0, a1, a2) {
  18. return fn.apply(this, arguments);
  19. };
  20. case 4:
  21. return function (a0, a1, a2, a3) {
  22. return fn.apply(this, arguments);
  23. };
  24. case 5:
  25. return function (a0, a1, a2, a3, a4) {
  26. return fn.apply(this, arguments);
  27. };
  28. case 6:
  29. return function (a0, a1, a2, a3, a4, a5) {
  30. return fn.apply(this, arguments);
  31. };
  32. case 7:
  33. return function (a0, a1, a2, a3, a4, a5, a6) {
  34. return fn.apply(this, arguments);
  35. };
  36. case 8:
  37. return function (a0, a1, a2, a3, a4, a5, a6, a7) {
  38. return fn.apply(this, arguments);
  39. };
  40. case 9:
  41. return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
  42. return fn.apply(this, arguments);
  43. };
  44. case 10:
  45. return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
  46. return fn.apply(this, arguments);
  47. };
  48. default:
  49. throw new Error('First argument to _arity must be a non-negative integer no greater than ten');
  50. }
  51. }