UNPKG

ts-budgie

Version:

Converts TypeScript code to Budgie.

29 lines (21 loc) 917 B
import { CommandNames } from "budgie"; import * as ts from "typescript"; import { BudgieLine } from "../output/budgieLine"; import { IRecurseOntoNode } from "./aliasers/recursiveAliaser"; const getParameterValueType = (typeMember: ts.IndexSignatureDeclaration, recurseOntoNode: IRecurseOntoNode) => { if (typeMember.type === undefined) { return undefined; } return recurseOntoNode(typeMember.type); }; export const getDictionaryTypeNameFromNode = (node: ts.TypeLiteralNode, recurseOntoNode: IRecurseOntoNode) => { const typeMember = node.members[0]; if (!ts.isIndexSignatureDeclaration(typeMember)) { return undefined; } const valueType = getParameterValueType(typeMember, recurseOntoNode); if (valueType === undefined) { return undefined; } return new BudgieLine(CommandNames.DictionaryType, "string", valueType); };