1234567891011121314151617181920212223242526272829303132 |
- 'use strict';
- var assert = require('assert');
- /**
- * A empty function.
- *
- * @return {Function}
- * @public
- */
- exports.noop = function noop() {};
- /**
- * Get a function parameter's names.
- *
- * @param {Function} func
- * @param {Boolean} [useCache], default is true
- * @return {Array} names
- */
- exports.getParamNames = function getParamNames(func, cache) {
- var type = typeof func;
- assert(type === 'function', 'The "func" must be a function. Received type "' + type + '"');
- cache = cache !== false;
- if (cache && func.__cache_names) {
- return func.__cache_names;
- }
- var str = func.toString();
- var names = str.slice(str.indexOf('(') + 1, str.indexOf(')')).match(/([^\s,]+)/g) || [];
- func.__cache_names = names;
- return names;
- };
|