in lib/json/conversions.ts [61:90]
export function convertNode(node: ts.Node): Node|undefined {
if (ts.isImportDeclaration(node)) {
return new ImportDeclaration(node);
} else if (ts.isExportDeclaration(node)) {
return new ExportDeclaration(node);
} else if (ts.isExportAssignment(node)) {
return new ExportAssignment(node);
} else if (ts.isModuleDeclaration(node)) {
return new ModuleDeclaration(node);
} else if (ts.isVariableDeclaration(node)) {
return new VariableDeclaration(node);
} else if (ts.isVariableStatement(node)) {
return new VariableStatement(node);
} else if (ts.isFunctionDeclaration(node)) {
return new FunctionDeclaration(node);
} else if (ts.isClassLike(node)) {
return new ClassDeclaration(node);
} else if (ts.isInterfaceDeclaration(node)) {
return new InterfaceDeclaration(node);
} else if (ts.isTypeAliasDeclaration(node)) {
return new TypeAliasDeclaration(node);
} else if (node.kind === ts.SyntaxKind.EndOfFileToken) {
// no-op
return undefined;
} else {
const error = new Error(`Unexpected Node kind ${ts.SyntaxKind[node.kind]}`);
error.name = 'DartFacadeError';
throw error;
}
}