@graphql-tools/import 6.2.6-alpha-60386b18.0 → 6.3.1

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/README.md ADDED
@@ -0,0 +1,5 @@
1
+ Check API Reference for more information about this package;
2
+ https://www.graphql-tools.com/docs/api/modules/import
3
+
4
+ You can also learn more about GraphQL Import in this chapter;
5
+ https://www.graphql-tools.com/docs/schema-loading#using-import-expression
package/es5/README.md ADDED
@@ -0,0 +1,5 @@
1
+ Check API Reference for more information about this package;
2
+ https://www.graphql-tools.com/docs/api/modules/import
3
+
4
+ You can also learn more about GraphQL Import in this chapter;
5
+ https://www.graphql-tools.com/docs/schema-loading#using-import-expression
package/es5/index.cjs.js CHANGED
@@ -27,11 +27,11 @@ var builtinDirectives = [
27
27
  ];
28
28
  var IMPORT_FROM_REGEX = /^import\s+(\*|(.*))\s+from\s+('|")(.*)('|");?$/;
29
29
  var IMPORT_DEFAULT_REGEX = /^import\s+('|")(.*)('|");?$/;
30
- function processImport(filePath, cwd, predefinedImports) {
30
+ function processImport(filePath, cwd, predefinedImports, visitedFiles) {
31
31
  var e_1, _a, e_2, _b;
32
32
  if (cwd === void 0) { cwd = process.cwd(); }
33
33
  if (predefinedImports === void 0) { predefinedImports = {}; }
34
- var visitedFiles = new Map();
34
+ if (visitedFiles === void 0) { visitedFiles = new Map(); }
35
35
  var set = visitFile(filePath, path.join(cwd + '/root.graphql'), visitedFiles, predefinedImports);
36
36
  var definitionStrSet = new Set();
37
37
  var definitionsStr = '';
@@ -64,7 +64,8 @@ function processImport(filePath, cwd, predefinedImports) {
64
64
  }
65
65
  finally { if (e_1) throw e_1.error; }
66
66
  }
67
- return (definitionsStr === null || definitionsStr === void 0 ? void 0 : definitionsStr.length) ? graphql.parse(new graphql.Source(definitionsStr, filePath))
67
+ return (definitionsStr === null || definitionsStr === void 0 ? void 0 : definitionsStr.length)
68
+ ? graphql.parse(new graphql.Source(definitionsStr, filePath))
68
69
  : {
69
70
  kind: graphql.Kind.DOCUMENT,
70
71
  definitions: [],
@@ -99,7 +100,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
99
100
  finally { if (e_3) throw e_3.error; }
100
101
  }
101
102
  var definitionsByName = new Map();
102
- var dependenciesByDefinitionName = new Map();
103
+ var dependenciesByDefinitionName_1 = new Map();
103
104
  if (otherLines) {
104
105
  var fileDefinitionMap = new Map();
105
106
  // To prevent circular dependency
@@ -117,10 +118,10 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
117
118
  }
118
119
  var definitionsSet = definitionsByName.get(definitionName);
119
120
  definitionsSet.add(definition);
120
- if (!dependenciesByDefinitionName.has(definitionName)) {
121
- dependenciesByDefinitionName.set(definitionName, new Set());
121
+ if (!dependenciesByDefinitionName_1.has(definitionName)) {
122
+ dependenciesByDefinitionName_1.set(definitionName, new Set());
122
123
  }
123
- var dependencySet = dependenciesByDefinitionName.get(definitionName);
124
+ var dependencySet = dependenciesByDefinitionName_1.get(definitionName);
124
125
  switch (definition.kind) {
125
126
  case graphql.Kind.OPERATION_DEFINITION:
126
127
  visitOperationDefinitionNode(definition, dependencySet);
@@ -129,10 +130,10 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
129
130
  visitFragmentDefinitionNode(definition, dependencySet);
130
131
  break;
131
132
  case graphql.Kind.OBJECT_TYPE_DEFINITION:
132
- visitObjectTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
133
+ visitObjectTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName_1);
133
134
  break;
134
135
  case graphql.Kind.INTERFACE_TYPE_DEFINITION:
135
- visitInterfaceTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
136
+ visitInterfaceTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName_1);
136
137
  break;
137
138
  case graphql.Kind.UNION_TYPE_DEFINITION:
138
139
  visitUnionTypeDefinitionNode(definition, dependencySet);
@@ -141,10 +142,10 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
141
142
  visitEnumTypeDefinitionNode(definition, dependencySet);
142
143
  break;
143
144
  case graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION:
144
- visitInputObjectTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
145
+ visitInputObjectTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName_1);
145
146
  break;
146
147
  case graphql.Kind.DIRECTIVE_DEFINITION:
147
- visitDirectiveDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
148
+ visitDirectiveDefinitionNode(definition, dependencySet, dependenciesByDefinitionName_1);
148
149
  break;
149
150
  case graphql.Kind.SCALAR_TYPE_DEFINITION:
150
151
  visitScalarDefinitionNode(definition, dependencySet);
@@ -153,10 +154,10 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
153
154
  visitSchemaDefinitionNode(definition, dependencySet);
154
155
  break;
155
156
  case graphql.Kind.OBJECT_TYPE_EXTENSION:
156
- visitObjectTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName);
157
+ visitObjectTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName_1);
157
158
  break;
