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

Function getNewFileImportsAndAddExportInOldFile

test/fixtures/snapshot/typescript.js:162357–162394  ·  view source on GitHub ↗
(oldFile, importsToCopy, newFileImportsFromOldFile, changes, checker, useEsModuleSyntax, quotePreference)

Source from the content-addressed store, hash-verified

162355 }
162356 }
162357 function getNewFileImportsAndAddExportInOldFile(oldFile, importsToCopy, newFileImportsFromOldFile, changes, checker, useEsModuleSyntax, quotePreference) {
162358 var copiedOldImports = [];
162359 for (var _i = 0, _a = oldFile.statements; _i < _a.length; _i++) {
162360 var oldStatement = _a[_i];
162361 forEachImportInStatement(oldStatement, function (i) {
162362 ts.append(copiedOldImports, filterImport(i, moduleSpecifierFromImport(i), function (name) { return importsToCopy.has(checker.getSymbolAtLocation(name)); }));
162363 });
162364 }
162365 // Also, import things used from the old file, and insert 'export' modifiers as necessary in the old file.
162366 var oldFileDefault;
162367 var oldFileNamedImports = [];
162368 var markSeenTop = ts.nodeSeenTracker(); // Needed because multiple declarations may appear in `const x = 0, y = 1;`.
162369 newFileImportsFromOldFile.forEach(function (symbol) {
162370 if (!symbol.declarations) {
162371 return;
162372 }
162373 for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
162374 var decl = _a[_i];
162375 if (!isTopLevelDeclaration(decl))
162376 continue;
162377 var name = nameOfTopLevelDeclaration(decl);
162378 if (!name)
162379 continue;
162380 var top = getTopLevelDeclarationStatement(decl);
162381 if (markSeenTop(top)) {
162382 addExportToChanges(oldFile, top, name, changes, useEsModuleSyntax);
162383 }
162384 if (ts.hasSyntacticModifier(decl, 512 /* ModifierFlags.Default */)) {
162385 oldFileDefault = name;
162386 }
162387 else {
162388 oldFileNamedImports.push(name.text);
162389 }
162390 }
162391 });
162392 ts.append(copiedOldImports, makeImportOrRequire(oldFileDefault, oldFileNamedImports, ts.removeFileExtension(ts.getBaseFileName(oldFile.fileName)), useEsModuleSyntax, quotePreference));
162393 return copiedOldImports;
162394 }
162395 function makeUniqueModuleName(moduleName, extension, inDirectory, host) {
162396 var newModuleName = moduleName;
162397 for (var i = 1;; i++) {

Callers 1

Calls 12

forEachImportInStatementFunction · 0.85
filterImportFunction · 0.85
addExportToChangesFunction · 0.85
makeImportOrRequireFunction · 0.85
isTopLevelDeclarationFunction · 0.70
hasMethod · 0.65
forEachMethod · 0.65
appendMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected