chore(doc-gen): capture docs for modules from comments Closes #1258 docs(*): add module description jsdoc tags docs(*): add @public tag to public modules chore(doc-gen): fix overview-dump template The template was referencing an invalid property chore(doc-gen): use `@exportedAs` and `@public` rather than `@publicModule` This commit refactors how we describe components that are re-exported in another module. For example the "public" modules like `angular/angular` and `angular/annotations` are public but they only re-export components from "private" modules. Previously, you must apply the `@publicModule` tag to a component that was to be re-exported. Applying this tag caused the destination module to become public. Now, you specify that a module is public by applying the `@public` tag and then you can "re-export" components to other modules by applying the `@exportedAs` giving the name of the module from which the component will be re-exported. tag. This tag can be used multiple times on a single component, allowing the component to be exported on multiple modules. docs(*): rename `@publicModule` to `@exportedAs` The `@publicModule` dgeni tag has been replaced by the `@exportedAs` dgeni tag on components that are to be re-exported on another module. Closes #1290
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var _ = require('lodash');
 | 
						|
 | 
						|
module.exports = function captureModuleExports(log, ExportTreeVisitor, getJSDocComment) {
 | 
						|
 | 
						|
  return {
 | 
						|
    $runAfter: ['files-read'],
 | 
						|
    $runBefore: ['parsing-tags'],
 | 
						|
    $process: function(docs) {
 | 
						|
      var extraDocs = [];
 | 
						|
      _.forEach(docs, function(doc) {
 | 
						|
        if ( doc.docType === 'module' ) {
 | 
						|
 | 
						|
          log.debug('processing', doc.moduleTree.moduleName);
 | 
						|
 | 
						|
          doc.exports = [];
 | 
						|
 | 
						|
          if ( doc.moduleTree.visit ) {
 | 
						|
            var visitor = new ExportTreeVisitor();
 | 
						|
            visitor.visit(doc.moduleTree);
 | 
						|
 | 
						|
            _.forEach(visitor.exports, function(exportDoc) {
 | 
						|
 | 
						|
              doc.exports.push(exportDoc);
 | 
						|
              extraDocs.push(exportDoc);
 | 
						|
              exportDoc.moduleDoc = doc;
 | 
						|
 | 
						|
              if (exportDoc.comment) {
 | 
						|
                // If this export has a comment, remove it from the list of
 | 
						|
                // comments collected in the module
 | 
						|
                var index = doc.comments.indexOf(exportDoc.comment);
 | 
						|
                if ( index !== -1 ) {
 | 
						|
                  doc.comments.splice(index, 1);
 | 
						|
                }
 | 
						|
 | 
						|
                _.assign(exportDoc, getJSDocComment(exportDoc.comment));
 | 
						|
              }
 | 
						|
 | 
						|
            });
 | 
						|
          }
 | 
						|
        }
 | 
						|
      });
 | 
						|
 | 
						|
      return docs.concat(extraDocs);
 | 
						|
    }
 | 
						|
  };
 | 
						|
}; |