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