UNPKG

a2r

Version:
45 lines (44 loc) 1.75 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 getModelImports = (fileNodes, usedTypes, sourceFile) => { const res = []; for (let i = 0, l = fileNodes.length; i < l; i++) { const node = fileNodes[i]; const children = node.getChildren(sourceFile); if (typescript_1.default.isImportDeclaration(node)) { let clause = null; let path = ''; for (let j = 0, k = children.length; j < k && (!clause || !path); j++) { const child = children[j]; if (typescript_1.default.isImportClause(child)) { clause = child; } if (typescript_1.default.isStringLiteral(child)) { path = child.getFullText(sourceFile).trim(); } } if (clause) { const clauseText = clause.getFullText(sourceFile).trim(); const imports = clauseText .replace('{', '') .replace('}', '') .trim() .split(',') .map((s) => s.trim()) .filter((s) => s); if (usedTypes.some((t) => imports.indexOf(t) !== -1)) { res.push({ clause, path, sourceFile }); } } } else if (children.length) { res.push(...getModelImports(children, usedTypes, sourceFile)); } } return res; }; exports.default = getModelImports;