24 lines
		
	
	
		
			748 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			748 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /** Used to match wrap detail comments. */ | ||
|  | var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Inserts wrapper `details` in a comment at the top of the `source` body. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {string} source The source to modify. | ||
|  |  * @returns {Array} details The details to insert. | ||
|  |  * @returns {string} Returns the modified source. | ||
|  |  */ | ||
|  | function insertWrapDetails(source, details) { | ||
|  |   var length = details.length; | ||
|  |   if (!length) { | ||
|  |     return source; | ||
|  |   } | ||
|  |   var lastIndex = length - 1; | ||
|  |   details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; | ||
|  |   details = details.join(length > 2 ? ', ' : ' '); | ||
|  |   return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = insertWrapDetails; |