chore(doc-gen): make the module of the export's original declaration available
This commit is contained in:
parent
19274e744d
commit
dad40751d4
|
@ -51,12 +51,14 @@ module.exports = function addJadeDataDocsProcessor() {
|
|||
// GET DATA FOR EACH PAGE (CLASS, VARS, FUNCTIONS)
|
||||
var modulePageInfo = _(doc.exports)
|
||||
.map(function(exportDoc) {
|
||||
return {
|
||||
var dataDoc = {
|
||||
name: exportDoc.name + '-' + exportDoc.docType,
|
||||
title: exportDoc.name,
|
||||
docType: exportDoc.docType,
|
||||
varType: exportDoc.symbolTypeName && titleCase(exportDoc.symbolTypeName)
|
||||
docType: exportDoc.docType
|
||||
};
|
||||
if (exportDoc.symbolTypeName) dataDoc.varType = titleCase(exportDoc.symbolTypeName);
|
||||
if (exportDoc.originalModule) dataDoc.originalModule = exportDoc.originalModule;
|
||||
return dataDoc;
|
||||
})
|
||||
.sortBy('name')
|
||||
.value();
|
||||
|
|
|
@ -15,7 +15,9 @@ describe('addJadeDataDocsProcessor', function() {
|
|||
{
|
||||
docType: 'module',
|
||||
id: 'someModule',
|
||||
exports: [{ name: 'someObj', docType: 'var', symbolTypeName: 'MyClass'}],
|
||||
exports: [
|
||||
{ name: 'someObj', docType: 'var', symbolTypeName: 'MyClass', originalModule: 'some/private/module' }
|
||||
],
|
||||
fileInfo: { baseName: 'x_y' },
|
||||
description: 'some description\nsecond line'
|
||||
}
|
||||
|
@ -28,8 +30,8 @@ describe('addJadeDataDocsProcessor', function() {
|
|||
docType : 'jade-data',
|
||||
originalDoc : docs[0],
|
||||
data : [
|
||||
{ name : 'index', title : 'X Y', intro : 'some description second line' },
|
||||
{ name : 'someObj-var', title : 'someObj', varType : 'MyClass', docType: 'var' }
|
||||
{ name : 'index', title : 'X Y', intro : 'some description second line', docType : 'module' },
|
||||
{ name : 'someObj-var', title : 'someObj', varType : 'MyClass', docType: 'var', originalModule: 'some/private/module' }
|
||||
] });
|
||||
});
|
||||
|
||||
|
@ -52,12 +54,12 @@ describe('addJadeDataDocsProcessor', function() {
|
|||
docs = processor.$process(docs);
|
||||
|
||||
expect(docs[1].data).toEqual([
|
||||
{ name : 'index', title : 'X Y', intro : 'some description second line' },
|
||||
{ name: 'Alpha-class', title: 'Alpha', varType : undefined, docType: 'class' },
|
||||
{ name: 'Beta-class', title: 'Beta', varType : undefined, docType: 'class' },
|
||||
{ name: 'Gamma-class', title: 'Gamma', varType : undefined, docType: 'class' },
|
||||
{ name: 'Mu-class', title: 'Mu', varType : undefined, docType: 'class' },
|
||||
{ name: 'Nu-class', title: 'Nu', varType : undefined, docType: 'class' }
|
||||
{ name : 'index', title : 'X Y', intro : 'some description second line', docType : 'module' },
|
||||
{ name: 'Alpha-class', title: 'Alpha', docType: 'class' },
|
||||
{ name: 'Beta-class', title: 'Beta', docType: 'class' },
|
||||
{ name: 'Gamma-class', title: 'Gamma', docType: 'class' },
|
||||
{ name: 'Mu-class', title: 'Mu', docType: 'class' },
|
||||
{ name: 'Nu-class', title: 'Nu', docType: 'class' }
|
||||
]);
|
||||
|
||||
});
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
{%- if item.varType %}
|
||||
"varType" : "{$ item.varType $}",
|
||||
{%- endif %}
|
||||
{%- if item.originalModule %}
|
||||
"originalModule" : "{$ item.originalModule $}",
|
||||
{%- endif %}
|
||||
"docType": "{$ item.docType $}"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
{% endfor -%}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
export var x = 10;
|
|
@ -0,0 +1 @@
|
|||
export { x as y} from './privateModule';
|
|
@ -223,6 +223,11 @@ module.exports = function readTypeScriptModules(tsParser, modules, getFileInfo,
|
|||
if (exportSymbol.flags & ts.SymbolFlags.TypeAlias) {
|
||||
exportDoc.typeDefinition = typeDefinition;
|
||||
}
|
||||
|
||||
// Compute the original module name from the relative file path
|
||||
exportDoc.originalModule = exportDoc.fileInfo.relativePath
|
||||
.replace(new RegExp('\.' + exportDoc.fileInfo.extension + '$'), '');
|
||||
|
||||
return exportDoc;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,18 @@ describe('readTypeScriptModules', function() {
|
|||
});
|
||||
|
||||
|
||||
describe('exportDocs', function() {
|
||||
it('should provide the original module if the export is re-exported', function() {
|
||||
processor.sourceFiles = [ 'publicModule.ts' ];
|
||||
var docs = [];
|
||||
processor.$process(docs);
|
||||
|
||||
var exportedDoc = docs[1];
|
||||
expect(exportedDoc.originalModule).toEqual('privateModule');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('ignoreExportsMatching', function() {
|
||||
it('should ignore exports that match items in the `ignoreExportsMatching` property', function() {
|
||||
processor.sourceFiles = [ 'ignoreExportsMatching.ts'];
|
||||
|
|
Loading…
Reference in New Issue