Skip to content

Commit d198cb5

Browse files
authored
build: filter out docs private members from interfaces (#22831)
Fixes that docs private members weren't being filtered out from interfaces. Also moves the code around slightly so that we don't mutate the data inside `Array.filter` since the expectation is that the filter function is pure. Fixes #20327.
1 parent d62aeed commit d198cb5

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed
Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {DocCollection, Processor} from 'dgeni';
22
import {BaseApiDoc} from 'dgeni-packages/typescript/api-doc-types/ApiDoc';
33
import {ClassExportDoc} from 'dgeni-packages/typescript/api-doc-types/ClassExportDoc';
4+
import {InterfaceExportDoc} from 'dgeni-packages/typescript/api-doc-types/InterfaceExportDoc';
45
import {getDocsPublicTag, isPublicDoc} from '../common/private-docs';
56

67
/**
@@ -12,26 +13,30 @@ export class DocsPrivateFilter implements Processor {
1213
$runAfter = ['mergeInheritedProperties'];
1314

1415
$process(docs: DocCollection) {
15-
return docs.filter(doc => {
16-
const isPublic = isPublicDoc(doc);
16+
const publicDocs = docs.filter(isPublicDoc);
1717

18+
publicDocs.forEach(doc => {
1819
// Update the API document name in case the "@docs-public" tag is used
1920
// with an alias name.
20-
if (isPublic && doc instanceof BaseApiDoc) {
21+
if (doc instanceof BaseApiDoc) {
2122
const docsPublicTag = getDocsPublicTag(doc);
2223
if (docsPublicTag !== undefined && docsPublicTag.description) {
2324
doc.name = docsPublicTag.description;
2425
}
2526
}
2627

28+
if (doc instanceof InterfaceExportDoc) {
29+
doc.members = doc.members.filter(isPublicDoc);
30+
}
31+
2732
// Filter out private class members which could be annotated
2833
// with the "@docs-private" tag.
29-
if (isPublic && doc instanceof ClassExportDoc) {
34+
if (doc instanceof ClassExportDoc) {
3035
doc.members = doc.members.filter(isPublicDoc);
3136
doc.statics = doc.statics.filter(isPublicDoc);
3237
}
33-
34-
return isPublic;
3538
});
39+
40+
return publicDocs;
3641
}
3742
}

0 commit comments

Comments
 (0)