@hadss/hmrouter-plugin
Version:
HMRouter Compiler Plugin
36 lines (35 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImportAnalyzer = void 0;
class ImportAnalyzer {
static analyzeImports(sourceFile) {
const importMap = new Map();
sourceFile.getImportDeclarations().forEach((importDeclaration) => {
const moduleSpecifier = importDeclaration.getModuleSpecifierValue();
const namedImports = importDeclaration.getNamedImports().map((namedImport) => namedImport.getName());
const defaultImport = importDeclaration.getDefaultImport()?.getText();
const namespaceImport = importDeclaration.getNamespaceImport()?.getText();
const importNames = [];
if (namedImports.length > 0) {
importNames.push(...namedImports);
}
if (defaultImport) {
importNames.push(defaultImport);
}
if (namespaceImport) {
importNames.push(namespaceImport);
}
if (importNames.length > 0) {
if (importMap.has(moduleSpecifier)) {
const existingImports = importMap.get(moduleSpecifier);
importMap.set(moduleSpecifier, [...new Set([...existingImports, ...importNames])]);
}
else {
importMap.set(moduleSpecifier, importNames);
}
}
});
return importMap;
}
}
exports.ImportAnalyzer = ImportAnalyzer;