bobflux-gen
Version:
Generator for monkey files in bobflux application.
22 lines (21 loc) • 852 B
text/typescript
import * as ts from 'typescript';
import * as nv from './nodeVisitor';
export function create(saveCallback: (state: nv.IStateData) => void): nv.INodeVisitor {
return {
accept: (n: ts.Node): boolean => {
return n.kind === ts.SyntaxKind.ClassDeclaration;
},
visit: (n: ts.Node) => {
let cd = <ts.ClassDeclaration>n;
saveCallback({
typeName: cd.name.text,
type: cd.kind,
fileName: (<ts.SourceFile>cd.parent).fileName,
fields: [],
heritages: cd.heritageClauses ? nv.flatten(cd.heritageClauses.map(h => h.types.map(t => t.getText()))) : [],
source: nv.StateSource.cls,
typeArguments: cd.typeParameters && cd.typeParameters.map(tp => tp.getText())
});
}
}
}