a2r
Version:
A2R Framework
35 lines (34 loc) • 1.26 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 getIdentifier = (nodes) => {
let res = '';
for (let i = 0, l = nodes.length; i < l && !res; i += 1) {
const node = nodes[i];
if (typescript_1.default.isIdentifier(node)) {
res = node.getText().trim();
}
}
return res;
};
const getExportsIdentifiersFromNodes = (nodes, keys = new Array()) => {
const res = [...keys];
for (let i = 0, l = nodes.length; i < l; i += 1) {
const node = nodes[i];
const children = node.getChildren();
if (typescript_1.default.isInterfaceDeclaration(node) ||
typescript_1.default.isEnumDeclaration(node) ||
typescript_1.default.isTypeAliasDeclaration(node)) {
const identifier = getIdentifier(children);
res.push(identifier);
}
else if (children.length) {
res.push(...getExportsIdentifiersFromNodes(children));
}
}
return res;
};
exports.default = getExportsIdentifiersFromNodes;