Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function keepNamesInImport(
im: ts.ImportDeclaration,
names: Set
) {
if (!names || !names.size) {
throw new Error("names is empty of null");
}
let imc = im.importClause;
if (imc.name && !names.has(imc.name.escapedText)) {
delete imc.name;
}
if (imc.namedBindings) {
if (ts.isNamespaceImport(imc.namedBindings)) {
if (!names.has(imc.namedBindings.name.escapedText)) {
delete imc.namedBindings;
}
} else {
let elms: ts.ImportSpecifier[] = [];
imc.namedBindings.elements.forEach(elm => {
if (names.has(elm.name.escapedText)) {
elms.push(elm);
}
});
if (elms.length) {
imc.namedBindings.elements = ts.createNodeArray(elms);
} else {
delete imc.namedBindings;
}
}