@graphql-tools/import 6.4.1 → 6.4.2

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.
Files changed (3) hide show
  1. package/index.js +46 -39
  2. package/index.mjs +46 -39
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -236,51 +236,58 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
236
236
  }
237
237
  }
238
238
  }
239
+ const addDefinition = (definition, definitionName, definitionSet) => {
240
+ const fileDefinitionMap = visitedFiles.get(filePath);
241
+ if (fileDefinitionMap && !definitionSet.has(definition)) {
242
+ definitionSet.add(definition);
243
+ // Regenerate field exports if some fields are imported after visitor
244
+ if ('fields' in definition && definition.fields) {
245
+ for (const field of definition.fields) {
246
+ const fieldName = field.name.value;
247
+ const fieldDefinitionName = definition.name.value + '.' + fieldName;
248
+ const allImportedDefinitions = allImportedDefinitionsMap.get(definitionName);
249
+ allImportedDefinitions === null || allImportedDefinitions === void 0 ? void 0 : allImportedDefinitions.forEach(importedDefinition => {
250
+ if (!fileDefinitionMap.has(fieldDefinitionName)) {
251
+ fileDefinitionMap.set(fieldDefinitionName, new Set());
252
+ }
253
+ const definitionsWithDeps = fileDefinitionMap.get(fieldDefinitionName);
254
+ if (definitionsWithDeps) {
255
+ addDefinition(importedDefinition, fieldDefinitionName, definitionsWithDeps);
256
+ }
257
+ });
258
+ const newDependencySet = new Set();
259
+ switch (field.kind) {
260
+ case graphql.Kind.FIELD_DEFINITION:
261
+ visitFieldDefinitionNode(field, newDependencySet);
262
+ break;
263
+ case graphql.Kind.INPUT_VALUE_DEFINITION:
264
+ visitInputValueDefinitionNode(field, newDependencySet);
265
+ break;
266
+ }
267
+ newDependencySet.forEach(dependencyName => {
268
+ const definitionsInCurrentFile = fileDefinitionMap.get(dependencyName);
269
+ definitionsInCurrentFile === null || definitionsInCurrentFile === void 0 ? void 0 : definitionsInCurrentFile.forEach(def => addDefinition(def, definitionName, definitionSet));
270
+ const definitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
271
+ definitionsFromImports === null || definitionsFromImports === void 0 ? void 0 : definitionsFromImports.forEach(def => addDefinition(def, definitionName, definitionSet));
272
+ const transitiveDependencies = potentialTransitiveDefinitionsMap.get(dependencyName);
273
+ transitiveDependencies === null || transitiveDependencies === void 0 ? void 0 : transitiveDependencies.forEach(def => addDefinition(def, definitionName, definitionSet));
274
+ });
275
+ }
276
+ }
277
+ }
278
+ };
239
279
  if (!otherLines) {
240
280
  visitedFiles.set(filePath, allImportedDefinitionsMap);
281
+ const definitionSet = new Set();
282
+ allImportedDefinitionsMap === null || allImportedDefinitionsMap === void 0 ? void 0 : allImportedDefinitionsMap.forEach((importedDefinitions, importedDefinitionName) => {
283
+ importedDefinitions === null || importedDefinitions === void 0 ? void 0 : importedDefinitions.forEach(importedDefinition => {
284
+ addDefinition(importedDefinition, importedDefinitionName, definitionSet);
285
+ });
286
+ });
241
287
  }
