hexo/node_modules/utility/function.js

33 lines
779 B
JavaScript

'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;
};