UNPKG

a2r

Version:
33 lines (32 loc) 1.45 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const typescript_1 = __importDefault(require("typescript")); const getParamsTypes = (nodes, sourceFile) => { const res = []; for (let i = 0, l = nodes.length; i < l; i++) { const node = nodes[i]; if (typescript_1.default.isTypeReferenceNode(node) || typescript_1.default.isUnionTypeNode(node)) { const children = node.getChildren(sourceFile); for (let j = 0, k = children.length; j < k; j += 1) { const child = children[j]; if (typescript_1.default.isIdentifier(child) || typescript_1.default.isQualifiedName(child)) { res.push(child.getText().trim()); } else if (child.kind === typescript_1.default.SyntaxKind.SyntaxList) { const typeChildren = child.getChildren(sourceFile); if (typeChildren.length) { res.push(...getParamsTypes(typeChildren, sourceFile)); } } } } else if (typescript_1.default.isArrayTypeNode(node)) { res.push(...getParamsTypes(node.getChildren(sourceFile), sourceFile)); } } return res; }; exports.default = getParamsTypes;