UNPKG

knip

Version:

Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects

35 lines (34 loc) 1.35 kB
import { IMPORT_STAR } from "../../constants.js"; import { getCachedUsage, setCachedUsage } from "../cache.js"; import { CONTINUE } from "../constants.js"; import { findImportRef } from "../utils.js"; import { walkDown } from "../walk-down.js"; export const getUsage = (graph, entryPaths, filePath, identifier) => { const cached = getCachedUsage(graph, filePath, identifier); if (cached) return cached; const locations = []; let reExportingEntryFile; if (entryPaths.has(filePath)) { reExportingEntryFile = filePath; } walkDown(graph, filePath, identifier, (sourceFile, sourceId, importingFile, id, isEntry, via) => { const lookupId = via === 'importNS' ? IMPORT_STAR : sourceId; const importRef = findImportRef(graph, importingFile, sourceFile, lookupId); locations.push({ filePath: importingFile, identifier: id, pos: importRef?.pos ?? 0, line: importRef?.line ?? 0, col: importRef?.col ?? 0, isEntry, via, }); if (isEntry && !reExportingEntryFile) reExportingEntryFile = importingFile; return CONTINUE; }, entryPaths); const result = { locations, reExportingEntryFile }; setCachedUsage(graph, filePath, identifier, result); return result; };