28 lines
		
	
	
		
			903 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			903 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var LEADING_STAR = /^[^\S\r\n]*\*[^\S\n\r]?/gm;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Extact comment info from a comment object
							 | 
						||
| 
								 | 
							
								 * @param {Object} comment object to process
							 | 
						||
| 
								 | 
							
								 * @return { {startingLine, endingLine, content, codeTree}= } a comment info object
							 | 
						||
| 
								 | 
							
								 *                          or undefined if the comment is not a jsdoc style comment
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								module.exports = function getJSDocComment() {
							 | 
						||
| 
								 | 
							
								  return function(comment) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var commentInfo;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // we need to check for `/**` at the start of the comment to find all the jsdoc style comments
							 | 
						||
| 
								 | 
							
								    comment.range.toString().replace(/^\/\*\*([\w\W]*)\*\/$/g, function(match, commentBody) {
							 | 
						||
| 
								 | 
							
								      commentBody = commentBody.replace(LEADING_STAR, '').trim();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      commentInfo = {
							 | 
						||
| 
								 | 
							
								        startingLine: comment.range.start.line,
							 | 
						||
| 
								 | 
							
								        endingLine: comment.range.end.line,
							 | 
						||
| 
								 | 
							
								        content: commentBody,
							 | 
						||
| 
								 | 
							
								        codeTree: comment.treeAfter
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return commentInfo;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 |