UNPKG

ts-budgie

Version:

Converts TypeScript code to Budgie.

31 lines (26 loc) 1.09 kB
import { CommandNames } from "budgie"; import * as ts from "typescript"; import { BudgieLine } from "../../output/budgieLine"; import { Transformation } from "../../output/transformation"; import { NodeVisitor } from "../visitor"; export class InterfaceDeclarationVisitor extends NodeVisitor { public visit(node: ts.InterfaceDeclaration) { const bodyNodes = this.router.recurseIntoNodes(node.members); const name = node.name.text; const extensions: string[] = []; if (node.heritageClauses !== undefined) { for (const clause of node.heritageClauses) { for (const type of clause.types) { extensions.push(type.expression.getText(this.sourceFile)); } } } return [ Transformation.fromNode(node, this.sourceFile, [ new BudgieLine(CommandNames.InterfaceStart, name, ...extensions), ...bodyNodes, new BudgieLine(CommandNames.InterfaceEnd), ]), ]; } }