UNPKG

@spec2ts/core

Version:

Core module for @spec2ts modules, includes codegen helpers and common parsing methods

38 lines (37 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findVariableDeclarationName = exports.findFirstVariableDeclarationName = exports.findFirstVariableDeclaration = exports.filterNodes = exports.findNode = void 0; const ts = require("typescript"); const common_1 = require("./common"); function findNode(nodes, kind, test) { const node = nodes.find(s => s.kind === kind && (!test || test(s))); return node; } exports.findNode = findNode; function filterNodes(nodes, kind, test) { return nodes.filter(s => s.kind === kind && (!test || test(s))); } exports.filterNodes = filterNodes; function findFirstVariableDeclaration(nodes, name) { const statement = findNode(nodes, ts.SyntaxKind.VariableStatement, n => findFirstVariableDeclarationName(n) === name); if (!statement) return; const [first] = statement.declarationList.declarations; return first; } exports.findFirstVariableDeclaration = findFirstVariableDeclaration; function findFirstVariableDeclarationName(n) { const name = ts.getNameOfDeclaration(n.declarationList.declarations[0]); return name && (0, common_1.getName)(name); } exports.findFirstVariableDeclarationName = findFirstVariableDeclarationName; function findVariableDeclarationName(variable, name) { for (const decla of variable.declarationList.declarations) { const declaName = ts.getNameOfDeclaration(decla); if (declaName && (0, common_1.getName)(declaName) === name) { return decla; } } return null; } exports.findVariableDeclarationName = findVariableDeclarationName;