158
159
  case graphql.Kind.INTERFACE_TYPE_EXTENSION:
159
- visitInterfaceTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName);
160
+ visitInterfaceTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName_1);
160
161
  break;
161
162
  case graphql.Kind.UNION_TYPE_EXTENSION:
162
163
  visitUnionTypeExtensionNode(definition, dependencySet);
@@ -165,7 +166,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
165
166
  visitEnumTypeExtensionNode(definition, dependencySet);
166
167
  break;
167
168
  case graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION:
168
- visitInputObjectTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName);
169
+ visitInputObjectTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName_1);
169
170
  break;
170
171
  case graphql.Kind.SCALAR_TYPE_EXTENSION:
171
172
  visitScalarExtensionNode(definition, dependencySet);
@@ -181,16 +182,16 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
181
182
  }
182
183
  var definitionsSet_1 = definitionsByName.get(definitionName_1);
183
184
  definitionsSet_1.add(tslib.__assign(tslib.__assign({}, definition), { fields: [field] }));
184
- if (!dependenciesByDefinitionName.has(definitionName_1)) {
185
- dependenciesByDefinitionName.set(definitionName_1, new Set());
185
+ if (!dependenciesByDefinitionName_1.has(definitionName_1)) {
186
+ dependenciesByDefinitionName_1.set(definitionName_1, new Set());
186
187
  }
187
- var dependencySet_1 = dependenciesByDefinitionName.get(definitionName_1);
188
+ var dependencySet_1 = dependenciesByDefinitionName_1.get(definitionName_1);
188
189
  switch (field.kind) {
189
190
  case graphql.Kind.FIELD_DEFINITION:
190
- visitFieldDefinitionNode(field, dependencySet_1, dependenciesByDefinitionName);
191
+ visitFieldDefinitionNode(field, dependencySet_1, dependenciesByDefinitionName_1);
191
192
  break;
192
193
  case graphql.Kind.INPUT_VALUE_DEFINITION:
193
- visitInputValueDefinitionNode(field, dependencySet_1, dependenciesByDefinitionName);
194
+ visitInputValueDefinitionNode(field, dependencySet_1, dependenciesByDefinitionName_1);
194
195
  break;
195
196
  }
196
197
  }
@@ -214,7 +215,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
214
215
  finally { if (e_4) throw e_4.error; }
215
216
  }
