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