Skip to content

Commit f503c1e

Browse files
petebacondarwinmhevery
authored andcommitted
chore(doc-gen): add new "public" docs configuration
1 parent ede7690 commit f503c1e

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

docs/public-docs-package/index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
var Package = require('dgeni').Package;
2+
var basePackage = require('../dgeni-package');
3+
4+
5+
module.exports = new Package('angular-public', [basePackage])
6+
7+
.processor(require('./processors/filterPublicDocs'))
8+
9+
.config(function(parseTagsProcessor) {
10+
parseTagsProcessor.tagDefinitions.push({ name: 'publicModule' });
11+
})
12+
13+
// Configure file writing
14+
.config(function(writeFilesProcessor) {
15+
writeFilesProcessor.outputFolder = 'dist/public_docs';
16+
});
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
var _ = require('lodash');
2+
3+
module.exports = function filterPublicDocs(modules) {
4+
return {
5+
$runAfter: ['tags-parsed'],
6+
$runBefore: ['computing-ids'],
7+
$process: function(docs) {
8+
9+
//console.log('filterPublicDocs', Object.keys(modules));
10+
11+
12+
docs = _.filter(docs, function(doc) {
13+
if (doc.docType !== 'class') return true;
14+
if (!doc.publicModule) return false;
15+
16+
//console.log('CLASS:', doc.name, doc.moduleDoc.id);
17+
updateModule(doc);
18+
19+
return true;
20+
});
21+
22+
docs = _.filter(docs, function(doc) {
23+
return doc.docType !== 'module' || doc.isPublic;
24+
});
25+
return docs;
26+
}
27+
};
28+
29+
30+
function updateModule(classDoc) {
31+
32+
var originalModule = classDoc.moduleDoc;
33+
var publicModule = modules[classDoc.publicModule];
34+
35+
if (!publicModule) {
36+
throw new Error('Missing module definition: "' + classDoc.publicModule + '"\n' +
37+
'Referenced in class: "' + classDoc.moduleDoc.id + '/' + classDoc.name + '"');
38+
}
39+
40+
publicModule.isPublic = true;
41+
42+
//console.log('UPDATE CLASS', classDoc.id, originalModule.id, publicModule.id);
43+
44+
_.remove(classDoc.moduleDoc.exports, function(doc) { return doc === classDoc; });
45+
classDoc.moduleDoc = publicModule;
46+
publicModule.exports.push(classDoc);
47+
48+
}
49+
};

0 commit comments

Comments
 (0)