Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (!names.has(decl.name.escapedText)) {
return;
}
decls.push(decl);
});
stmt.declarationList.declarations = ts.createNodeArray(decls);
}
if (ts.isImportDeclaration(stmt)) {
keepNamesInImport(stmt, names);
}
// Do nothing for
// - TypeAliasDeclaration (No multiple specs)
// - FunctionDeclaration (ditto)
// - InterfaceDeclaration (ditto)
});
declsSF.statements = ts.createNodeArray(statements);
let printer = ts.createPrinter();
let anyVarsDecls: string[] = [];
anyVars.forEach(name => {
anyVarsDecls.push(`let ${name}: any;\n`);
});
return printer.printFile(declsSF) + anyVarsDecls.join("");
}
return;
}
statements.push(stmt);
if (ts.isVariableStatement(stmt)) {
const decls: ts.VariableDeclaration[] = [];
stmt.declarationList.declarations.forEach(decl => {
if (!ts.isIdentifier(decl.name)) {
// This must not happen.
return;
}
if (!names.has(decl.name.escapedText)) {
return;
}
decls.push(decl);
});
stmt.declarationList.declarations = ts.createNodeArray(decls);
}
if (ts.isImportDeclaration(stmt)) {
keepNamesInImport(stmt, names);
}
// Do nothing for
// - TypeAliasDeclaration (No multiple specs)
// - FunctionDeclaration (ditto)
// - InterfaceDeclaration (ditto)
});
declsSF.statements = ts.createNodeArray(statements);
[ts.createModifier(ts.SyntaxKind.ExportKeyword)],
ts.createVariableDeclarationList(
[
ts.createVariableDeclaration(
lastName,
undefined,
stmt.expression
)
],
ts.NodeFlags.Const
)
)
);
setLastExprName(lastName);
statements.push(...node.statements.slice(i + 1));
node.statements = ts.createNodeArray(statements);
break;
}
return node;
};
}
return (node: ts.SourceFile) => {
const statements = [];
for (const stmt of node.statements) {
if (ts.isExportDeclaration(stmt)) {
continue;
}
statements.push(stmt);
}
node.statements = ts.createNodeArray(statements);
return node;
};
}
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;
}
}
}
if (!imc.name && !imc.namedBindings) {
throw new Error("no symbol is included in names");
}
}