a2r
Version:
A2R Framework
33 lines (32 loc) • 1.45 kB
JavaScript
;
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;