216
217
  var _loop_1 = function (definitionName, definitions) {
217
- var e_13, _a, e_14, _b;
218
+ var e_13, _y, e_14, _z;
218
219
  if (!fileDefinitionMap.has(definitionName)) {
219
220
  fileDefinitionMap.set(definitionName, new Set());
220
221
  }
@@ -228,11 +229,11 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
228
229
  catch (e_13_1) { e_13 = { error: e_13_1 }; }
229
230
  finally {
230
231
  try {
231
- if (definitions_1_1 && !definitions_1_1.done && (_a = definitions_1.return)) _a.call(definitions_1);
232
+ if (definitions_1_1 && !definitions_1_1.done && (_y = definitions_1.return)) _y.call(definitions_1);
232
233
  }
233
234
  finally { if (e_13) throw e_13.error; }
234
235
  }
235
- var dependenciesOfDefinition = dependenciesByDefinitionName.get(definitionName);
236
+ var dependenciesOfDefinition = dependenciesByDefinitionName_1.get(definitionName);
236
237
  try {
237
238
  for (var dependenciesOfDefinition_1 = (e_14 = void 0, tslib.__values(dependenciesOfDefinition)), dependenciesOfDefinition_1_1 = dependenciesOfDefinition_1.next(); !dependenciesOfDefinition_1_1.done; dependenciesOfDefinition_1_1 = dependenciesOfDefinition_1.next()) {
238
239
  var dependencyName = dependenciesOfDefinition_1_1.value;
@@ -245,7 +246,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
245
246
  catch (e_14_1) { e_14 = { error: e_14_1 }; }
246
247
  finally {
247
248
  try {
248
- if (dependenciesOfDefinition_1_1 && !dependenciesOfDefinition_1_1.done && (_b = dependenciesOfDefinition_1.return)) _b.call(dependenciesOfDefinition_1);
249
+ if (dependenciesOfDefinition_1_1 && !dependenciesOfDefinition_1_1.done && (_z = dependenciesOfDefinition_1.return)) _z.call(dependenciesOfDefinition_1);
249
250
  }
250
251
  finally { if (e_14) throw e_14.error; }
251
252
  }
@@ -356,48 +357,65 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
356
357
  }
357
358
  else {
358
359
  var fileDefinitionMap_1 = visitedFiles.get(filePath);
359
- var _loop_2 = function (definitionName) {
360
+ var addDefinition_1 = function (definition, definitionName, definitionSet) {
360
361
  var e_15, _a;
361
- var addDefinition = function (definition) {
362
- var e_16, _a;
363
- definitionsWithDependencies.add(definition);
362
+ if (!definitionSet.has(definition)) {
363
+ definitionSet.add(definition);
364
364
  // Regenerate field exports if some fields are imported after visitor
365
365
  if ('fields' in definition) {
366
366
  var _loop_3 = function (field) {
367
367
  var fieldName = field.name.value;
368
368
  var fieldDefinitionName = definition.name.value + '.' + fieldName;
369
- var allImportedDefinitions_1 = allImportedDefinitionsMap_1.get(definitionName);
370
- allImportedDefinitions_1 === null || allImportedDefinitions_1 === void 0 ? void 0 : allImportedDefinitions_1.forEach(function (importedDefinition) {
369
+ var allImportedDefinitions = allImportedDefinitionsMap_1.get(definitionName);
370
+ allImportedDefinitions === null || allImportedDefinitions === void 0 ? void 0 : allImportedDefinitions.forEach(function (importedDefinition) {
371
371
  if (!fileDefinitionMap_1.has(fieldDefinitionName)) {
372
372
  fileDefinitionMap_1.set(fieldDefinitionName, new Set());
373
373
  }
374
374
  var definitionsWithDeps = fileDefinitionMap_1.get(fieldDefinitionName);
375
- definitionsWithDeps.add(importedDefinition);
375
+ addDefinition_1(importedDefinition, fieldDefinitionName, definitionsWithDeps);
376
+ });
377
+ var newDependencySet = new Set();
378
+ switch (field.kind) {
379
+ case graphql.Kind.FIELD_DEFINITION:
380
+ visitFieldDefinitionNode(field, newDependencySet);
381
+ break;
382
+ case graphql.Kind.INPUT_VALUE_DEFINITION:
383
+ visitInputValueDefinitionNode(field, newDependencySet);
384
+ break;
385
+ }
386
+ newDependencySet.forEach(function (dependencyName) {
387
+ var definitionsInCurrentFile = fileDefinitionMap_1.get(dependencyName);
388
+ definitionsInCurrentFile === null || definitionsInCurrentFile === void 0 ? void 0 : definitionsInCurrentFile.forEach(function (def) { return addDefinition_1(def, definitionName, definitionSet); });
389
+ var definitionsFromImports = allImportedDefinitionsMap_1.get(dependencyName);
390
+ definitionsFromImports === null || definitionsFromImports === void 0 ? void 0 : definitionsFromImports.forEach(function (def) { return addDefinition_1(def, definitionName, definitionSet); });
376
391
  });
377
392
  };
378
393
  try {
379
- for (var _b = (e_16 = void 0, tslib.__values(definition.fields)), _c = _b.next(); !_c.done; _c = _b.next()) {
394
+ for (var _b = tslib.__values(definition.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
380
395
  var field = _c.value;
381
396
  _loop_3(field);
382
397
  }
383
398
  }
384
- catch (e_16_1) { e_16 = { error: e_16_1 }; }
399
+ catch (e_15_1) { e_15 = { error: e_15_1 }; }
385
400
  finally {
386
401
  try {
387
402
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
388
403
  }
389
- finally { if (e_16) throw e_16.error; }
404
+ finally { if (e_15) throw e_15.error; }
390
405
  }
391
406
  }
392
- };
407
+ }
408
+ };
409
+ var _loop_2 = function (definitionName) {
410
+ var e_16, _0;
393
411
  var definitionsWithDependencies = fileDefinitionMap_1.get(definitionName);
394
412
  var allImportedDefinitions = allImportedDefinitionsMap_1.get(definitionName);
395
413
  allImportedDefinitions === null || allImportedDefinitions === void 0 ? void 0 : allImportedDefinitions.forEach(function (importedDefinition) {
396
- addDefinition(importedDefinition);
414
+ addDefinition_1(importedDefinition, definitionName, definitionsWithDependencies);
397
415
  });
398
- var dependenciesOfDefinition = dependenciesByDefinitionName.get(definitionName);
416
+ var dependenciesOfDefinition = dependenciesByDefinitionName_1.get(definitionName);
399
417
  try {
400
- for (var dependenciesOfDefinition_2 = (e_15 = void 0, tslib.__values(dependenciesOfDefinition)), dependenciesOfDefinition_2_1 = dependenciesOfDefinition_2.next(); !dependenciesOfDefinition_2_1.done; dependenciesOfDefinition_2_1 = dependenciesOfDefinition_2.next()) {
418
+ for (var dependenciesOfDefinition_2 = (e_16 = void 0, tslib.__values(dependenciesOfDefinition)), dependenciesOfDefinition_2_1 = dependenciesOfDefinition_2.next(); !dependenciesOfDefinition_2_1.done; dependenciesOfDefinition_2_1 = dependenciesOfDefinition_2.next()) {
401
419
  var dependencyName = dependenciesOfDefinition_2_1.value;
402
420
  // If that dependency cannot be found both in imports and this file, throw an error
403
421
  if (!allImportedDefinitionsMap_1.has(dependencyName) && !definitionsByName.has(dependencyName)) {
@@ -405,16 +423,16 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
405
423
  }
406
424
  var dependencyDefinitionsFromImports = allImportedDefinitionsMap_1.get(dependencyName);
407
425
  dependencyDefinitionsFromImports === null || dependencyDefinitionsFromImports === void 0 ? void 0 : dependencyDefinitionsFromImports.forEach(function (dependencyDefinition) {
408
- addDefinition(dependencyDefinition);
426
+ addDefinition_1(dependencyDefinition, definitionName, definitionsWithDependencies);
409
427
  });
410
428
  }
411
429
  }
412
- catch (e_15_1) { e_15 = { error: e_15_1 }; }
430
+ catch (e_16_1) { e_16 = { error: e_16_1 }; }
413
431
  finally {
414
432
  try {
415
- if (dependenciesOfDefinition_2_1 && !dependenciesOfDefinition_2_1.done && (_a = dependenciesOfDefinition_2.return)) _a.call(dependenciesOfDefinition_2);
433
+ if (dependenciesOfDefinition_2_1 && !dependenciesOfDefinition_2_1.done && (_0 = dependenciesOfDefinition_2.return)) _0.call(dependenciesOfDefinition_2);
416
434
  }
417
- finally { if (e_15) throw e_15.error; }
435
+ finally { if (e_16) throw e_16.error; }
418
436
  }
419
437
  };
420
438
  try {