MCPcopy Index your code
hub / github.com/nodejs/node / updateNamespaceLikeImport

Function updateNamespaceLikeImport

test/fixtures/snapshot/typescript.js:162180–162200  ·  view source on GitHub ↗
(changes, sourceFile, checker, movedSymbols, newModuleName, newModuleSpecifier, oldImportId, oldImportNode)

Source from the content-addressed store, hash-verified

162178 }
162179 }
162180 function updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleName, newModuleSpecifier, oldImportId, oldImportNode) {
162181 var preferredNewNamespaceName = ts.codefix.moduleSpecifierToValidIdentifier(newModuleName, 99 /* ScriptTarget.ESNext */);
162182 var needUniqueName = false;
162183 var toChange = [];
162184 ts.FindAllReferences.Core.eachSymbolReferenceInFile(oldImportId, checker, sourceFile, function (ref) {
162185 if (!ts.isPropertyAccessExpression(ref.parent))
162186 return;
162187 needUniqueName = needUniqueName || !!checker.resolveName(preferredNewNamespaceName, ref, 67108863 /* SymbolFlags.All */, /*excludeGlobals*/ true);
162188 if (movedSymbols.has(checker.getSymbolAtLocation(ref.parent.name))) {
162189 toChange.push(ref);
162190 }
162191 });
162192 if (toChange.length) {
162193 var newNamespaceName = needUniqueName ? ts.getUniqueName(preferredNewNamespaceName, sourceFile) : preferredNewNamespaceName;
162194 for (var _i = 0, toChange_1 = toChange; _i < toChange_1.length; _i++) {
162195 var ref = toChange_1[_i];
162196 changes.replaceNode(sourceFile, ref, ts.factory.createIdentifier(newNamespaceName));
162197 }
162198 changes.insertNodeAfter(sourceFile, oldImportNode, updateNamespaceLikeImportNode(oldImportNode, newModuleName, newModuleSpecifier));
162199 }
162200 }
162201 function updateNamespaceLikeImportNode(node, newNamespaceName, newModuleSpecifier) {
162202 var newNamespaceId = ts.factory.createIdentifier(newNamespaceName);
162203 var newModuleString = ts.factory.createStringLiteral(newModuleSpecifier);

Callers 1

_loop_20Function · 0.85

Calls 3

hasMethod · 0.65
pushMethod · 0.45

Tested by

no test coverage detected