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.
		
		
		
		
		
			
		
			
				
					23 lines
				
				605 B
			
		
		
			
		
	
	
					23 lines
				
				605 B
			| 
											3 years ago
										 | 'use strict' | ||
|  | 
 | ||
|  | const fpStackTracePattern = /at\s{1}(?:.*\.)?plugin\s{1}.*\n\s*(.*)/ | ||
|  | const fileNamePattern = /(\w*(\.\w*)*)\..*/ | ||
|  | 
 | ||
|  | module.exports = function getPluginName (fn) { | ||
|  |   if (fn.name.length > 0) return fn.name | ||
|  | 
 | ||
|  |   try { | ||
|  |     throw new Error('anonymous function') | ||
|  |   } catch (e) { | ||
|  |     return extractPluginName(e.stack) | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | function extractPluginName (stack) { | ||
|  |   const m = stack.match(fpStackTracePattern) | ||
|  | 
 | ||
|  |   // get last section of path and match for filename
 | ||
|  |   return m ? m[1].split(/[/\\]/).slice(-1)[0].match(fileNamePattern)[1] : 'anonymous' | ||
|  | } | ||
|  | module.exports.extractPluginName = extractPluginName |