@graphql-tools/import 7.1.1-alpha-20250905084227-a20ed1fabf7f2c69761699dc9c4e0676cd9e8c28 → 7.1.1-alpha-20250905110939-465ce4b83eaffe7e8ad2d10538526654c551aeff

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -95,7 +95,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
95
95
  addDefinition(importedDefinition, fieldDefinitionName, definitionsWithDeps);
96
96
  }
97
97
  });
98
- const newDependencySet = new Set();
98
+ const newDependencySet = new Map();
99
99
  switch (field.kind) {
100
100
  case graphql_1.Kind.FIELD_DEFINITION:
101
101
  visitFieldDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
@@ -104,7 +104,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
104
104
  visitInputValueDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
105
105
  break;
106
106
  }
107
- newDependencySet.forEach(dependencyName => {
107
+ Array.from(newDependencySet.keys()).forEach(dependencyName => {
108
108
  const definitionsInCurrentFile = fileDefinitionMap.get(dependencyName);
109
109
  definitionsInCurrentFile?.forEach(def => addDefinition(def, definitionName, definitionSet));
110
110
  const definitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
@@ -131,11 +131,11 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
131
131
  });
132
132
  const dependenciesOfDefinition = dependenciesByDefinitionName.get(definitionName);
133
133
  if (dependenciesOfDefinition) {
134
- for (const dependencyName of dependenciesOfDefinition) {
134
+ for (const [dependencyName, dependencyNodes] of dependenciesOfDefinition.entries()) {
135
135
  // If that dependency cannot be found both in imports and this file, throw an error
136
136
  if (!allImportedDefinitionsMap.has(dependencyName) &&
137
137
  !definitionsByName.has(dependencyName)) {
138
- throw new Error(`Couldn't find type ${dependencyName} in any of the schemas.`);
138
+ throw (0, utils_1.createGraphQLError)(`Couldn't find type ${dependencyName} in any of the schemas.`, { nodes: Array.from(dependencyNodes) });
139
139
  }
140
140
  const dependencyDefinitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
141
141
  dependencyDefinitionsFromImports?.forEach(dependencyDefinition => {
@@ -158,9 +158,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
158
158
  function extractDependencies(filePath, fileContents) {
159
159
  const definitionsByName = new Map();
160
160
  const dependenciesByDefinitionName = new Map();
161
- const { document } = (0, utils_1.parseGraphQLSDL)(filePath, fileContents, {
162
- noLocation: true,
163
- });
161
+ const { document } = (0, utils_1.parseGraphQLSDL)(filePath, fileContents);
164
162
  for (const definition of document.definitions) {
165
163
  visitDefinition(definition, definitionsByName, dependenciesByDefinitionName);
166
164
  }
@@ -234,7 +232,7 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
234
232
  definitionsSet.add(definition);
235
233
  let dependencySet = dependenciesByDefinitionName.get(definitionName);
236
234
  if (!dependencySet) {
237
- dependencySet = new Set();
235
+ dependencySet = new Map();
238
236
  dependenciesByDefinitionName.set(definitionName, dependencySet);
239
237
  }
240
238
  switch (definition.kind) {
@@ -304,7 +302,7 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
304
302
  });
305
303
  let dependencySet = dependenciesByDefinitionName.get(definitionName);
306
304
  if (!dependencySet) {
307
- dependencySet = new Set();
305
+ dependencySet = new Map();
308
306
  dependenciesByDefinitionName.set(definitionName, dependencySet);
309
307
  }
310
308
  switch (field.kind) {
@@ -332,7 +330,7 @@ function getFileDefinitionMap(definitionsByName, dependenciesByDefinitionName) {
332
330
  }
333
331
  const dependenciesOfDefinition = dependenciesByDefinitionName.get(definitionName);
334
332
  if (dependenciesOfDefinition) {
335
- for (const dependencyName of dependenciesOfDefinition) {
333
+ for (const dependencyName of dependenciesOfDefinition.keys()) {
336
334
  const dependencyDefinitions = definitionsByName.get(dependencyName);
337
335
  if (dependencyDefinitions != null) {
338
336
  for (const dependencyDefinition of dependencyDefinitions) {
@@ -513,9 +511,17 @@ function applyPathAlias(prefixPattern, mapping, importFrom) {
513
511
  }
514
512
  return mapping;
515
513
  }
514
+ function addToDependencySet(dependencySet, node) {
515
+ const existingNodes = dependencySet.get(node.value);
516
+ if (existingNodes != null) {
517
+ existingNodes.add(node);
518
+ return;
519
+ }
520
+ dependencySet.set(node.value, new Set([node]));
521
+ }
516
522
  function visitOperationDefinitionNode(node, dependencySet) {
517
523
  if (node.name?.value) {
518
- dependencySet.add(node.name.value);
524
+ addToDependencySet(dependencySet, node.name);
519
525
  }
520
526
  node.selectionSet.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
521
527
  }
@@ -536,22 +542,20 @@ function visitFieldNode(node, dependencySet) {
536
542
  node.selectionSet?.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
537
543
  }
538
544
  function visitFragmentSpreadNode(node, dependencySet) {
539
- dependencySet.add(node.name.value);
545
+ addToDependencySet(dependencySet, node.name);
540
546
  }
541
547
  function visitInlineFragmentNode(node, dependencySet) {
542
548
  node.selectionSet.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
543
549
  }
544
550
  function visitFragmentDefinitionNode(node, dependencySet) {
545
- dependencySet.add(node.name.value);
551
+ addToDependencySet(dependencySet, node.name);
546
552
  node.selectionSet.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
547
553
  }
548
554
  function addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName) {
549
- const typeName = node.name.value;
550
555
  // all interfaces should be dependent to each other
551
556
  const allDependencies = [
552
- typeName,
553
- ...(node.interfaces?.map((namedTypeNode) => namedTypeNode.name.value) ||
554
- []),
557
+ node.name,
558
+ ...(node.interfaces?.map((namedTypeNode) => namedTypeNode.name) || []),
555
559
  ];
556
560
  node.interfaces?.forEach((namedTypeNode) => {
557
561
  visitNamedTypeNode(namedTypeNode, dependencySet);
@@ -559,19 +563,18 @@ function addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionN
559
563
  let set = dependenciesByDefinitionName.get(interfaceName);
560
564
  // interface should be dependent to the type as well
561
565
  if (set == null) {
562
- set = new Set();
566
+ set = new Map();
563
567
  dependenciesByDefinitionName.set(interfaceName, set);
564
568
  }
565
569
  allDependencies.forEach(dependency => {
566
- if (dependency !== interfaceName) {
567
- set.add(dependency);
570
+ if (dependency.value !== interfaceName) {
571
+ addToDependencySet(set, dependency);
568
572
  }
569
573
  });
570
574
  });
571
575
  }
572
576
  function visitObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
573
- const typeName = node.name.value;
574
- dependencySet.add(typeName);
577
+ addToDependencySet(dependencySet, node.name);
575
578
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
576
579
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
577
580
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
@@ -579,7 +582,7 @@ function visitObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefini
579
582
  function visitDirectiveNode(node, dependencySet) {
580
583
  const directiveName = node.name.value;
581
584
  if (!builtinDirectives.includes(directiveName)) {
582
- dependencySet.add(node.name.value);
585
+ addToDependencySet(dependencySet, node.name);
583
586
  }
584
587
  }
585
588
  function visitFieldDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
@@ -609,7 +612,7 @@ function visitNonNullTypeNode(node, dependencySet, dependenciesByDefinitionName)
609
612
  function visitNamedTypeNode(node, dependencySet) {
610
613
  const namedTypeName = node.name.value;
611
614
  if (!builtinTypes.includes(namedTypeName)) {
612
- dependencySet.add(node.name.value);
615
+ addToDependencySet(dependencySet, node.name);
613
616
  }
614
617
  }
615
618
  function visitInputValueDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
@@ -617,74 +620,69 @@ function visitInputValueDefinitionNode(node, dependencySet, dependenciesByDefini
617
620
  visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
618
621
  }
619
622
  function visitInterfaceTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
620
- const typeName = node.name.value;
621
- dependencySet.add(typeName);
623
+ addToDependencySet(dependencySet, node.name);
622
624
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
623
625
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
624
626
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
625
627
  }
626
628
  function visitUnionTypeDefinitionNode(node, dependencySet) {
627
- dependencySet.add(node.name.value);
629
+ addToDependencySet(dependencySet, node.name);
628
630
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
629
631
  node.types?.forEach(namedTypeNode => visitNamedTypeNode(namedTypeNode, dependencySet));
630
632
  }
631
633
  function visitEnumTypeDefinitionNode(node, dependencySet) {
632
- dependencySet.add(node.name.value);
634
+ addToDependencySet(dependencySet, node.name);
633
635
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
634
636
  }
635
637
  function visitInputObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
636
- dependencySet.add(node.name.value);
638
+ addToDependencySet(dependencySet, node.name);
637
639
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
638
640
  node.fields?.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
639
641
  }
640
642
  function visitDirectiveDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
641
- dependencySet.add(node.name.value);
643
+ addToDependencySet(dependencySet, node.name);
642
644
  node.arguments?.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
643
645
  }
644
646
  function visitObjectTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
645
- const typeName = node.name.value;
646
- dependencySet.add(typeName);
647
+ addToDependencySet(dependencySet, node.name);
647
648
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
648
649
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
649
650
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
650
651
  }
651
652
  function visitInterfaceTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
652
- const typeName = node.name.value;
653
- dependencySet.add(typeName);
653
+ addToDependencySet(dependencySet, node.name);
654
654
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
655
655
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
656
656
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
657
657
  }
658
658
  function visitUnionTypeExtensionNode(node, dependencySet) {
659
- dependencySet.add(node.name.value);
659
+ addToDependencySet(dependencySet, node.name);
660
660
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
661
661
  node.types?.forEach(namedTypeNode => visitNamedTypeNode(namedTypeNode, dependencySet));
662
662
  }
663
663
  function visitEnumTypeExtensionNode(node, dependencySet) {
664
- dependencySet.add(node.name.value);
664
+ addToDependencySet(dependencySet, node.name);
665
665
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
666
666
  }
667
667
  function visitInputObjectTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
668
- dependencySet.add(node.name.value);
668
+ addToDependencySet(dependencySet, node.name);
669
669
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
670
670
  node.fields?.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
671
671
  }
672
672
  function visitSchemaDefinitionNode(node, dependencySet) {
673
- dependencySet.add('schema');
674
673
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
675
674
  node.operationTypes.forEach(operationTypeDefinitionNode => visitOperationTypeDefinitionNode(operationTypeDefinitionNode, dependencySet));
676
675
  }
677
676
  function visitSchemaExtensionDefinitionNode(node, dependencySet) {
678
- dependencySet.add('schema');
679
677
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
680
678
  node.operationTypes?.forEach(operationTypeDefinitionNode => visitOperationTypeDefinitionNode(operationTypeDefinitionNode, dependencySet));
681
679
  }
682
680
  function visitScalarDefinitionNode(node, dependencySet) {
683
- dependencySet.add(node.name.value);
681
+ addToDependencySet(dependencySet, node.name);
684
682
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
685
683
  }
686
684
  function visitScalarExtensionNode(node, dependencySet) {
687
- dependencySet.add(node.name.value);
685
+ addToDependencySet(dependencySet, node.name);
688
686
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
689
687
  }
690
688
  function visitOperationTypeDefinitionNode(node, dependencySet) {
package/esm/index.js CHANGED
@@ -2,7 +2,7 @@ import { readFileSync, realpathSync } from 'fs';
2
2
  import { dirname, isAbsolute, join } from 'path';
3
3
  import { Kind, parse, print, Source, } from 'graphql';
4
4
  import resolveFrom from 'resolve-from';
5
- import { parseGraphQLSDL } from '@graphql-tools/utils';
5
+ import { createGraphQLError, parseGraphQLSDL } from '@graphql-tools/utils';
6
6
  import { extractLinkImplementations } from '@theguild/federation-composition';
7
7
  const builtinTypes = ['String', 'Float', 'Int', 'Boolean', 'ID', 'Upload'];
8
8
  const federationV1Directives = ['key', 'provides', 'requires', 'external'];
@@ -87,7 +87,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
87
87
  addDefinition(importedDefinition, fieldDefinitionName, definitionsWithDeps);
88
88
  }
89
89
  });
90
- const newDependencySet = new Set();
90
+ const newDependencySet = new Map();
91
91
  switch (field.kind) {
92
92
  case Kind.FIELD_DEFINITION:
93
93
  visitFieldDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
@@ -96,7 +96,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
96
96
  visitInputValueDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
97
97
  break;
98
98
  }
99
- newDependencySet.forEach(dependencyName => {
99
+ Array.from(newDependencySet.keys()).forEach(dependencyName => {
100
100
  const definitionsInCurrentFile = fileDefinitionMap.get(dependencyName);
101
101
  definitionsInCurrentFile?.forEach(def => addDefinition(def, definitionName, definitionSet));
102
102
  const definitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
@@ -123,11 +123,11 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
123
123
  });
124
124
  const dependenciesOfDefinition = dependenciesByDefinitionName.get(definitionName);
125
125
  if (dependenciesOfDefinition) {
126
- for (const dependencyName of dependenciesOfDefinition) {
126
+ for (const [dependencyName, dependencyNodes] of dependenciesOfDefinition.entries()) {
127
127
  // If that dependency cannot be found both in imports and this file, throw an error
128
128
  if (!allImportedDefinitionsMap.has(dependencyName) &&
129
129
  !definitionsByName.has(dependencyName)) {
130
- throw new Error(`Couldn't find type ${dependencyName} in any of the schemas.`);
130
+ throw createGraphQLError(`Couldn't find type ${dependencyName} in any of the schemas.`, { nodes: Array.from(dependencyNodes) });
131
131
  }
132
132
  const dependencyDefinitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
133
133
  dependencyDefinitionsFromImports?.forEach(dependencyDefinition => {
@@ -150,9 +150,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports, pathAliases)
150
150
  export function extractDependencies(filePath, fileContents) {
151
151
  const definitionsByName = new Map();
152
152
  const dependenciesByDefinitionName = new Map();
153
- const { document } = parseGraphQLSDL(filePath, fileContents, {
154
- noLocation: true,
155
- });
153
+ const { document } = parseGraphQLSDL(filePath, fileContents);
156
154
  for (const definition of document.definitions) {
157
155
  visitDefinition(definition, definitionsByName, dependenciesByDefinitionName);
158
156
  }
@@ -226,7 +224,7 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
226
224
  definitionsSet.add(definition);
227
225
  let dependencySet = dependenciesByDefinitionName.get(definitionName);
228
226
  if (!dependencySet) {
229
- dependencySet = new Set();
227
+ dependencySet = new Map();
230
228
  dependenciesByDefinitionName.set(definitionName, dependencySet);
231
229
  }
232
230
  switch (definition.kind) {
@@ -296,7 +294,7 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
296
294
  });
297
295
  let dependencySet = dependenciesByDefinitionName.get(definitionName);
298
296
  if (!dependencySet) {
299
- dependencySet = new Set();
297
+ dependencySet = new Map();
300
298
  dependenciesByDefinitionName.set(definitionName, dependencySet);
301
299
  }
302
300
  switch (field.kind) {
@@ -324,7 +322,7 @@ function getFileDefinitionMap(definitionsByName, dependenciesByDefinitionName) {
324
322
  }
325
323
  const dependenciesOfDefinition = dependenciesByDefinitionName.get(definitionName);
326
324
  if (dependenciesOfDefinition) {
327
- for (const dependencyName of dependenciesOfDefinition) {
325
+ for (const dependencyName of dependenciesOfDefinition.keys()) {
328
326
  const dependencyDefinitions = definitionsByName.get(dependencyName);
329
327
  if (dependencyDefinitions != null) {
330
328
  for (const dependencyDefinition of dependencyDefinitions) {
@@ -505,9 +503,17 @@ function applyPathAlias(prefixPattern, mapping, importFrom) {
505
503
  }
506
504
  return mapping;
507
505
  }
506
+ function addToDependencySet(dependencySet, node) {
507
+ const existingNodes = dependencySet.get(node.value);
508
+ if (existingNodes != null) {
509
+ existingNodes.add(node);
510
+ return;
511
+ }
512
+ dependencySet.set(node.value, new Set([node]));
513
+ }
508
514
  function visitOperationDefinitionNode(node, dependencySet) {
509
515
  if (node.name?.value) {
510
- dependencySet.add(node.name.value);
516
+ addToDependencySet(dependencySet, node.name);
511
517
  }
512
518
  node.selectionSet.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
513
519
  }
@@ -528,22 +534,20 @@ function visitFieldNode(node, dependencySet) {
528
534
  node.selectionSet?.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
529
535
  }
530
536
  function visitFragmentSpreadNode(node, dependencySet) {
531
- dependencySet.add(node.name.value);
537
+ addToDependencySet(dependencySet, node.name);
532
538
  }
533
539
  function visitInlineFragmentNode(node, dependencySet) {
534
540
  node.selectionSet.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
535
541
  }
536
542
  function visitFragmentDefinitionNode(node, dependencySet) {
537
- dependencySet.add(node.name.value);
543
+ addToDependencySet(dependencySet, node.name);
538
544
  node.selectionSet.selections.forEach(selectionNode => visitSelectionNode(selectionNode, dependencySet));
539
545
  }
540
546
  function addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName) {
541
- const typeName = node.name.value;
542
547
  // all interfaces should be dependent to each other
543
548
  const allDependencies = [
544
- typeName,
545
- ...(node.interfaces?.map((namedTypeNode) => namedTypeNode.name.value) ||
546
- []),
549
+ node.name,
550
+ ...(node.interfaces?.map((namedTypeNode) => namedTypeNode.name) || []),
547
551
  ];
548
552
  node.interfaces?.forEach((namedTypeNode) => {
549
553
  visitNamedTypeNode(namedTypeNode, dependencySet);
@@ -551,19 +555,18 @@ function addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionN
551
555
  let set = dependenciesByDefinitionName.get(interfaceName);
552
556
  // interface should be dependent to the type as well
553
557
  if (set == null) {
554
- set = new Set();
558
+ set = new Map();
555
559
  dependenciesByDefinitionName.set(interfaceName, set);
556
560
  }
557
561
  allDependencies.forEach(dependency => {
558
- if (dependency !== interfaceName) {
559
- set.add(dependency);
562
+ if (dependency.value !== interfaceName) {
563
+ addToDependencySet(set, dependency);
560
564
  }
561
565
  });
562
566
  });
563
567
  }
564
568
  function visitObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
565
- const typeName = node.name.value;
566
- dependencySet.add(typeName);
569
+ addToDependencySet(dependencySet, node.name);
567
570
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
568
571
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
569
572
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
@@ -571,7 +574,7 @@ function visitObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefini
571
574
  function visitDirectiveNode(node, dependencySet) {
572
575
  const directiveName = node.name.value;
573
576
  if (!builtinDirectives.includes(directiveName)) {
574
- dependencySet.add(node.name.value);
577
+ addToDependencySet(dependencySet, node.name);
575
578
  }
576
579
  }
577
580
  function visitFieldDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
@@ -601,7 +604,7 @@ function visitNonNullTypeNode(node, dependencySet, dependenciesByDefinitionName)
601
604
  function visitNamedTypeNode(node, dependencySet) {
602
605
  const namedTypeName = node.name.value;
603
606
  if (!builtinTypes.includes(namedTypeName)) {
604
- dependencySet.add(node.name.value);
607
+ addToDependencySet(dependencySet, node.name);
605
608
  }
606
609
  }
607
610
  function visitInputValueDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
@@ -609,74 +612,69 @@ function visitInputValueDefinitionNode(node, dependencySet, dependenciesByDefini
609
612
  visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
610
613
  }
611
614
  function visitInterfaceTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
612
- const typeName = node.name.value;
613
- dependencySet.add(typeName);
615
+ addToDependencySet(dependencySet, node.name);
614
616
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
615
617
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
616
618
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
617
619
  }
618
620
  function visitUnionTypeDefinitionNode(node, dependencySet) {
619
- dependencySet.add(node.name.value);
621
+ addToDependencySet(dependencySet, node.name);
620
622
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
621
623
  node.types?.forEach(namedTypeNode => visitNamedTypeNode(namedTypeNode, dependencySet));
622
624
  }
623
625
  function visitEnumTypeDefinitionNode(node, dependencySet) {
624
- dependencySet.add(node.name.value);
626
+ addToDependencySet(dependencySet, node.name);
625
627
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
626
628
  }
627
629
  function visitInputObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
628
- dependencySet.add(node.name.value);
630
+ addToDependencySet(dependencySet, node.name);
629
631
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
630
632
  node.fields?.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
631
633
  }
632
634
  function visitDirectiveDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
633
- dependencySet.add(node.name.value);
635
+ addToDependencySet(dependencySet, node.name);
634
636
  node.arguments?.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
635
637
  }
636
638
  function visitObjectTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
637
- const typeName = node.name.value;
638
- dependencySet.add(typeName);
639
+ addToDependencySet(dependencySet, node.name);
639
640
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
640
641
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
641
642
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
642
643
  }
643
644
  function visitInterfaceTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
644
- const typeName = node.name.value;
645
- dependencySet.add(typeName);
645
+ addToDependencySet(dependencySet, node.name);
646
646
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
647
647
  node.fields?.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
648
648
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
649
649
  }
650
650
  function visitUnionTypeExtensionNode(node, dependencySet) {
651
- dependencySet.add(node.name.value);
651
+ addToDependencySet(dependencySet, node.name);
652
652
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
653
653
  node.types?.forEach(namedTypeNode => visitNamedTypeNode(namedTypeNode, dependencySet));
654
654
  }
655
655
  function visitEnumTypeExtensionNode(node, dependencySet) {
656
- dependencySet.add(node.name.value);
656
+ addToDependencySet(dependencySet, node.name);
657
657
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
658
658
  }
659
659
  function visitInputObjectTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
660
- dependencySet.add(node.name.value);
660
+ addToDependencySet(dependencySet, node.name);
661
661
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
662
662
  node.fields?.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
663
663
  }
664
664
  function visitSchemaDefinitionNode(node, dependencySet) {
665
- dependencySet.add('schema');
666
665
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
667
666
  node.operationTypes.forEach(operationTypeDefinitionNode => visitOperationTypeDefinitionNode(operationTypeDefinitionNode, dependencySet));
668
667
  }
669
668
  function visitSchemaExtensionDefinitionNode(node, dependencySet) {
670
- dependencySet.add('schema');
671
669
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
672
670
  node.operationTypes?.forEach(operationTypeDefinitionNode => visitOperationTypeDefinitionNode(operationTypeDefinitionNode, dependencySet));
673
671
  }
674
672
  function visitScalarDefinitionNode(node, dependencySet) {
675
- dependencySet.add(node.name.value);
673
+ addToDependencySet(dependencySet, node.name);
676
674
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
677
675
  }
678
676
  function visitScalarExtensionNode(node, dependencySet) {
679
- dependencySet.add(node.name.value);
677
+ addToDependencySet(dependencySet, node.name);
680
678
  node.directives?.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
681
679
  }
682
680
  function visitOperationTypeDefinitionNode(node, dependencySet) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-tools/import",
3
- "version": "7.1.1-alpha-20250905084227-a20ed1fabf7f2c69761699dc9c4e0676cd9e8c28",
3
+ "version": "7.1.1-alpha-20250905110939-465ce4b83eaffe7e8ad2d10538526654c551aeff",
4
4
  "description": "A set of utils for faster development of GraphQL tools",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -1,4 +1,4 @@
1
- import { DefinitionNode, DocumentNode } from 'graphql';
1
+ import { DefinitionNode, DocumentNode, NameNode } from 'graphql';
2
2
  export type VisitedFilesMap = Map<string, Map<string, Set<DefinitionNode>>>;
3
3
  /**
4
4
  * Configuration for path aliasing in GraphQL import statements using the same
@@ -69,9 +69,11 @@ export interface PathAliases {
69
69
  * processImport does not merge the typeDefs as designed ( https://github.com/ardatan/graphql-tools/issues/2980#issuecomment-1003692728 )
70
70
  */
71
71
  export declare function processImport(filePath: string, cwd?: string, predefinedImports?: Record<string, string>, visitedFiles?: VisitedFilesMap, pathAliases?: PathAliases): DocumentNode;
72
+ type DependencySet = Map<string, Set<NameNode>>;
73
+ type DependenciesByDefinitionName = Map<string, DependencySet>;
72
74
  export declare function extractDependencies(filePath: string, fileContents: string): {
73
75
  definitionsByName: Map<string, Set<DefinitionNode>>;
74
- dependenciesByDefinitionName: Map<string, Set<string>>;
76
+ dependenciesByDefinitionName: DependenciesByDefinitionName;
75
77
  };
76
78
  export declare function processImports(importLines: string[], filePath: string, visitedFiles: VisitedFilesMap, predefinedImports: Record<string, string>, pathAliases?: PathAliases): {
77
79
  allImportedDefinitionsMap: Map<string, Set<DefinitionNode>>;
@@ -95,3 +97,4 @@ export declare function parseImportLine(importLine: string): {
95
97
  imports: string[];
96
98
  from: string;
97
99
  };
100
+ export {};
@@ -1,4 +1,4 @@
1
- import { DefinitionNode, DocumentNode } from 'graphql';
1
+ import { DefinitionNode, DocumentNode, NameNode } from 'graphql';
2
2
  export type VisitedFilesMap = Map<string, Map<string, Set<DefinitionNode>>>;
3
3
  /**
4
4
  * Configuration for path aliasing in GraphQL import statements using the same
@@ -69,9 +69,11 @@ export interface PathAliases {
69
69
  * processImport does not merge the typeDefs as designed ( https://github.com/ardatan/graphql-tools/issues/2980#issuecomment-1003692728 )
70
70
  */
71
71
  export declare function processImport(filePath: string, cwd?: string, predefinedImports?: Record<string, string>, visitedFiles?: VisitedFilesMap, pathAliases?: PathAliases): DocumentNode;
72
+ type DependencySet = Map<string, Set<NameNode>>;
73
+ type DependenciesByDefinitionName = Map<string, DependencySet>;
72
74
  export declare function extractDependencies(filePath: string, fileContents: string): {
73
75
  definitionsByName: Map<string, Set<DefinitionNode>>;
74
- dependenciesByDefinitionName: Map<string, Set<string>>;
76
+ dependenciesByDefinitionName: DependenciesByDefinitionName;
75
77
  };
76
78
  export declare function processImports(importLines: string[], filePath: string, visitedFiles: VisitedFilesMap, predefinedImports: Record<string, string>, pathAliases?: PathAliases): {
77
79
  allImportedDefinitionsMap: Map<string, Set<DefinitionNode>>;
@@ -95,3 +97,4 @@ export declare function parseImportLine(importLine: string): {
95
97
  imports: string[];
96
98
  from: string;
97
99
  };
100
+ export {};