@graphql-tools/import 6.6.18 → 6.7.0-alpha-b76ec274.0

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.
@@ -1,16 +1,13 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
-
7
- const graphql = require('graphql');
8
- const fs = require('fs');
9
- const path = require('path');
10
- const resolveFrom = _interopDefault(require('resolve-from'));
11
- const process = require('process');
12
- const utils = require('@graphql-tools/utils');
13
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseImportLine = exports.extractImportLines = exports.processImports = exports.extractDependencies = exports.processImport = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_1 = require("graphql");
6
+ const fs_1 = require("fs");
7
+ const path_1 = require("path");
8
+ const resolve_from_1 = tslib_1.__importDefault(require("resolve-from"));
9
+ const process_1 = require("process");
10
+ const utils_1 = require("@graphql-tools/utils");
14
11
  const builtinTypes = ['String', 'Float', 'Int', 'Boolean', 'ID', 'Upload'];
15
12
  const builtinDirectives = [
16
13
  'deprecated',
@@ -32,13 +29,13 @@ const IMPORT_DEFAULT_REGEX = /^import\s+('|")(.*)('|");?$/;
32
29
  * and copies them into the final document.
33
30
  * processImport does not merge the typeDefs as designed ( https://github.com/ardatan/graphql-tools/issues/2980#issuecomment-1003692728 )
34
31
  */
35
- function processImport(filePath, cwd = process.cwd(), predefinedImports = {}, visitedFiles = new Map()) {
36
- const set = visitFile(filePath, path.join(cwd + '/root.graphql'), visitedFiles, predefinedImports);
32
+ function processImport(filePath, cwd = (0, process_1.cwd)(), predefinedImports = {}, visitedFiles = new Map()) {
33
+ const set = visitFile(filePath, (0, path_1.join)(cwd + '/root.graphql'), visitedFiles, predefinedImports);
37
34
  const definitionStrSet = new Set();
38
35
  let definitionsStr = '';
39
36
  for (const defs of set.values()) {
40
37
  for (const def of defs) {
41
- const defStr = graphql.print(def);
38
+ const defStr = (0, graphql_1.print)(def);
42
39
  if (!definitionStrSet.has(defStr)) {
43
40
  definitionStrSet.add(defStr);
44
41
  definitionsStr += defStr + '\n';
@@ -46,18 +43,19 @@ function processImport(filePath, cwd = process.cwd(), predefinedImports = {}, vi
46
43
  }
47
44
  }
48
45
  return (definitionsStr === null || definitionsStr === void 0 ? void 0 : definitionsStr.length)
49
- ? graphql.parse(new graphql.Source(definitionsStr, filePath))
46
+ ? (0, graphql_1.parse)(new graphql_1.Source(definitionsStr, filePath))
50
47
  : {
51
- kind: graphql.Kind.DOCUMENT,
48
+ kind: graphql_1.Kind.DOCUMENT,
52
49
  definitions: [],
53
50
  };
54
51
  }
52
+ exports.processImport = processImport;
55
53
  function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
56
- if (!path.isAbsolute(filePath) && !(filePath in predefinedImports)) {
54
+ if (!(0, path_1.isAbsolute)(filePath) && !(filePath in predefinedImports)) {
57
55
  filePath = resolveFilePath(cwd, filePath);
58
56
  }
59
57
  if (!visitedFiles.has(filePath)) {
60
- const fileContent = filePath in predefinedImports ? predefinedImports[filePath] : fs.readFileSync(filePath, 'utf8');
58
+ const fileContent = filePath in predefinedImports ? predefinedImports[filePath] : (0, fs_1.readFileSync)(filePath, 'utf8');
61
59
  const { importLines, otherLines } = extractImportLines(fileContent);
62
60
  const { definitionsByName, dependenciesByDefinitionName } = extractDependencies(filePath, otherLines);
63
61
  const fileDefinitionMap = getFileDefinitionMap(definitionsByName, dependenciesByDefinitionName);
@@ -95,11 +93,11 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
95
93
  });
96
94
  const newDependencySet = new Set();
97
95
  switch (field.kind) {
98
- case graphql.Kind.FIELD_DEFINITION:
99
- visitFieldDefinitionNode(field, newDependencySet);
96
+ case graphql_1.Kind.FIELD_DEFINITION:
97
+ visitFieldDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
100
98
  break;
101
- case graphql.Kind.INPUT_VALUE_DEFINITION:
102
- visitInputValueDefinitionNode(field, newDependencySet);
99
+ case graphql_1.Kind.INPUT_VALUE_DEFINITION:
100
+ visitInputValueDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
103
101
  break;
104
102
  }
105
103
  newDependencySet.forEach(dependencyName => {
@@ -155,7 +153,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
155
153
  function extractDependencies(filePath, fileContents) {
156
154
  const definitionsByName = new Map();
157
155
  const dependenciesByDefinitionName = new Map();
158
- const { document } = utils.parseGraphQLSDL(filePath, fileContents, {
156
+ const { document } = (0, utils_1.parseGraphQLSDL)(filePath, fileContents, {
159
157
  noLocation: true,
160
158
  });
161
159
  for (const definition of document.definitions) {
@@ -166,10 +164,11 @@ function extractDependencies(filePath, fileContents) {
166
164
  dependenciesByDefinitionName,
167
165
  };
168
166
  }
167
+ exports.extractDependencies = extractDependencies;
169
168
  function visitDefinition(definition, definitionsByName, dependenciesByDefinitionName) {
170
169
  var _a;
171
170
  // TODO: handle queries without names
172
- if ('name' in definition || definition.kind === graphql.Kind.SCHEMA_DEFINITION) {
171
+ if ('name' in definition || definition.kind === graphql_1.Kind.SCHEMA_DEFINITION) {
173
172
  const definitionName = 'name' in definition && definition.name ? definition.name.value : 'schema';
174
173
  if (!definitionsByName.has(definitionName)) {
175
174
  definitionsByName.set(definitionName, new Set());
@@ -182,52 +181,52 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
182
181
  dependenciesByDefinitionName.set(definitionName, dependencySet);
183
182
  }
184
183
  switch (definition.kind) {
185
- case graphql.Kind.OPERATION_DEFINITION:
184
+ case graphql_1.Kind.OPERATION_DEFINITION:
186
185
  visitOperationDefinitionNode(definition, dependencySet);
187
186
  break;
188
- case graphql.Kind.FRAGMENT_DEFINITION:
187
+ case graphql_1.Kind.FRAGMENT_DEFINITION:
189
188
  visitFragmentDefinitionNode(definition, dependencySet);
190
189
  break;
191
- case graphql.Kind.OBJECT_TYPE_DEFINITION:
190
+ case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
192
191
  visitObjectTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
193
192
  break;
194
- case graphql.Kind.INTERFACE_TYPE_DEFINITION:
193
+ case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
195
194
  visitInterfaceTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
196
195
  break;
197
- case graphql.Kind.UNION_TYPE_DEFINITION:
196
+ case graphql_1.Kind.UNION_TYPE_DEFINITION:
198
197
  visitUnionTypeDefinitionNode(definition, dependencySet);
199
198
  break;
200
- case graphql.Kind.ENUM_TYPE_DEFINITION:
199
+ case graphql_1.Kind.ENUM_TYPE_DEFINITION:
201
200
  visitEnumTypeDefinitionNode(definition, dependencySet);
202
201
  break;
203
- case graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION:
204
- visitInputObjectTypeDefinitionNode(definition, dependencySet);
202
+ case graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
203
+ visitInputObjectTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
205
204
  break;
206
- case graphql.Kind.DIRECTIVE_DEFINITION:
207
- visitDirectiveDefinitionNode(definition, dependencySet);
205
+ case graphql_1.Kind.DIRECTIVE_DEFINITION:
206
+ visitDirectiveDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
208
207
  break;
209
- case graphql.Kind.SCALAR_TYPE_DEFINITION:
208
+ case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
210
209
  visitScalarDefinitionNode(definition, dependencySet);
211
210
  break;
212
- case graphql.Kind.SCHEMA_DEFINITION:
211
+ case graphql_1.Kind.SCHEMA_DEFINITION:
213
212
  visitSchemaDefinitionNode(definition, dependencySet);
214
213
  break;
215
- case graphql.Kind.OBJECT_TYPE_EXTENSION:
214
+ case graphql_1.Kind.OBJECT_TYPE_EXTENSION:
216
215
  visitObjectTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName);
217
216
  break;
218
- case graphql.Kind.INTERFACE_TYPE_EXTENSION:
217
+ case graphql_1.Kind.INTERFACE_TYPE_EXTENSION:
219
218
  visitInterfaceTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName);
220
219
  break;
221
- case graphql.Kind.UNION_TYPE_EXTENSION:
220
+ case graphql_1.Kind.UNION_TYPE_EXTENSION:
222
221
  visitUnionTypeExtensionNode(definition, dependencySet);
223
222
  break;
224
- case graphql.Kind.ENUM_TYPE_EXTENSION:
223
+ case graphql_1.Kind.ENUM_TYPE_EXTENSION:
225
224
  visitEnumTypeExtensionNode(definition, dependencySet);
226
225
  break;
227
- case graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION:
228
- visitInputObjectTypeExtensionNode(definition, dependencySet);
226
+ case graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION:
227
+ visitInputObjectTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName);
229
228
  break;
230
- case graphql.Kind.SCALAR_TYPE_EXTENSION:
229
+ case graphql_1.Kind.SCALAR_TYPE_EXTENSION:
231
230
  visitScalarExtensionNode(definition, dependencySet);
232
231
  break;
233
232
  }
@@ -247,11 +246,11 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
247
246
  dependenciesByDefinitionName.set(definitionName, dependencySet);
248
247
  }
249
248
  switch (field.kind) {
250
- case graphql.Kind.FIELD_DEFINITION:
251
- visitFieldDefinitionNode(field, dependencySet);
249
+ case graphql_1.Kind.FIELD_DEFINITION:
250
+ visitFieldDefinitionNode(field, dependencySet, dependenciesByDefinitionName);
252
251
  break;
253
- case graphql.Kind.INPUT_VALUE_DEFINITION:
254
- visitInputValueDefinitionNode(field, dependencySet);
252
+ case graphql_1.Kind.INPUT_VALUE_DEFINITION:
253
+ visitInputValueDefinitionNode(field, dependencySet, dependenciesByDefinitionName);
255
254
  break;
256
255
  }
257
256
  }
@@ -332,6 +331,7 @@ function processImports(importLines, filePath, visitedFiles, predefinedImports)
332
331
  }
333
332
  return { allImportedDefinitionsMap, potentialTransitiveDefinitionsMap };
334
333
  }
334
+ exports.processImports = processImports;
335
335
  /**
336
336
  * Splits the contents of a GraphQL file into lines that are imports
337
337
  * and other lines which define the actual GraphQL document.
@@ -350,6 +350,7 @@ function extractImportLines(fileContent) {
350
350
  }
351
351
  return { importLines, otherLines };
352
352
  }
353
+ exports.extractImportLines = extractImportLines;
353
354
  /**
354
355
  * Parses an import line, returning a list of entities imported and the file
355
356
  * from which they are imported.
@@ -384,15 +385,16 @@ function parseImportLine(importLine) {
384
385
  # import [Type].[Field] from [File]
385
386
  `);
386
387
  }
388
+ exports.parseImportLine = parseImportLine;
387
389
  function resolveFilePath(filePath, importFrom) {
388
- const dirName = path.dirname(filePath);
390
+ const dirName = (0, path_1.dirname)(filePath);
389
391
  try {
390
- const fullPath = path.join(dirName, importFrom);
391
- return fs.realpathSync(fullPath);
392
+ const fullPath = (0, path_1.join)(dirName, importFrom);
393
+ return (0, fs_1.realpathSync)(fullPath);
392
394
  }
393
395
  catch (e) {
394
396
  if (e.code === 'ENOENT') {
395
- return resolveFrom(dirName, importFrom);
397
+ return (0, resolve_from_1.default)(dirName, importFrom);
396
398
  }
397
399
  throw e;
398
400
  }
@@ -406,13 +408,13 @@ function visitOperationDefinitionNode(node, dependencySet) {
406
408
  }
407
409
  function visitSelectionNode(node, dependencySet) {
408
410
  switch (node.kind) {
409
- case graphql.Kind.FIELD:
411
+ case graphql_1.Kind.FIELD:
410
412
  visitFieldNode(node, dependencySet);
411
413
  break;
412
- case graphql.Kind.FRAGMENT_SPREAD:
414
+ case graphql_1.Kind.FRAGMENT_SPREAD:
413
415
  visitFragmentSpreadNode(node, dependencySet);
414
416
  break;
415
- case graphql.Kind.INLINE_FRAGMENT:
417
+ case graphql_1.Kind.INLINE_FRAGMENT:
416
418
  visitInlineFragmentNode(node, dependencySet);
417
419
  break;
418
420
  }
@@ -460,7 +462,7 @@ function visitObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefini
460
462
  const typeName = node.name.value;
461
463
  dependencySet.add(typeName);
462
464
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
463
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
465
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
464
466
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
465
467
  }
466
468
  function visitDirectiveNode(node, dependencySet) {
@@ -471,28 +473,28 @@ function visitDirectiveNode(node, dependencySet) {
471
473
  }
472
474
  function visitFieldDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
473
475
  var _a, _b;
474
- (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
476
+ (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
475
477
  (_b = node.directives) === null || _b === void 0 ? void 0 : _b.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
476
- visitTypeNode(node.type, dependencySet);
478
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
477
479
  }
478
480
  function visitTypeNode(node, dependencySet, dependenciesByDefinitionName) {
479
481
  switch (node.kind) {
480
- case graphql.Kind.LIST_TYPE:
481
- visitListTypeNode(node, dependencySet);
482
+ case graphql_1.Kind.LIST_TYPE:
483
+ visitListTypeNode(node, dependencySet, dependenciesByDefinitionName);
482
484
  break;
483
- case graphql.Kind.NON_NULL_TYPE:
484
- visitNonNullTypeNode(node, dependencySet);
485
+ case graphql_1.Kind.NON_NULL_TYPE:
486
+ visitNonNullTypeNode(node, dependencySet, dependenciesByDefinitionName);
485
487
  break;
486
- case graphql.Kind.NAMED_TYPE:
488
+ case graphql_1.Kind.NAMED_TYPE:
487
489
  visitNamedTypeNode(node, dependencySet);
488
490
  break;
489
491
  }
490
492
  }
491
493
  function visitListTypeNode(node, dependencySet, dependenciesByDefinitionName) {
492
- visitTypeNode(node.type, dependencySet);
494
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
493
495
  }
494
496
  function visitNonNullTypeNode(node, dependencySet, dependenciesByDefinitionName) {
495
- visitTypeNode(node.type, dependencySet);
497
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
496
498
  }
497
499
  function visitNamedTypeNode(node, dependencySet) {
498
500
  const namedTypeName = node.name.value;
@@ -503,14 +505,14 @@ function visitNamedTypeNode(node, dependencySet) {
503
505
  function visitInputValueDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
504
506
  var _a;
505
507
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
506
- visitTypeNode(node.type, dependencySet);
508
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
507
509
  }
508
510
  function visitInterfaceTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
509
511
  var _a, _b;
510
512
  const typeName = node.name.value;
511
513
  dependencySet.add(typeName);
512
514
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
513
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
515
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
514
516
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
515
517
  }
516
518
  function visitUnionTypeDefinitionNode(node, dependencySet) {
@@ -528,19 +530,19 @@ function visitInputObjectTypeDefinitionNode(node, dependencySet, dependenciesByD
528
530
  var _a, _b;
529
531
  dependencySet.add(node.name.value);
530
532
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
531
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
533
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
532
534
  }
533
535
  function visitDirectiveDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
534
536
  var _a;
535
537
  dependencySet.add(node.name.value);
536
- (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
538
+ (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
537
539
  }
538
540
  function visitObjectTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
539
541
  var _a, _b;
540
542
  const typeName = node.name.value;
541
543
  dependencySet.add(typeName);
542
544
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
543
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
545
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
544
546
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
545
547
  }
546
548
  function visitInterfaceTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
@@ -548,7 +550,7 @@ function visitInterfaceTypeExtensionNode(node, dependencySet, dependenciesByDefi
548
550
  const typeName = node.name.value;
549
551
  dependencySet.add(typeName);
550
552
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
551
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
553
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
552
554
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
553
555
  }
554
556
  function visitUnionTypeExtensionNode(node, dependencySet) {
@@ -566,7 +568,7 @@ function visitInputObjectTypeExtensionNode(node, dependencySet, dependenciesByDe
566
568
  var _a, _b;
567
569
  dependencySet.add(node.name.value);
568
570
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
569
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
571
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
570
572
  }
571
573
  function visitSchemaDefinitionNode(node, dependencySet) {
572
574
  var _a;
@@ -587,9 +589,3 @@ function visitScalarExtensionNode(node, dependencySet) {
587
589
  function visitOperationTypeDefinitionNode(node, dependencySet) {
588
590
  visitNamedTypeNode(node.type, dependencySet);
589
591
  }
590
-
591
- exports.extractDependencies = extractDependencies;
592
- exports.extractImportLines = extractImportLines;
593
- exports.parseImportLine = parseImportLine;
594
- exports.processImport = processImport;
595
- exports.processImports = processImports;
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -1,10 +1,9 @@
1
- import { print, parse, Source, Kind } from 'graphql';
1
+ import { Source, parse, Kind, print, } from 'graphql';
2
2
  import { readFileSync, realpathSync } from 'fs';
3
- import { join, isAbsolute, dirname } from 'path';
3
+ import { dirname, join, isAbsolute } from 'path';
4
4
  import resolveFrom from 'resolve-from';
5
- import { cwd } from 'process';
5
+ import { cwd as cwdFactory } from 'process';
6
6
  import { parseGraphQLSDL } from '@graphql-tools/utils';
7
-
8
7
  const builtinTypes = ['String', 'Float', 'Int', 'Boolean', 'ID', 'Upload'];
9
8
  const builtinDirectives = [
10
9
  'deprecated',
@@ -26,8 +25,8 @@ const IMPORT_DEFAULT_REGEX = /^import\s+('|")(.*)('|");?$/;
26
25
  * and copies them into the final document.
27
26
  * processImport does not merge the typeDefs as designed ( https://github.com/ardatan/graphql-tools/issues/2980#issuecomment-1003692728 )
28
27
  */
29
- function processImport(filePath, cwd$1 = cwd(), predefinedImports = {}, visitedFiles = new Map()) {
30
- const set = visitFile(filePath, join(cwd$1 + '/root.graphql'), visitedFiles, predefinedImports);
28
+ export function processImport(filePath, cwd = cwdFactory(), predefinedImports = {}, visitedFiles = new Map()) {
29
+ const set = visitFile(filePath, join(cwd + '/root.graphql'), visitedFiles, predefinedImports);
31
30
  const definitionStrSet = new Set();
32
31
  let definitionsStr = '';
33
32
  for (const defs of set.values()) {
@@ -90,10 +89,10 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
90
89
  const newDependencySet = new Set();
91
90
  switch (field.kind) {
92
91
  case Kind.FIELD_DEFINITION:
93
- visitFieldDefinitionNode(field, newDependencySet);
92
+ visitFieldDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
94
93
  break;
95
94
  case Kind.INPUT_VALUE_DEFINITION:
96
- visitInputValueDefinitionNode(field, newDependencySet);
95
+ visitInputValueDefinitionNode(field, newDependencySet, dependenciesByDefinitionName);
97
96
  break;
98
97
  }
99
98
  newDependencySet.forEach(dependencyName => {
@@ -146,7 +145,7 @@ function visitFile(filePath, cwd, visitedFiles, predefinedImports) {
146
145
  }
147
146
  return visitedFiles.get(filePath);
148
147
  }
149
- function extractDependencies(filePath, fileContents) {
148
+ export function extractDependencies(filePath, fileContents) {
150
149
  const definitionsByName = new Map();
151
150
  const dependenciesByDefinitionName = new Map();
152
151
  const { document } = parseGraphQLSDL(filePath, fileContents, {
@@ -195,10 +194,10 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
195
194
  visitEnumTypeDefinitionNode(definition, dependencySet);
196
195
  break;
197
196
  case Kind.INPUT_OBJECT_TYPE_DEFINITION:
198
- visitInputObjectTypeDefinitionNode(definition, dependencySet);
197
+ visitInputObjectTypeDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
199
198
  break;
200
199
  case Kind.DIRECTIVE_DEFINITION:
201
- visitDirectiveDefinitionNode(definition, dependencySet);
200
+ visitDirectiveDefinitionNode(definition, dependencySet, dependenciesByDefinitionName);
202
201
  break;
203
202
  case Kind.SCALAR_TYPE_DEFINITION:
204
203
  visitScalarDefinitionNode(definition, dependencySet);
@@ -219,7 +218,7 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
219
218
  visitEnumTypeExtensionNode(definition, dependencySet);
220
219
  break;
221
220
  case Kind.INPUT_OBJECT_TYPE_EXTENSION:
222
- visitInputObjectTypeExtensionNode(definition, dependencySet);
221
+ visitInputObjectTypeExtensionNode(definition, dependencySet, dependenciesByDefinitionName);
223
222
  break;
224
223
  case Kind.SCALAR_TYPE_EXTENSION:
225
224
  visitScalarExtensionNode(definition, dependencySet);
@@ -242,10 +241,10 @@ function visitDefinition(definition, definitionsByName, dependenciesByDefinition
242
241
  }
243
242
  switch (field.kind) {
244
243
  case Kind.FIELD_DEFINITION:
245
- visitFieldDefinitionNode(field, dependencySet);
244
+ visitFieldDefinitionNode(field, dependencySet, dependenciesByDefinitionName);
246
245
  break;
247
246
  case Kind.INPUT_VALUE_DEFINITION:
248
- visitInputValueDefinitionNode(field, dependencySet);
247
+ visitInputValueDefinitionNode(field, dependencySet, dependenciesByDefinitionName);
249
248
  break;
250
249
  }
251
250
  }
@@ -277,7 +276,7 @@ function getFileDefinitionMap(definitionsByName, dependenciesByDefinitionName) {
277
276
  }
278
277
  return fileDefinitionMap;
279
278
  }
280
- function processImports(importLines, filePath, visitedFiles, predefinedImports) {
279
+ export function processImports(importLines, filePath, visitedFiles, predefinedImports) {
281
280
  const potentialTransitiveDefinitionsMap = new Map();
282
281
  const allImportedDefinitionsMap = new Map();
283
282
  for (const line of importLines) {
@@ -330,7 +329,7 @@ function processImports(importLines, filePath, visitedFiles, predefinedImports)
330
329
  * Splits the contents of a GraphQL file into lines that are imports
331
330
  * and other lines which define the actual GraphQL document.
332
331
  */
333
- function extractImportLines(fileContent) {
332
+ export function extractImportLines(fileContent) {
334
333
  const importLines = [];
335
334
  let otherLines = '';
336
335
  for (const line of fileContent.split('\n')) {
@@ -350,7 +349,7 @@ function extractImportLines(fileContent) {
350
349
  *
351
350
  * Throws if the import line does not have a correct format.
352
351
  */
353
- function parseImportLine(importLine) {
352
+ export function parseImportLine(importLine) {
354
353
  let regexMatch = importLine.match(IMPORT_FROM_REGEX);
355
354
  if (regexMatch != null) {
356
355
  // Apply regex to import line
@@ -454,7 +453,7 @@ function visitObjectTypeDefinitionNode(node, dependencySet, dependenciesByDefini
454
453
  const typeName = node.name.value;
455
454
  dependencySet.add(typeName);
456
455
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
457
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
456
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
458
457
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
459
458
  }
460
459
  function visitDirectiveNode(node, dependencySet) {
@@ -465,17 +464,17 @@ function visitDirectiveNode(node, dependencySet) {
465
464
  }
466
465
  function visitFieldDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
467
466
  var _a, _b;
468
- (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
467
+ (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
469
468
  (_b = node.directives) === null || _b === void 0 ? void 0 : _b.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
470
- visitTypeNode(node.type, dependencySet);
469
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
471
470
  }
472
471
  function visitTypeNode(node, dependencySet, dependenciesByDefinitionName) {
473
472
  switch (node.kind) {
474
473
  case Kind.LIST_TYPE:
475
- visitListTypeNode(node, dependencySet);
474
+ visitListTypeNode(node, dependencySet, dependenciesByDefinitionName);
476
475
  break;
477
476
  case Kind.NON_NULL_TYPE:
478
- visitNonNullTypeNode(node, dependencySet);
477
+ visitNonNullTypeNode(node, dependencySet, dependenciesByDefinitionName);
479
478
  break;
480
479
  case Kind.NAMED_TYPE:
481
480
  visitNamedTypeNode(node, dependencySet);
@@ -483,10 +482,10 @@ function visitTypeNode(node, dependencySet, dependenciesByDefinitionName) {
483
482
  }
484
483
  }
485
484
  function visitListTypeNode(node, dependencySet, dependenciesByDefinitionName) {
486
- visitTypeNode(node.type, dependencySet);
485
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
487
486
  }
488
487
  function visitNonNullTypeNode(node, dependencySet, dependenciesByDefinitionName) {
489
- visitTypeNode(node.type, dependencySet);
488
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
490
489
  }
491
490
  function visitNamedTypeNode(node, dependencySet) {
492
491
  const namedTypeName = node.name.value;
@@ -497,14 +496,14 @@ function visitNamedTypeNode(node, dependencySet) {
497
496
  function visitInputValueDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
498
497
  var _a;
499
498
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
500
- visitTypeNode(node.type, dependencySet);
499
+ visitTypeNode(node.type, dependencySet, dependenciesByDefinitionName);
501
500
  }
502
501
  function visitInterfaceTypeDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
503
502
  var _a, _b;
504
503
  const typeName = node.name.value;
505
504
  dependencySet.add(typeName);
506
505
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
507
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
506
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
508
507
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
509
508
  }
510
509
  function visitUnionTypeDefinitionNode(node, dependencySet) {
@@ -522,19 +521,19 @@ function visitInputObjectTypeDefinitionNode(node, dependencySet, dependenciesByD
522
521
  var _a, _b;
523
522
  dependencySet.add(node.name.value);
524
523
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
525
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
524
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
526
525
  }
527
526
  function visitDirectiveDefinitionNode(node, dependencySet, dependenciesByDefinitionName) {
528
527
  var _a;
529
528
  dependencySet.add(node.name.value);
530
- (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
529
+ (_a = node.arguments) === null || _a === void 0 ? void 0 : _a.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
531
530
  }
532
531
  function visitObjectTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
533
532
  var _a, _b;
534
533
  const typeName = node.name.value;
535
534
  dependencySet.add(typeName);
536
535
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
537
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
536
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
538
537
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
539
538
  }
540
539
  function visitInterfaceTypeExtensionNode(node, dependencySet, dependenciesByDefinitionName) {
@@ -542,7 +541,7 @@ function visitInterfaceTypeExtensionNode(node, dependencySet, dependenciesByDefi
542
541
  const typeName = node.name.value;
543
542
  dependencySet.add(typeName);
544
543
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
545
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet));
544
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(fieldDefinitionNode => visitFieldDefinitionNode(fieldDefinitionNode, dependencySet, dependenciesByDefinitionName));
546
545
  addInterfaceDependencies(node, dependencySet, dependenciesByDefinitionName);
547
546
  }
548
547
  function visitUnionTypeExtensionNode(node, dependencySet) {
@@ -560,7 +559,7 @@ function visitInputObjectTypeExtensionNode(node, dependencySet, dependenciesByDe
560
559
  var _a, _b;
561
560
  dependencySet.add(node.name.value);
562
561
  (_a = node.directives) === null || _a === void 0 ? void 0 : _a.forEach(directiveNode => visitDirectiveNode(directiveNode, dependencySet));
563
- (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet));
562
+ (_b = node.fields) === null || _b === void 0 ? void 0 : _b.forEach(inputValueDefinitionNode => visitInputValueDefinitionNode(inputValueDefinitionNode, dependencySet, dependenciesByDefinitionName));
564
563
  }
565
564
  function visitSchemaDefinitionNode(node, dependencySet) {
566
565
  var _a;
@@ -581,5 +580,3 @@ function visitScalarExtensionNode(node, dependencySet) {
581
580
  function visitOperationTypeDefinitionNode(node, dependencySet) {
582
581
  visitNamedTypeNode(node.type, dependencySet);
583
582
  }
584
-
585
- export { extractDependencies, extractImportLines, parseImportLine, processImport, processImports };
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@graphql-tools/import",
3
- "version": "6.6.18",
3
+ "version": "6.7.0-alpha-b76ec274.0",
4
4
  "description": "A set of utils for faster development of GraphQL tools",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
7
7
  "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
8
8
  },
9
9
  "dependencies": {
10
- "@graphql-tools/utils": "8.7.0",
10
+ "@graphql-tools/utils": "8.8.0-alpha-b76ec274.0",
11
11
  "resolve-from": "5.0.0",
12
12
  "tslib": "^2.4.0"
13
13
  },
@@ -18,21 +18,42 @@
18
18
  },
19
19
  "author": "Dotan Simha <dotansimha@gmail.com>",
20
20
  "license": "MIT",
21
- "main": "index.js",
22
- "module": "index.mjs",
23
- "typings": "index.d.ts",
21
+ "main": "cjs/index.js",
22
+ "module": "esm/index.js",
23
+ "typings": "typings/index.d.ts",
24
24
  "typescript": {
25
- "definition": "index.d.ts"
25
+ "definition": "typings/index.d.ts"
26
26
  },
27
+ "type": "module",
27
28
  "exports": {
28
29
  ".": {
29
- "require": "./index.js",
30
- "import": "./index.mjs"
30
+ "require": {
31
+ "types": "./typings/index.d.ts",
32
+ "default": "./cjs/index.js"
33
+ },
34
+ "import": {
35
+ "types": "./typings/index.d.ts",
36
+ "default": "./esm/index.js"
37
+ },
38
+ "default": {
39
+ "types": "./typings/index.d.ts",
40
+ "default": "./esm/index.js"
41
+ }
31
42
  },
32
43
  "./*": {
33
- "require": "./*.js",
34
- "import": "./*.mjs"
44
+ "require": {
45
+ "types": "./typings/*.d.ts",
46
+ "default": "./cjs/*.js"
47
+ },
48
+ "import": {
49
+ "types": "./typings/*.d.ts",
50
+ "default": "./esm/*.js"
51
+ },
52
+ "default": {
53
+ "types": "./typings/*.d.ts",
54
+ "default": "./esm/*.js"
55
+ }
35
56
  },
36
57
  "./package.json": "./package.json"
37
58
  }
38
- }
59
+ }
File without changes
package/README.md DELETED
@@ -1,5 +0,0 @@
1
- Check API Reference for more information about this package;
2
- https://www.graphql-tools.com/docs/api/modules/import_src
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