43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var _ = require('lodash'); | ||
|  | 
 | ||
|  | module.exports = function processClassDocs(log, getJSDocComment) { | ||
|  | 
 | ||
|  |   return { | ||
|  |     $runAfter: ['processModuleDocs'], | ||
|  |     $runBefore: ['parsing-tags', 'generateDocsFromComments'], | ||
|  |     $process: function(docs) { | ||
|  |       var memberDocs = []; | ||
|  |       _.forEach(docs, function(classDoc) { | ||
|  |         if ( classDoc.docType === 'class' ) { | ||
|  | 
 | ||
|  |           classDoc.members = []; | ||
|  | 
 | ||
|  |           // Create a new doc for each member of the class
 | ||
|  |           _.forEach(classDoc.elements, function(memberDoc) { | ||
|  | 
 | ||
|  |             classDoc.members.push(memberDoc); | ||
|  |             memberDocs.push(memberDoc); | ||
|  | 
 | ||
|  |             memberDoc.docType = 'member'; | ||
|  |             memberDoc.classDoc = classDoc; | ||
|  |             memberDoc.name = memberDoc.name.literalToken.value; | ||
|  | 
 | ||
|  |             if (memberDoc.commentBefore ) { | ||
|  |               // If this export has a comment, remove it from the list of
 | ||
|  |               // comments collected in the module
 | ||
|  |               var index = classDoc.moduleDoc.comments.indexOf(memberDoc.commentBefore); | ||
|  |               if ( index !== -1 ) { | ||
|  |                 classDoc.moduleDoc.comments.splice(index, 1); | ||
|  |               } | ||
|  | 
 | ||
|  |               _.assign(memberDoc, getJSDocComment(memberDoc.commentBefore)); | ||
|  |             } | ||
|  |           }); | ||
|  |         } | ||
|  |       }); | ||
|  | 
 | ||
|  |       return docs.concat(memberDocs); | ||
|  |     } | ||
|  |   }; | ||
|  | }; |