You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					33 lines
				
				747 B
			
		
		
			
		
	
	
					33 lines
				
				747 B
			| 
								 
											3 years ago
										 
									 | 
							
								'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;
							 | 
						||
| 
								 | 
							
								};
							 |