242
288
  else {
243
289
  const fileDefinitionMap = visitedFiles.get(filePath);
244
290
  if (fileDefinitionMap) {
245
- const addDefinition = (definition, definitionName, definitionSet) => {
246
- if (!definitionSet.has(definition)) {
247
- definitionSet.add(definition);
248
- // Regenerate field exports if some fields are imported after visitor
249
- if ('fields' in definition && definition.fields) {
250
- for (const field of definition.fields) {
251
- const fieldName = field.name.value;
252
- const fieldDefinitionName = definition.name.value + '.' + fieldName;
253
- const allImportedDefinitions = allImportedDefinitionsMap.get(definitionName);
254
- allImportedDefinitions === null || allImportedDefinitions === void 0 ? void 0 : allImportedDefinitions.forEach(importedDefinition => {
255
- if (!fileDefinitionMap.has(fieldDefinitionName)) {
256
- fileDefinitionMap.set(fieldDefinitionName, new Set());
257
- }
258
- const definitionsWithDeps = fileDefinitionMap.get(fieldDefinitionName);
259
- if (definitionsWithDeps) {
260
- addDefinition(importedDefinition, fieldDefinitionName, definitionsWithDeps);
261
- }
262
- });
263
- const newDependencySet = new Set();
264
- switch (field.kind) {
265
- case graphql.Kind.FIELD_DEFINITION:
266
- visitFieldDefinitionNode(field, newDependencySet);
267
- break;
268
- case graphql.Kind.INPUT_VALUE_DEFINITION:
269
- visitInputValueDefinitionNode(field, newDependencySet);
270
- break;
271
- }
272
- newDependencySet.forEach(dependencyName => {
273
- const definitionsInCurrentFile = fileDefinitionMap.get(dependencyName);
274
- definitionsInCurrentFile === null || definitionsInCurrentFile === void 0 ? void 0 : definitionsInCurrentFile.forEach(def => addDefinition(def, definitionName, definitionSet));
275
- const definitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
276
- definitionsFromImports === null || definitionsFromImports === void 0 ? void 0 : definitionsFromImports.forEach(def => addDefinition(def, definitionName, definitionSet));
277
- const transitiveDependencies = potentialTransitiveDefinitionsMap.get(dependencyName);
278
- transitiveDependencies === null || transitiveDependencies === void 0 ? void 0 : transitiveDependencies.forEach(def => addDefinition(def, definitionName, definitionSet));
279
- });
280
- }
281
- }
282
- }
283
- };
284
291
  for (const [definitionName] of definitionsByName) {
285
292
  const definitionsWithDependencies = fileDefinitionMap.get(definitionName);
286
293
  if (definitionsWithDependencies) {
package/index.mjs CHANGED
@@ -230,51 +230,58 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
230
230
  }
231
231
  }
232
232
  }
233
+ const addDefinition = (definition, definitionName, definitionSet) => {
234
+ const fileDefinitionMap = visitedFiles.get(filePath);
235
+ if (fileDefinitionMap && !definitionSet.has(definition)) {
236
+ definitionSet.add(definition);
237
+ // Regenerate field exports if some fields are imported after visitor
238
+ if ('fields' in definition && definition.fields) {
239
+ for (const field of definition.fields) {
240
+ const fieldName = field.name.value;
241
+ const fieldDefinitionName = definition.name.value + '.' + fieldName;
242
+ const allImportedDefinitions = allImportedDefinitionsMap.get(definitionName);
243
+ allImportedDefinitions === null || allImportedDefinitions === void 0 ? void 0 : allImportedDefinitions.forEach(importedDefinition => {
244
+ if (!fileDefinitionMap.has(fieldDefinitionName)) {
245
+ fileDefinitionMap.set(fieldDefinitionName, new Set());
246
+ }
247
+ const definitionsWithDeps = fileDefinitionMap.get(fieldDefinitionName);
248
+ if (definitionsWithDeps) {
249
+ addDefinition(importedDefinition, fieldDefinitionName, definitionsWithDeps);
250
+ }
251
+ });
252
+ const newDependencySet = new Set();
253
+ switch (field.kind) {
254
+ case Kind.FIELD_DEFINITION:
255
+ visitFieldDefinitionNode(field, newDependencySet);
256
+ break;
257
+ case Kind.INPUT_VALUE_DEFINITION:
258
+ visitInputValueDefinitionNode(field, newDependencySet);
259
+ break;
260
+ }
261
+ newDependencySet.forEach(dependencyName => {
262
+ const definitionsInCurrentFile = fileDefinitionMap.get(dependencyName);
263
+ definitionsInCurrentFile === null || definitionsInCurrentFile === void 0 ? void 0 : definitionsInCurrentFile.forEach(def => addDefinition(def, definitionName, definitionSet));
264
+ const definitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
265
+ definitionsFromImports === null || definitionsFromImports === void 0 ? void 0 : definitionsFromImports.forEach(def => addDefinition(def, definitionName, definitionSet));
266
+ const transitiveDependencies = potentialTransitiveDefinitionsMap.get(dependencyName);
267
+ transitiveDependencies === null || transitiveDependencies === void 0 ? void 0 : transitiveDependencies.forEach(def => addDefinition(def, definitionName, definitionSet));
268
+ });
269
+ }
270
+ }
271
+ }
272
+ };
233
273
  if (!otherLines) {
234
274
  visitedFiles.set(filePath, allImportedDefinitionsMap);
275
+ const definitionSet = new Set();
276
+ allImportedDefinitionsMap === null || allImportedDefinitionsMap === void 0 ? void 0 : allImportedDefinitionsMap.forEach((importedDefinitions, importedDefinitionName) => {
277
+ importedDefinitions === null || importedDefinitions === void 0 ? void 0 : importedDefinitions.forEach(importedDefinition => {
278
+ addDefinition(importedDefinition, importedDefinitionName, definitionSet);
279
+ });
280
+ });
235
281
  }
236
282
  else {
237
283
  const fileDefinitionMap = visitedFiles.get(filePath);
238
284
  if (fileDefinitionMap) {
239
- const addDefinition = (definition, definitionName, definitionSet) => {
240
- if (!definitionSet.has(definition)) {
241
- definitionSet.add(definition);
242
- // Regenerate field exports if some fields are imported after visitor
243
- if ('fields' in definition && definition.fields) {
244
- for (const field of definition.fields) {
245
- const fieldName = field.name.value;
246
- const fieldDefinitionName = definition.name.value + '.' + fieldName;
247
- const allImportedDefinitions = allImportedDefinitionsMap.get(definitionName);
248
- allImportedDefinitions === null || allImportedDefinitions === void 0 ? void 0 : allImportedDefinitions.forEach(importedDefinition => {
249
- if (!fileDefinitionMap.has(fieldDefinitionName)) {
250
- fileDefinitionMap.set(fieldDefinitionName, new Set());
251
- }
252
- const definitionsWithDeps = fileDefinitionMap.get(fieldDefinitionName);
253
- if (definitionsWithDeps) {
254
- addDefinition(importedDefinition, fieldDefinitionName, definitionsWithDeps);
255
- }
256
- });
257
- const newDependencySet = new Set();
258
- switch (field.kind) {
259
- case Kind.FIELD_DEFINITION:
260
- visitFieldDefinitionNode(field, newDependencySet);
261
- break;
262
- case Kind.INPUT_VALUE_DEFINITION:
263
- visitInputValueDefinitionNode(field, newDependencySet);
264
- break;
265
- }
266
- newDependencySet.forEach(dependencyName => {
267
- const definitionsInCurrentFile = fileDefinitionMap.get(dependencyName);
268
- definitionsInCurrentFile === null || definitionsInCurrentFile === void 0 ? void 0 : definitionsInCurrentFile.forEach(def => addDefinition(def, definitionName, definitionSet));
269
- const definitionsFromImports = allImportedDefinitionsMap.get(dependencyName);
270
- definitionsFromImports === null || definitionsFromImports === void 0 ? void 0 : definitionsFromImports.forEach(def => addDefinition(def, definitionName, definitionSet));
271
- const transitiveDependencies = potentialTransitiveDefinitionsMap.get(dependencyName);
272
- transitiveDependencies === null || transitiveDependencies === void 0 ? void 0 : transitiveDependencies.forEach(def => addDefinition(def, definitionName, definitionSet));
273
- });
274
- }
275
- }
276
- }
277
- };
278
285
  for (const [definitionName] of definitionsByName) {
279
286
  const definitionsWithDependencies = fileDefinitionMap.get(definitionName);
280
287
  if (definitionsWithDependencies) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-tools/import",
3
- "version": "6.4.1",
3
+ "version": "6.4.2",
4
4
  "description": "A set of utils for faster development of GraphQL tools",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {