graphql 16.14.0 → 16.14.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/error/GraphQLError.d.ts +151 -15
- package/error/GraphQLError.js +143 -12
- package/error/GraphQLError.mjs +143 -12
- package/error/index.d.ts +6 -0
- package/error/index.mjs +6 -0
- package/error/locatedError.d.ts +20 -0
- package/error/locatedError.js +21 -0
- package/error/locatedError.mjs +20 -0
- package/error/syntaxError.d.ts +15 -0
- package/error/syntaxError.js +16 -0
- package/error/syntaxError.mjs +15 -0
- package/execution/collectFields.js +6 -0
- package/execution/collectFields.mjs +6 -0
- package/execution/execute.d.ts +211 -12
- package/execution/execute.js +214 -23
- package/execution/execute.mjs +213 -23
- package/execution/index.d.ts +6 -0
- package/execution/index.mjs +6 -0
- package/execution/mapAsyncIterator.d.ts +2 -0
- package/execution/mapAsyncIterator.js +2 -0
- package/execution/mapAsyncIterator.mjs +2 -0
- package/execution/subscribe.d.ts +195 -5
- package/execution/subscribe.js +154 -11
- package/execution/subscribe.mjs +153 -11
- package/execution/values.d.ts +167 -10
- package/execution/values.js +149 -5
- package/execution/values.mjs +148 -5
- package/graphql.d.ts +163 -41
- package/graphql.js +126 -4
- package/graphql.mjs +131 -41
- package/index.d.ts +11 -17
- package/index.mjs +13 -19
- package/jsutils/Maybe.d.ts +5 -1
- package/jsutils/ObjMap.d.ts +4 -0
- package/jsutils/Path.d.ts +30 -0
- package/jsutils/Path.js +29 -0
- package/jsutils/Path.mjs +29 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js +1 -0
- package/jsutils/devAssert.mjs +1 -0
- package/jsutils/didYouMean.d.ts +4 -1
- package/jsutils/didYouMean.js +4 -1
- package/jsutils/didYouMean.mjs +4 -1
- package/jsutils/groupBy.d.ts +2 -0
- package/jsutils/groupBy.js +2 -0
- package/jsutils/groupBy.mjs +2 -0
- package/jsutils/identityFunc.d.ts +2 -0
- package/jsutils/identityFunc.js +2 -0
- package/jsutils/identityFunc.mjs +2 -0
- package/jsutils/inspect.d.ts +2 -0
- package/jsutils/inspect.js +2 -0
- package/jsutils/inspect.mjs +2 -0
- package/jsutils/instanceOf.d.ts +2 -0
- package/jsutils/instanceOf.js +2 -0
- package/jsutils/instanceOf.mjs +2 -0
- package/jsutils/invariant.d.ts +1 -0
- package/jsutils/invariant.js +1 -0
- package/jsutils/invariant.mjs +1 -0
- package/jsutils/isAsyncIterable.d.ts +2 -0
- package/jsutils/isAsyncIterable.js +2 -0
- package/jsutils/isAsyncIterable.mjs +2 -0
- package/jsutils/isIterableObject.d.ts +6 -5
- package/jsutils/isIterableObject.js +6 -5
- package/jsutils/isIterableObject.mjs +6 -5
- package/jsutils/isObjectLike.d.ts +2 -0
- package/jsutils/isObjectLike.js +2 -0
- package/jsutils/isObjectLike.mjs +2 -0
- package/jsutils/isPromise.d.ts +2 -0
- package/jsutils/isPromise.js +2 -0
- package/jsutils/isPromise.mjs +2 -0
- package/jsutils/keyMap.d.ts +7 -14
- package/jsutils/keyMap.js +7 -14
- package/jsutils/keyMap.mjs +7 -14
- package/jsutils/keyValMap.d.ts +9 -6
- package/jsutils/keyValMap.js +9 -6
- package/jsutils/keyValMap.mjs +9 -6
- package/jsutils/mapValue.d.ts +2 -0
- package/jsutils/mapValue.js +2 -0
- package/jsutils/mapValue.mjs +2 -0
- package/jsutils/memoize3.d.ts +2 -0
- package/jsutils/memoize3.js +2 -0
- package/jsutils/memoize3.mjs +2 -0
- package/jsutils/naturalCompare.d.ts +2 -0
- package/jsutils/naturalCompare.js +2 -0
- package/jsutils/naturalCompare.mjs +2 -0
- package/jsutils/printPathArray.d.ts +2 -0
- package/jsutils/printPathArray.js +2 -0
- package/jsutils/printPathArray.mjs +2 -0
- package/jsutils/promiseForObject.d.ts +2 -0
- package/jsutils/promiseForObject.js +2 -0
- package/jsutils/promiseForObject.mjs +2 -0
- package/jsutils/promiseReduce.d.ts +2 -0
- package/jsutils/promiseReduce.js +2 -0
- package/jsutils/promiseReduce.mjs +2 -0
- package/jsutils/suggestionList.d.ts +2 -0
- package/jsutils/suggestionList.js +4 -0
- package/jsutils/suggestionList.mjs +4 -0
- package/jsutils/toError.d.ts +2 -0
- package/jsutils/toError.js +2 -0
- package/jsutils/toError.mjs +2 -0
- package/jsutils/toObjMap.d.ts +1 -0
- package/jsutils/toObjMap.js +1 -0
- package/jsutils/toObjMap.mjs +1 -0
- package/language/ast.d.ts +412 -54
- package/language/ast.js +95 -38
- package/language/ast.mjs +95 -38
- package/language/blockString.d.ts +1 -3
- package/language/blockString.js +1 -3
- package/language/blockString.mjs +1 -3
- package/language/directiveLocation.d.ts +28 -8
- package/language/directiveLocation.js +9 -6
- package/language/directiveLocation.mjs +9 -6
- package/language/index.d.ts +6 -0
- package/language/index.mjs +6 -0
- package/language/kinds.d.ts +57 -18
- package/language/kinds.js +9 -6
- package/language/kinds.mjs +9 -6
- package/language/lexer.d.ts +47 -14
- package/language/lexer.js +71 -13
- package/language/lexer.mjs +70 -13
- package/language/location.d.ts +16 -3
- package/language/location.js +14 -3
- package/language/location.mjs +14 -3
- package/language/parser.d.ts +236 -13
- package/language/parser.js +224 -0
- package/language/parser.mjs +224 -3
- package/language/predicates.d.ts +169 -0
- package/language/predicates.js +170 -0
- package/language/predicates.mjs +180 -0
- package/language/printLocation.d.ts +28 -0
- package/language/printLocation.js +29 -0
- package/language/printLocation.mjs +28 -0
- package/language/printString.d.ts +2 -0
- package/language/printString.js +5 -1
- package/language/printString.mjs +5 -1
- package/language/printer.d.ts +12 -0
- package/language/printer.js +19 -0
- package/language/printer.mjs +18 -0
- package/language/schemaCoordinateLexer.d.ts +8 -6
- package/language/schemaCoordinateLexer.js +10 -6
- package/language/schemaCoordinateLexer.mjs +10 -6
- package/language/source.d.ts +28 -0
- package/language/source.js +32 -0
- package/language/source.mjs +31 -0
- package/language/tokenKind.d.ts +30 -3
- package/language/tokenKind.js +8 -3
- package/language/tokenKind.mjs +8 -3
- package/language/visitor.d.ts +200 -72
- package/language/visitor.js +122 -50
- package/language/visitor.mjs +122 -54
- package/package.json +1 -1
- package/subscription/index.d.ts +9 -3
- package/subscription/index.mjs +9 -3
- package/type/assertName.d.ts +18 -1
- package/type/assertName.js +19 -1
- package/type/assertName.mjs +18 -1
- package/type/definition.d.ts +2540 -79
- package/type/definition.js +2214 -61
- package/type/definition.mjs +2241 -60
- package/type/directives.d.ts +193 -18
- package/type/directives.js +196 -19
- package/type/directives.mjs +196 -19
- package/type/index.d.ts +6 -0
- package/type/index.mjs +6 -0
- package/type/introspection.d.ts +36 -0
- package/type/introspection.js +33 -0
- package/type/introspection.mjs +41 -0
- package/type/scalars.d.ts +29 -2
- package/type/scalars.js +37 -2
- package/type/scalars.mjs +36 -2
- package/type/schema.d.ts +490 -28
- package/type/schema.js +484 -26
- package/type/schema.mjs +484 -26
- package/type/validate.d.ts +31 -0
- package/type/validate.js +32 -0
- package/type/validate.mjs +31 -0
- package/utilities/TypeInfo.d.ts +441 -1
- package/utilities/TypeInfo.js +444 -1
- package/utilities/TypeInfo.mjs +443 -1
- package/utilities/assertValidName.d.ts +27 -2
- package/utilities/assertValidName.js +28 -2
- package/utilities/assertValidName.mjs +27 -2
- package/utilities/astFromValue.d.ts +33 -3
- package/utilities/astFromValue.js +36 -3
- package/utilities/astFromValue.mjs +35 -3
- package/utilities/buildASTSchema.d.ts +65 -6
- package/utilities/buildASTSchema.js +65 -6
- package/utilities/buildASTSchema.mjs +65 -6
- package/utilities/buildClientSchema.d.ts +15 -0
- package/utilities/buildClientSchema.js +16 -0
- package/utilities/buildClientSchema.mjs +15 -0
- package/utilities/coerceInputValue.d.ts +46 -0
- package/utilities/coerceInputValue.js +47 -0
- package/utilities/coerceInputValue.mjs +46 -0
- package/utilities/concatAST.d.ts +12 -0
- package/utilities/concatAST.js +13 -0
- package/utilities/concatAST.mjs +12 -0
- package/utilities/extendSchema.d.ts +56 -3
- package/utilities/extendSchema.js +63 -3
- package/utilities/extendSchema.mjs +62 -3
- package/utilities/findBreakingChanges.d.ts +95 -0
- package/utilities/findBreakingChanges.js +68 -0
- package/utilities/findBreakingChanges.mjs +70 -0
- package/utilities/getIntrospectionQuery.d.ts +132 -0
- package/utilities/getIntrospectionQuery.js +41 -0
- package/utilities/getIntrospectionQuery.mjs +41 -0
- package/utilities/getOperationAST.d.ts +15 -0
- package/utilities/getOperationAST.js +16 -0
- package/utilities/getOperationAST.mjs +15 -0
- package/utilities/getOperationRootType.d.ts +18 -1
- package/utilities/getOperationRootType.js +19 -1
- package/utilities/getOperationRootType.mjs +18 -1
- package/utilities/index.d.ts +7 -0
- package/utilities/index.mjs +7 -0
- package/utilities/introspectionFromSchema.d.ts +54 -0
- package/utilities/introspectionFromSchema.js +55 -0
- package/utilities/introspectionFromSchema.mjs +54 -0
- package/utilities/lexicographicSortSchema.d.ts +35 -0
- package/utilities/lexicographicSortSchema.js +36 -0
- package/utilities/lexicographicSortSchema.mjs +35 -0
- package/utilities/printSchema.d.ts +63 -0
- package/utilities/printSchema.js +66 -0
- package/utilities/printSchema.mjs +67 -0
- package/utilities/resolveSchemaCoordinate.d.ts +62 -0
- package/utilities/resolveSchemaCoordinate.js +64 -0
- package/utilities/resolveSchemaCoordinate.mjs +63 -0
- package/utilities/separateOperations.d.ts +30 -0
- package/utilities/separateOperations.js +31 -0
- package/utilities/separateOperations.mjs +30 -0
- package/utilities/stripIgnoredCharacters.d.ts +13 -6
- package/utilities/stripIgnoredCharacters.js +16 -6
- package/utilities/stripIgnoredCharacters.mjs +15 -6
- package/utilities/typeComparators.d.ts +84 -0
- package/utilities/typeComparators.js +85 -0
- package/utilities/typeComparators.mjs +84 -0
- package/utilities/typeFromAST.d.ts +86 -0
- package/utilities/typeFromAST.js +3 -0
- package/utilities/typeFromAST.mjs +3 -0
- package/utilities/typedQueryDocumentNode.d.ts +4 -0
- package/utilities/valueFromAST.d.ts +38 -0
- package/utilities/valueFromAST.js +39 -0
- package/utilities/valueFromAST.mjs +38 -0
- package/utilities/valueFromASTUntyped.d.ts +15 -2
- package/utilities/valueFromASTUntyped.js +16 -2
- package/utilities/valueFromASTUntyped.mjs +15 -2
- package/validation/ValidationContext.d.ts +399 -0
- package/validation/ValidationContext.js +400 -0
- package/validation/ValidationContext.mjs +401 -0
- package/validation/index.d.ts +6 -0
- package/validation/index.mjs +6 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
- package/validation/rules/ExecutableDefinitionsRule.js +29 -0
- package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
- package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
- package/validation/rules/KnownArgumentNamesRule.js +30 -3
- package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
- package/validation/rules/KnownDirectivesRule.d.ts +28 -0
- package/validation/rules/KnownDirectivesRule.js +29 -0
- package/validation/rules/KnownDirectivesRule.mjs +28 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
- package/validation/rules/KnownFragmentNamesRule.js +29 -0
- package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
- package/validation/rules/KnownTypeNamesRule.js +29 -0
- package/validation/rules/KnownTypeNamesRule.mjs +28 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
- package/validation/rules/LoneAnonymousOperationRule.js +29 -0
- package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
- package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
- package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
- package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
- package/validation/rules/NoFragmentCyclesRule.js +29 -0
- package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
- package/validation/rules/NoUndefinedVariablesRule.js +29 -0
- package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
- package/validation/rules/NoUnusedFragmentsRule.js +29 -0
- package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
- package/validation/rules/NoUnusedVariablesRule.js +30 -0
- package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
- package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
- package/validation/rules/ScalarLeafsRule.d.ts +28 -0
- package/validation/rules/ScalarLeafsRule.js +29 -0
- package/validation/rules/ScalarLeafsRule.mjs +28 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
- package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueArgumentNamesRule.js +29 -0
- package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
- package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +29 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
- package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueFragmentNamesRule.js +29 -0
- package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
- package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
- package/validation/rules/UniqueOperationNamesRule.js +29 -0
- package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
- package/validation/rules/UniqueOperationTypesRule.js +22 -0
- package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
- package/validation/rules/UniqueTypeNamesRule.js +22 -0
- package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
- package/validation/rules/UniqueVariableNamesRule.js +29 -0
- package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
- package/validation/rules/VariablesAreInputTypesRule.js +33 -0
- package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
- package/validation/specifiedRules.d.ts +2 -3
- package/validation/specifiedRules.js +2 -3
- package/validation/specifiedRules.mjs +2 -3
- package/validation/validate.d.ts +70 -9
- package/validation/validate.js +63 -7
- package/validation/validate.mjs +63 -7
- package/version.d.ts +3 -6
- package/version.js +6 -8
- package/version.mjs +5 -8
package/utilities/index.mjs
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for building schemas, working with introspection, transforming ASTs,
|
|
3
|
+
* and comparing GraphQL types.
|
|
4
|
+
*
|
|
5
|
+
* These exports are also available from the root `graphql` package.
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
1
8
|
// Produce the GraphQL query recommended for a full schema introspection.
|
|
2
9
|
export { getIntrospectionQuery } from './getIntrospectionQuery.mjs';
|
|
3
10
|
// Gets the target Operation from a Document.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Introspection */
|
|
1
2
|
import type { GraphQLSchema } from '../type/schema';
|
|
2
3
|
import type {
|
|
3
4
|
IntrospectionOptions,
|
|
@@ -11,6 +12,59 @@ import type {
|
|
|
11
12
|
*
|
|
12
13
|
* This is the inverse of buildClientSchema. The primary use case is outside
|
|
13
14
|
* of the server context, for instance when doing schema comparisons.
|
|
15
|
+
* @param schema - GraphQL schema to use.
|
|
16
|
+
* @param options - Optional configuration for this operation.
|
|
17
|
+
* @returns Introspection result data for the schema.
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* // Include schema metadata using the default introspection options.
|
|
21
|
+
* import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
|
|
22
|
+
*
|
|
23
|
+
* const schema = buildSchema(`
|
|
24
|
+
* scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
|
|
25
|
+
*
|
|
26
|
+
* type Query {
|
|
27
|
+
* homepage: Url
|
|
28
|
+
* }
|
|
29
|
+
* `);
|
|
30
|
+
*
|
|
31
|
+
* const introspection = introspectionFromSchema(schema);
|
|
32
|
+
* const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
|
|
33
|
+
*
|
|
34
|
+
* urlType.specifiedByURL; // => 'https://url.spec.whatwg.org/'
|
|
35
|
+
* ```
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* // This variant disables optional introspection metadata.
|
|
39
|
+
* import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
|
|
40
|
+
*
|
|
41
|
+
* const schema = buildSchema(`
|
|
42
|
+
* scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
|
|
43
|
+
*
|
|
44
|
+
* type Query {
|
|
45
|
+
* homepage: Url
|
|
46
|
+
* }
|
|
47
|
+
* `);
|
|
48
|
+
*
|
|
49
|
+
* const introspection = introspectionFromSchema(schema, {
|
|
50
|
+
* descriptions: false,
|
|
51
|
+
* specifiedByUrl: false,
|
|
52
|
+
* directiveIsRepeatable: false,
|
|
53
|
+
* schemaDescription: false,
|
|
54
|
+
* inputValueDeprecation: false,
|
|
55
|
+
* experimentalDirectiveDeprecation: false,
|
|
56
|
+
* oneOf: false,
|
|
57
|
+
* });
|
|
58
|
+
* const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
|
|
59
|
+
* const deprecatedDirective = introspection.__schema.directives.find(
|
|
60
|
+
* (directive) => directive.name === 'deprecated',
|
|
61
|
+
* );
|
|
62
|
+
*
|
|
63
|
+
* urlType.specifiedByURL; // => undefined
|
|
64
|
+
* urlType.description; // => undefined
|
|
65
|
+
* introspection.__schema.description; // => undefined
|
|
66
|
+
* deprecatedDirective.isRepeatable; // => undefined
|
|
67
|
+
* ```
|
|
14
68
|
*/
|
|
15
69
|
export declare function introspectionFromSchema(
|
|
16
70
|
schema: GraphQLSchema,
|
|
@@ -13,6 +13,8 @@ var _execute = require('../execution/execute.js');
|
|
|
13
13
|
|
|
14
14
|
var _getIntrospectionQuery = require('./getIntrospectionQuery.js');
|
|
15
15
|
|
|
16
|
+
/** @category Introspection */
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* Build an IntrospectionQuery from a GraphQLSchema
|
|
18
20
|
*
|
|
@@ -21,6 +23,59 @@ var _getIntrospectionQuery = require('./getIntrospectionQuery.js');
|
|
|
21
23
|
*
|
|
22
24
|
* This is the inverse of buildClientSchema. The primary use case is outside
|
|
23
25
|
* of the server context, for instance when doing schema comparisons.
|
|
26
|
+
* @param schema - GraphQL schema to use.
|
|
27
|
+
* @param options - Optional configuration for this operation.
|
|
28
|
+
* @returns Introspection result data for the schema.
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* // Include schema metadata using the default introspection options.
|
|
32
|
+
* import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
|
|
33
|
+
*
|
|
34
|
+
* const schema = buildSchema(`
|
|
35
|
+
* scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
|
|
36
|
+
*
|
|
37
|
+
* type Query {
|
|
38
|
+
* homepage: Url
|
|
39
|
+
* }
|
|
40
|
+
* `);
|
|
41
|
+
*
|
|
42
|
+
* const introspection = introspectionFromSchema(schema);
|
|
43
|
+
* const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
|
|
44
|
+
*
|
|
45
|
+
* urlType.specifiedByURL; // => 'https://url.spec.whatwg.org/'
|
|
46
|
+
* ```
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* // This variant disables optional introspection metadata.
|
|
50
|
+
* import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
|
|
51
|
+
*
|
|
52
|
+
* const schema = buildSchema(`
|
|
53
|
+
* scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
|
|
54
|
+
*
|
|
55
|
+
* type Query {
|
|
56
|
+
* homepage: Url
|
|
57
|
+
* }
|
|
58
|
+
* `);
|
|
59
|
+
*
|
|
60
|
+
* const introspection = introspectionFromSchema(schema, {
|
|
61
|
+
* descriptions: false,
|
|
62
|
+
* specifiedByUrl: false,
|
|
63
|
+
* directiveIsRepeatable: false,
|
|
64
|
+
* schemaDescription: false,
|
|
65
|
+
* inputValueDeprecation: false,
|
|
66
|
+
* experimentalDirectiveDeprecation: false,
|
|
67
|
+
* oneOf: false,
|
|
68
|
+
* });
|
|
69
|
+
* const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
|
|
70
|
+
* const deprecatedDirective = introspection.__schema.directives.find(
|
|
71
|
+
* (directive) => directive.name === 'deprecated',
|
|
72
|
+
* );
|
|
73
|
+
*
|
|
74
|
+
* urlType.specifiedByURL; // => undefined
|
|
75
|
+
* urlType.description; // => undefined
|
|
76
|
+
* introspection.__schema.description; // => undefined
|
|
77
|
+
* deprecatedDirective.isRepeatable; // => undefined
|
|
78
|
+
* ```
|
|
24
79
|
*/
|
|
25
80
|
function introspectionFromSchema(schema, options) {
|
|
26
81
|
const optionsWithDefaults = {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Introspection */
|
|
1
2
|
import { invariant } from '../jsutils/invariant.mjs';
|
|
2
3
|
import { parse } from '../language/parser.mjs';
|
|
3
4
|
import { executeSync } from '../execution/execute.mjs';
|
|
@@ -10,6 +11,59 @@ import { getIntrospectionQuery } from './getIntrospectionQuery.mjs';
|
|
|
10
11
|
*
|
|
11
12
|
* This is the inverse of buildClientSchema. The primary use case is outside
|
|
12
13
|
* of the server context, for instance when doing schema comparisons.
|
|
14
|
+
* @param schema - GraphQL schema to use.
|
|
15
|
+
* @param options - Optional configuration for this operation.
|
|
16
|
+
* @returns Introspection result data for the schema.
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* // Include schema metadata using the default introspection options.
|
|
20
|
+
* import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
|
|
21
|
+
*
|
|
22
|
+
* const schema = buildSchema(`
|
|
23
|
+
* scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
|
|
24
|
+
*
|
|
25
|
+
* type Query {
|
|
26
|
+
* homepage: Url
|
|
27
|
+
* }
|
|
28
|
+
* `);
|
|
29
|
+
*
|
|
30
|
+
* const introspection = introspectionFromSchema(schema);
|
|
31
|
+
* const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
|
|
32
|
+
*
|
|
33
|
+
* urlType.specifiedByURL; // => 'https://url.spec.whatwg.org/'
|
|
34
|
+
* ```
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* // This variant disables optional introspection metadata.
|
|
38
|
+
* import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
|
|
39
|
+
*
|
|
40
|
+
* const schema = buildSchema(`
|
|
41
|
+
* scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
|
|
42
|
+
*
|
|
43
|
+
* type Query {
|
|
44
|
+
* homepage: Url
|
|
45
|
+
* }
|
|
46
|
+
* `);
|
|
47
|
+
*
|
|
48
|
+
* const introspection = introspectionFromSchema(schema, {
|
|
49
|
+
* descriptions: false,
|
|
50
|
+
* specifiedByUrl: false,
|
|
51
|
+
* directiveIsRepeatable: false,
|
|
52
|
+
* schemaDescription: false,
|
|
53
|
+
* inputValueDeprecation: false,
|
|
54
|
+
* experimentalDirectiveDeprecation: false,
|
|
55
|
+
* oneOf: false,
|
|
56
|
+
* });
|
|
57
|
+
* const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
|
|
58
|
+
* const deprecatedDirective = introspection.__schema.directives.find(
|
|
59
|
+
* (directive) => directive.name === 'deprecated',
|
|
60
|
+
* );
|
|
61
|
+
*
|
|
62
|
+
* urlType.specifiedByURL; // => undefined
|
|
63
|
+
* urlType.description; // => undefined
|
|
64
|
+
* introspection.__schema.description; // => undefined
|
|
65
|
+
* deprecatedDirective.isRepeatable; // => undefined
|
|
66
|
+
* ```
|
|
13
67
|
*/
|
|
14
68
|
|
|
15
69
|
export function introspectionFromSchema(schema, options) {
|
|
@@ -1,8 +1,43 @@
|
|
|
1
|
+
/** @category Schema Construction */
|
|
1
2
|
import { GraphQLSchema } from '../type/schema';
|
|
2
3
|
/**
|
|
3
4
|
* Sort GraphQLSchema.
|
|
4
5
|
*
|
|
5
6
|
* This function returns a sorted copy of the given GraphQLSchema.
|
|
7
|
+
* @param schema - GraphQL schema to use.
|
|
8
|
+
* @returns A copy of the schema with types, fields, arguments, and values sorted lexicographically.
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { buildSchema, lexicographicSortSchema, printSchema } from 'graphql/utilities';
|
|
12
|
+
*
|
|
13
|
+
* const schema = buildSchema(`
|
|
14
|
+
* type Query {
|
|
15
|
+
* zebra: String
|
|
16
|
+
* apple: String
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* enum Episode {
|
|
20
|
+
* JEDI
|
|
21
|
+
* NEW_HOPE
|
|
22
|
+
* EMPIRE
|
|
23
|
+
* }
|
|
24
|
+
* `);
|
|
25
|
+
*
|
|
26
|
+
* const sortedSchema = lexicographicSortSchema(schema);
|
|
27
|
+
*
|
|
28
|
+
* printSchema(sortedSchema);
|
|
29
|
+
* // =>
|
|
30
|
+
* // enum Episode {
|
|
31
|
+
* // EMPIRE
|
|
32
|
+
* // JEDI
|
|
33
|
+
* // NEW_HOPE
|
|
34
|
+
* // }
|
|
35
|
+
* //
|
|
36
|
+
* // type Query {
|
|
37
|
+
* // apple: String
|
|
38
|
+
* // zebra: String
|
|
39
|
+
* // }
|
|
40
|
+
* ```
|
|
6
41
|
*/
|
|
7
42
|
export declare function lexicographicSortSchema(
|
|
8
43
|
schema: GraphQLSchema,
|
|
@@ -21,10 +21,46 @@ var _introspection = require('../type/introspection.js');
|
|
|
21
21
|
|
|
22
22
|
var _schema = require('../type/schema.js');
|
|
23
23
|
|
|
24
|
+
/** @category Schema Construction */
|
|
25
|
+
|
|
24
26
|
/**
|
|
25
27
|
* Sort GraphQLSchema.
|
|
26
28
|
*
|
|
27
29
|
* This function returns a sorted copy of the given GraphQLSchema.
|
|
30
|
+
* @param schema - GraphQL schema to use.
|
|
31
|
+
* @returns A copy of the schema with types, fields, arguments, and values sorted lexicographically.
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { buildSchema, lexicographicSortSchema, printSchema } from 'graphql/utilities';
|
|
35
|
+
*
|
|
36
|
+
* const schema = buildSchema(`
|
|
37
|
+
* type Query {
|
|
38
|
+
* zebra: String
|
|
39
|
+
* apple: String
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* enum Episode {
|
|
43
|
+
* JEDI
|
|
44
|
+
* NEW_HOPE
|
|
45
|
+
* EMPIRE
|
|
46
|
+
* }
|
|
47
|
+
* `);
|
|
48
|
+
*
|
|
49
|
+
* const sortedSchema = lexicographicSortSchema(schema);
|
|
50
|
+
*
|
|
51
|
+
* printSchema(sortedSchema);
|
|
52
|
+
* // =>
|
|
53
|
+
* // enum Episode {
|
|
54
|
+
* // EMPIRE
|
|
55
|
+
* // JEDI
|
|
56
|
+
* // NEW_HOPE
|
|
57
|
+
* // }
|
|
58
|
+
* //
|
|
59
|
+
* // type Query {
|
|
60
|
+
* // apple: String
|
|
61
|
+
* // zebra: String
|
|
62
|
+
* // }
|
|
63
|
+
* ```
|
|
28
64
|
*/
|
|
29
65
|
function lexicographicSortSchema(schema) {
|
|
30
66
|
const schemaConfig = schema.toConfig();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Schema Construction */
|
|
1
2
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
2
3
|
import { invariant } from '../jsutils/invariant.mjs';
|
|
3
4
|
import { keyValMap } from '../jsutils/keyValMap.mjs';
|
|
@@ -26,6 +27,40 @@ import { GraphQLSchema } from '../type/schema.mjs';
|
|
|
26
27
|
* Sort GraphQLSchema.
|
|
27
28
|
*
|
|
28
29
|
* This function returns a sorted copy of the given GraphQLSchema.
|
|
30
|
+
* @param schema - GraphQL schema to use.
|
|
31
|
+
* @returns A copy of the schema with types, fields, arguments, and values sorted lexicographically.
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { buildSchema, lexicographicSortSchema, printSchema } from 'graphql/utilities';
|
|
35
|
+
*
|
|
36
|
+
* const schema = buildSchema(`
|
|
37
|
+
* type Query {
|
|
38
|
+
* zebra: String
|
|
39
|
+
* apple: String
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* enum Episode {
|
|
43
|
+
* JEDI
|
|
44
|
+
* NEW_HOPE
|
|
45
|
+
* EMPIRE
|
|
46
|
+
* }
|
|
47
|
+
* `);
|
|
48
|
+
*
|
|
49
|
+
* const sortedSchema = lexicographicSortSchema(schema);
|
|
50
|
+
*
|
|
51
|
+
* printSchema(sortedSchema);
|
|
52
|
+
* // =>
|
|
53
|
+
* // enum Episode {
|
|
54
|
+
* // EMPIRE
|
|
55
|
+
* // JEDI
|
|
56
|
+
* // NEW_HOPE
|
|
57
|
+
* // }
|
|
58
|
+
* //
|
|
59
|
+
* // type Query {
|
|
60
|
+
* // apple: String
|
|
61
|
+
* // zebra: String
|
|
62
|
+
* // }
|
|
63
|
+
* ```
|
|
29
64
|
*/
|
|
30
65
|
|
|
31
66
|
export function lexicographicSortSchema(schema) {
|
|
@@ -1,5 +1,68 @@
|
|
|
1
|
+
/** @category Schema Printing */
|
|
1
2
|
import type { GraphQLNamedType } from '../type/definition';
|
|
2
3
|
import type { GraphQLSchema } from '../type/schema';
|
|
4
|
+
/**
|
|
5
|
+
* Prints the schema.
|
|
6
|
+
* @param schema - GraphQL schema to use.
|
|
7
|
+
* @returns The printed string representation.
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { buildSchema, printSchema } from 'graphql/utilities';
|
|
11
|
+
*
|
|
12
|
+
* const schema = buildSchema(`
|
|
13
|
+
* directive @upper on FIELD_DEFINITION
|
|
14
|
+
*
|
|
15
|
+
* type Query {
|
|
16
|
+
* greeting: String @upper
|
|
17
|
+
* }
|
|
18
|
+
* `);
|
|
19
|
+
*
|
|
20
|
+
* printSchema(schema); // => ['directive @upper on FIELD_DEFINITION', '', 'type Query {', ' greeting: String', '}'].join('\n')
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
3
23
|
export declare function printSchema(schema: GraphQLSchema): string;
|
|
24
|
+
/**
|
|
25
|
+
* Prints the introspection schema.
|
|
26
|
+
* @param schema - GraphQL schema to use.
|
|
27
|
+
* @returns The printed string representation.
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { buildSchema, printIntrospectionSchema } from 'graphql/utilities';
|
|
31
|
+
*
|
|
32
|
+
* const schema = buildSchema(`
|
|
33
|
+
* type Query {
|
|
34
|
+
* greeting: String
|
|
35
|
+
* }
|
|
36
|
+
* `);
|
|
37
|
+
*
|
|
38
|
+
* const printed = printIntrospectionSchema(schema);
|
|
39
|
+
*
|
|
40
|
+
* printed; // matches /type __Schema/
|
|
41
|
+
* printed; // matches /enum __TypeKind/
|
|
42
|
+
* printed; // does not match /type Query/
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
4
45
|
export declare function printIntrospectionSchema(schema: GraphQLSchema): string;
|
|
46
|
+
/**
|
|
47
|
+
* Prints the type.
|
|
48
|
+
* @param type - The GraphQL type to inspect.
|
|
49
|
+
* @returns The printed string representation.
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* import { buildSchema, printType } from 'graphql/utilities';
|
|
53
|
+
*
|
|
54
|
+
* const schema = buildSchema(`
|
|
55
|
+
* type User {
|
|
56
|
+
* id: ID!
|
|
57
|
+
* name: String
|
|
58
|
+
* }
|
|
59
|
+
*
|
|
60
|
+
* type Query {
|
|
61
|
+
* viewer: User
|
|
62
|
+
* }
|
|
63
|
+
* `);
|
|
64
|
+
*
|
|
65
|
+
* printType(schema.getType('User')); // => ['type User {', ' id: ID!', ' name: String', '}'].join('\n')
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
5
68
|
export declare function printType(type: GraphQLNamedType): string;
|
package/utilities/printSchema.js
CHANGED
|
@@ -27,6 +27,27 @@ var _scalars = require('../type/scalars.js');
|
|
|
27
27
|
|
|
28
28
|
var _astFromValue = require('./astFromValue.js');
|
|
29
29
|
|
|
30
|
+
/** @category Schema Printing */
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Prints the schema.
|
|
34
|
+
* @param schema - GraphQL schema to use.
|
|
35
|
+
* @returns The printed string representation.
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { buildSchema, printSchema } from 'graphql/utilities';
|
|
39
|
+
*
|
|
40
|
+
* const schema = buildSchema(`
|
|
41
|
+
* directive @upper on FIELD_DEFINITION
|
|
42
|
+
*
|
|
43
|
+
* type Query {
|
|
44
|
+
* greeting: String @upper
|
|
45
|
+
* }
|
|
46
|
+
* `);
|
|
47
|
+
*
|
|
48
|
+
* printSchema(schema); // => ['directive @upper on FIELD_DEFINITION', '', 'type Query {', ' greeting: String', '}'].join('\n')
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
30
51
|
function printSchema(schema) {
|
|
31
52
|
return printFilteredSchema(
|
|
32
53
|
schema,
|
|
@@ -34,6 +55,27 @@ function printSchema(schema) {
|
|
|
34
55
|
isDefinedType,
|
|
35
56
|
);
|
|
36
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Prints the introspection schema.
|
|
60
|
+
* @param schema - GraphQL schema to use.
|
|
61
|
+
* @returns The printed string representation.
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { buildSchema, printIntrospectionSchema } from 'graphql/utilities';
|
|
65
|
+
*
|
|
66
|
+
* const schema = buildSchema(`
|
|
67
|
+
* type Query {
|
|
68
|
+
* greeting: String
|
|
69
|
+
* }
|
|
70
|
+
* `);
|
|
71
|
+
*
|
|
72
|
+
* const printed = printIntrospectionSchema(schema);
|
|
73
|
+
*
|
|
74
|
+
* printed; // matches /type __Schema/
|
|
75
|
+
* printed; // matches /enum __TypeKind/
|
|
76
|
+
* printed; // does not match /type Query/
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
37
79
|
|
|
38
80
|
function printIntrospectionSchema(schema) {
|
|
39
81
|
return printFilteredSchema(
|
|
@@ -102,6 +144,8 @@ function printSchemaDefinition(schema) {
|
|
|
102
144
|
* ```
|
|
103
145
|
*
|
|
104
146
|
* When using this naming convention, the schema description can be omitted.
|
|
147
|
+
*
|
|
148
|
+
* @internal
|
|
105
149
|
*/
|
|
106
150
|
|
|
107
151
|
function isSchemaOfCommonNames(schema) {
|
|
@@ -125,6 +169,28 @@ function isSchemaOfCommonNames(schema) {
|
|
|
125
169
|
|
|
126
170
|
return true;
|
|
127
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Prints the type.
|
|
174
|
+
* @param type - The GraphQL type to inspect.
|
|
175
|
+
* @returns The printed string representation.
|
|
176
|
+
* @example
|
|
177
|
+
* ```ts
|
|
178
|
+
* import { buildSchema, printType } from 'graphql/utilities';
|
|
179
|
+
*
|
|
180
|
+
* const schema = buildSchema(`
|
|
181
|
+
* type User {
|
|
182
|
+
* id: ID!
|
|
183
|
+
* name: String
|
|
184
|
+
* }
|
|
185
|
+
*
|
|
186
|
+
* type Query {
|
|
187
|
+
* viewer: User
|
|
188
|
+
* }
|
|
189
|
+
* `);
|
|
190
|
+
*
|
|
191
|
+
* printType(schema.getType('User')); // => ['type User {', ' id: ID!', ' name: String', '}'].join('\n')
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
128
194
|
|
|
129
195
|
function printType(type) {
|
|
130
196
|
if ((0, _definition.isScalarType)(type)) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Schema Printing */
|
|
1
2
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
2
3
|
import { invariant } from '../jsutils/invariant.mjs';
|
|
3
4
|
import { isPrintableAsBlockString } from '../language/blockString.mjs';
|
|
@@ -18,6 +19,26 @@ import {
|
|
|
18
19
|
import { isIntrospectionType } from '../type/introspection.mjs';
|
|
19
20
|
import { isSpecifiedScalarType } from '../type/scalars.mjs';
|
|
20
21
|
import { astFromValue } from './astFromValue.mjs';
|
|
22
|
+
/**
|
|
23
|
+
* Prints the schema.
|
|
24
|
+
* @param schema - GraphQL schema to use.
|
|
25
|
+
* @returns The printed string representation.
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { buildSchema, printSchema } from 'graphql/utilities';
|
|
29
|
+
*
|
|
30
|
+
* const schema = buildSchema(`
|
|
31
|
+
* directive @upper on FIELD_DEFINITION
|
|
32
|
+
*
|
|
33
|
+
* type Query {
|
|
34
|
+
* greeting: String @upper
|
|
35
|
+
* }
|
|
36
|
+
* `);
|
|
37
|
+
*
|
|
38
|
+
* printSchema(schema); // => ['directive @upper on FIELD_DEFINITION', '', 'type Query {', ' greeting: String', '}'].join('\n')
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
|
|
21
42
|
export function printSchema(schema) {
|
|
22
43
|
return printFilteredSchema(
|
|
23
44
|
schema,
|
|
@@ -25,6 +46,28 @@ export function printSchema(schema) {
|
|
|
25
46
|
isDefinedType,
|
|
26
47
|
);
|
|
27
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Prints the introspection schema.
|
|
51
|
+
* @param schema - GraphQL schema to use.
|
|
52
|
+
* @returns The printed string representation.
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { buildSchema, printIntrospectionSchema } from 'graphql/utilities';
|
|
56
|
+
*
|
|
57
|
+
* const schema = buildSchema(`
|
|
58
|
+
* type Query {
|
|
59
|
+
* greeting: String
|
|
60
|
+
* }
|
|
61
|
+
* `);
|
|
62
|
+
*
|
|
63
|
+
* const printed = printIntrospectionSchema(schema);
|
|
64
|
+
*
|
|
65
|
+
* printed; // matches /type __Schema/
|
|
66
|
+
* printed; // matches /enum __TypeKind/
|
|
67
|
+
* printed; // does not match /type Query/
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
|
|
28
71
|
export function printIntrospectionSchema(schema) {
|
|
29
72
|
return printFilteredSchema(schema, isSpecifiedDirective, isIntrospectionType);
|
|
30
73
|
}
|
|
@@ -85,6 +128,8 @@ function printSchemaDefinition(schema) {
|
|
|
85
128
|
* ```
|
|
86
129
|
*
|
|
87
130
|
* When using this naming convention, the schema description can be omitted.
|
|
131
|
+
*
|
|
132
|
+
* @internal
|
|
88
133
|
*/
|
|
89
134
|
|
|
90
135
|
function isSchemaOfCommonNames(schema) {
|
|
@@ -108,6 +153,28 @@ function isSchemaOfCommonNames(schema) {
|
|
|
108
153
|
|
|
109
154
|
return true;
|
|
110
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Prints the type.
|
|
158
|
+
* @param type - The GraphQL type to inspect.
|
|
159
|
+
* @returns The printed string representation.
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts
|
|
162
|
+
* import { buildSchema, printType } from 'graphql/utilities';
|
|
163
|
+
*
|
|
164
|
+
* const schema = buildSchema(`
|
|
165
|
+
* type User {
|
|
166
|
+
* id: ID!
|
|
167
|
+
* name: String
|
|
168
|
+
* }
|
|
169
|
+
*
|
|
170
|
+
* type Query {
|
|
171
|
+
* viewer: User
|
|
172
|
+
* }
|
|
173
|
+
* `);
|
|
174
|
+
*
|
|
175
|
+
* printType(schema.getType('User')); // => ['type User {', ' id: ID!', ' name: String', '}'].join('\n')
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
111
178
|
|
|
112
179
|
export function printType(type) {
|
|
113
180
|
if (isScalarType(type)) {
|