|
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[]) { |
3 | 3 | const classes = []; |
4 | 4 | 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 | + } |
13 | 22 | } |
14 | 23 | }); |
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 | + // }); |
16 | 37 |
|
17 | 38 | return { |
18 | 39 | keys: [['Classes', 'Classes (w/ annotation)', 'Classes (w/o annotation)'].join('\n')], |
|
0 commit comments