Skip to content

Commit becddbe

Browse files
author
Wassim CHEGHAM
committed
chore: use forEachDescendant()
1 parent 6a759f3 commit becddbe

File tree

1 file changed

+32
-11
lines changed

1 file changed

+32
-11
lines changed

src/stats/classes.ts

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,39 @@
1-
import { SourceFile } from 'ts-simple-ast';
2-
export default function(sourcesFiles: SourceFile[]) {
1+
import { SourceFile, TypeGuards, ClassDeclaration } from 'ts-simple-ast';
2+
export default function(sourceFiles: SourceFile[]) {
33
const classes = [];
44
const classesAnnotated = [];
5-
sourcesFiles.map(sourceFile => {
6-
sourceFile.getClasses().map(classe => {
7-
if (classe.getDecorators().length === 0) {
8-
// get classes without decorators
9-
classes.push(classe.getName());
10-
} else {
11-
// get classes with decorators
12-
classesAnnotated.push(classe.getName());
5+
6+
7+
// see: https://github.com/compodoc/ts-stats/issues/12#issuecomment-380791091
8+
function visit(decorator: string, stats: string[]) {
9+
stats.push(decorator);
10+
}
11+
12+
for (const sourceFile of sourceFiles) {
13+
sourceFile.forEachDescendant(descendant => {
14+
if (TypeGuards.isClassDeclaration(descendant)) {
15+
const classeDeclaration = (descendant as ClassDeclaration);
16+
if (classeDeclaration.getDecorators().length === 0) {
17+
visit(classeDeclaration.getName(), classes);
18+
}
19+
else {
20+
visit(classeDeclaration.getName(), classesAnnotated);
21+
}
1322
}
1423
});
15-
});
24+
}
25+
26+
// sourceFiles.map(sourceFile => {
27+
// sourceFile.getClasses().map(classe => {
28+
// if (classe.getDecorators().length === 0) {
29+
// // get classes without decorators
30+
// classes.push(classe.getName());
31+
// } else {
32+
// // get classes with decorators
33+
// classesAnnotated.push(classe.getName());
34+
// }
35+
// });
36+
// });
1637

1738
return {
1839
keys: [['Classes', 'Classes (w/ annotation)', 'Classes (w/o annotation)'].join('\n')],

0 commit comments

Comments
 (0)