"use strict";
var getRenameInfosFromNamedImportPart_1 = require("./getRenameInfosFromNamedImportPart");
// todo: split up
function getRenameInfosFromImports(opts) {
var exportedRenameInfos = opts.exportedRenameInfos, searchingModuleSpecifier = opts.searchingModuleSpecifier, file = opts.file;
var importedRenameInfos = [];
var validExportedRenameInfos = exportedRenameInfos.filter(function (i) { return !i.isRootDefaultExportOfFile() || i.hasNamespaces(); });
file.imports.forEach(function (importDef) {
// todo: better module specifier matching check
if (searchingModuleSpecifier === importDef.moduleSpecifier) {
validExportedRenameInfos.forEach(function (renameInfo) {
if (importDef.defaultImport != null) {
var defaultImportName = importDef.defaultImport.name;
if (defaultImportName != null && renameInfo.hasNamespaces() && renameInfo.isRootDefaultExportOfFile()) {
importedRenameInfos.push(renameInfo.createWithNewFirstNamespace(defaultImportName));
}
}
if (importDef.starImportName != null && !renameInfo.isRootDefaultExportOfFile()) {
importedRenameInfos.push(renameInfo.createWithPrependedNamespace(importDef.starImportName));
}
importDef.namedImports.forEach(function (named) {
importedRenameInfos.push.apply(importedRenameInfos, getRenameInfosFromNamedImportPart_1.getRenameInfosFromNamedImportPart({
currentRenameInfo: renameInfo,
namedImportPart: named
}));
});
});
}
});
return importedRenameInfos;
}
exports.getRenameInfosFromImports = getRenameInfosFromImports;
//# sourceMappingURL=getRenameInfosFromImports.js.map
|