fix: merge the decorator data with the symbol
This commit is contained in:
parent
053ecc2b10
commit
ec72c8007e
|
@ -19,57 +19,8 @@ var titleCase = function(text) {
|
|||
*
|
||||
*/
|
||||
|
||||
module.exports = function addJadeDataDocsProcessor() {
|
||||
return {
|
||||
$runAfter: ['adding-extra-docs'],
|
||||
$runBefore: ['extra-docs-added'],
|
||||
$process: function(docs) {
|
||||
var extraDocs = [];
|
||||
var modules = [];
|
||||
var data = {};
|
||||
|
||||
var appDataDoc = {
|
||||
id: 'api-list-data',
|
||||
aliases: ['api-list-data'],
|
||||
docType: 'api-list-data',
|
||||
data: data
|
||||
};
|
||||
extraDocs.push(appDataDoc);
|
||||
|
||||
// create additional doc for auditing
|
||||
var appDataAuditDoc = {
|
||||
id: 'api-list-audit',
|
||||
aliases: ['api-list-audit'],
|
||||
docType: 'api-list-audit',
|
||||
data: data
|
||||
};
|
||||
extraDocs.push(appDataAuditDoc);
|
||||
|
||||
|
||||
/*
|
||||
* Create Data for Modules
|
||||
*
|
||||
* Modules must be public and have content
|
||||
*/
|
||||
|
||||
_.forEach(docs, function(doc) {
|
||||
if (doc.docType === 'module' && !doc.internal && doc.exports.length) {
|
||||
modules.push(doc);
|
||||
|
||||
// GET DATA FOR INDEX PAGE OF MODULE SECTION
|
||||
var indexPageInfo = [{
|
||||
name: 'index',
|
||||
title: _.map(path.basename(doc.fileInfo.baseName).split('_'), function(part) {
|
||||
return titleCase(part);
|
||||
}).join(' '),
|
||||
intro: doc.description.replace('"', '\"').replace(/\s*(\r?\n|\r)\s*/g," "),
|
||||
docType: 'module'
|
||||
}];
|
||||
|
||||
// GET DATA FOR EACH PAGE (CLASS, VARS, FUNCTIONS)
|
||||
var modulePageInfo = _(doc.exports)
|
||||
.map(function(exportDoc) {
|
||||
|
||||
function processExportDoc(exportDoc) {
|
||||
// STABILITY STATUS
|
||||
// Supported tags:
|
||||
// @stable
|
||||
|
@ -124,25 +75,110 @@ module.exports = function addJadeDataDocsProcessor() {
|
|||
exportDoc.showSecurityNotes = true;
|
||||
}
|
||||
|
||||
return {stability: stability, howToUse: howToUse, whatItDoes: whatItDoes, security: security};
|
||||
}
|
||||
|
||||
module.exports = function addJadeDataDocsProcessor() {
|
||||
return {
|
||||
$runAfter: ['adding-extra-docs'],
|
||||
$runBefore: ['extra-docs-added'],
|
||||
$process: function(docs) {
|
||||
var extraDocs = [];
|
||||
var modules = [];
|
||||
var data = {};
|
||||
|
||||
var appDataDoc = {
|
||||
id: 'api-list-data',
|
||||
aliases: ['api-list-data'],
|
||||
docType: 'api-list-data',
|
||||
data: data
|
||||
};
|
||||
extraDocs.push(appDataDoc);
|
||||
|
||||
// create additional doc for auditing
|
||||
var appDataAuditDoc = {
|
||||
id: 'api-list-audit',
|
||||
aliases: ['api-list-audit'],
|
||||
docType: 'api-list-audit',
|
||||
data: data
|
||||
};
|
||||
extraDocs.push(appDataAuditDoc);
|
||||
|
||||
|
||||
/*
|
||||
* Create Data for Modules
|
||||
*
|
||||
* Modules must be public and have content
|
||||
*/
|
||||
|
||||
_.forEach(docs, function(doc) {
|
||||
if (doc.docType === 'module' && !doc.internal && doc.exports.length) {
|
||||
modules.push(doc);
|
||||
|
||||
// GET DATA FOR INDEX PAGE OF MODULE SECTION
|
||||
var indexPageInfo = [{
|
||||
name: 'index',
|
||||
title: _.map(path.basename(doc.fileInfo.baseName).split('_'), function(part) {
|
||||
return titleCase(part);
|
||||
}).join(' '),
|
||||
intro: doc.description.replace('"', '\"').replace(/\s*(\r?\n|\r)\s*/g," "),
|
||||
docType: 'module'
|
||||
}];
|
||||
|
||||
var decorators = {};
|
||||
|
||||
// GET DATA FOR EACH PAGE (CLASS, VARS, FUNCTIONS)
|
||||
var modulePageInfo = _(doc.exports)
|
||||
.map(function(exportDoc) {
|
||||
// if it ends with "Decorator", we store it in the map
|
||||
// to later merge with the token
|
||||
if (exportDoc.name.endsWith("Decorator")) {
|
||||
var p = processExportDoc(exportDoc.callMember);
|
||||
decorators[exportDoc.name] = {
|
||||
stability : p.stability,
|
||||
howToUse : p.howToUse,
|
||||
whatItDoes : p.whatItDoes,
|
||||
security : p.security,
|
||||
description : exportDoc.callMember.description,
|
||||
docType: 'decorator'
|
||||
};
|
||||
return null;
|
||||
|
||||
} else {
|
||||
var p = processExportDoc(exportDoc);
|
||||
|
||||
// Data inserted into jade-data.template.html
|
||||
var dataDoc = {
|
||||
name: exportDoc.name + '-' + exportDoc.docType,
|
||||
title: exportDoc.name,
|
||||
docType: exportDoc.docType,
|
||||
exportDoc: exportDoc,
|
||||
stability: stability,
|
||||
howToUse: howToUse,
|
||||
whatItDoes: whatItDoes,
|
||||
security: security
|
||||
stability: p.stability,
|
||||
howToUse: p.howToUse,
|
||||
whatItDoes: p.whatItDoes,
|
||||
security: p.security
|
||||
};
|
||||
|
||||
if (exportDoc.symbolTypeName) dataDoc.varType = titleCase(exportDoc.symbolTypeName);
|
||||
if (exportDoc.originalModule) dataDoc.originalModule = exportDoc.originalModule;
|
||||
|
||||
return dataDoc;
|
||||
}
|
||||
})
|
||||
.filter(function(s) { return !!s; }) // filter out all null values
|
||||
.sortBy('name')
|
||||
.value();
|
||||
|
||||
// find a matching symbol for every decorator item
|
||||
// and merge the data
|
||||
_.forEach(Object.keys(decorators), function(name) {
|
||||
var varToken = name.split("Decorator")[0];
|
||||
var c = modulePageInfo.filter(function(n) { return n.exportDoc.name === varToken; });
|
||||
|
||||
c[0].docType = decorators[name].docType;
|
||||
Object.assign(c[0].exportDoc, decorators[name]);
|
||||
});
|
||||
|
||||
doc.childPages = modulePageInfo;
|
||||
|
||||
// ADD TO APP DATA DOC
|
||||
|
@ -162,7 +198,6 @@ module.exports = function addJadeDataDocsProcessor() {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
return docs.concat(extraDocs);
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue