UNPKG

import-conductor

Version:

Automatically organize your Typescript import statements

37 lines 1.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getImportStatementMap = void 0; const typescript_1 = __importDefault(require("typescript")); const config_1 = require("../config"); const merge_import_statements_1 = require("./merge-import-statements"); function getImportStatementMap(importNodes) { const { autoMerge } = config_1.getConfig(); const importStatementMap = new Map(); importNodes.forEach((node) => { var _a; const importSegments = node.getChildren(); let importStatement = node.getFullText(); if (importStatement.startsWith('\n')) { importStatement = importStatement.replace(/^\n*/, ''); } const importLiteral = (_a = importSegments.find((segment) => segment.kind === typescript_1.default.SyntaxKind.StringLiteral)) === null || _a === void 0 ? void 0 : _a.getText(); if (!importLiteral) { return; } const existingImport = importStatementMap.get(importLiteral); const canMerge = autoMerge && existingImport && [existingImport, importStatement].every((i) => !i.includes('*')); if (canMerge) { importStatementMap.set(importLiteral, merge_import_statements_1.mergeImportStatements(existingImport, importStatement)); } else { const key = existingImport ? `${importLiteral}_${Math.random()}` : importLiteral; importStatementMap.set(key, importStatement); } }); return importStatementMap; } exports.getImportStatementMap = getImportStatementMap; //# sourceMappingURL=get-import-statement-map.js.map