fnParams.js 696 B

1234567891011121314151617181920212223242526
  1. var toSrc = require('./toSrc');
  2. var stripCmt = require('./stripCmt');
  3. var startWith = require('./startWith');
  4. var isStr = require('./isStr');
  5. exports = function(fn) {
  6. var fnStr = stripCmt(isStr(fn) ? fn : toSrc(fn));
  7. var open;
  8. var close;
  9. if (
  10. !startWith(fnStr, 'async') &&
  11. !startWith(fnStr, 'function') &&
  12. !startWith(fnStr, '(')
  13. ) {
  14. open = 0;
  15. close = fnStr.indexOf('=>');
  16. } else {
  17. open = fnStr.indexOf('(') + 1;
  18. close = fnStr.indexOf(')');
  19. }
  20. var ret = fnStr.slice(open, close);
  21. ret = ret.match(regArgNames);
  22. return ret === null ? [] : ret;
  23. };
  24. var regArgNames = /[^\s,]+/g;
  25. module.exports = exports;