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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import { didYouMean } from '../jsutils/didYouMean.mjs';
|
|
2
3
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
3
4
|
import { invariant } from '../jsutils/invariant.mjs';
|
|
@@ -16,6 +17,51 @@ import {
|
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Coerces a JavaScript value given a GraphQL Input Type.
|
|
20
|
+
* @param inputValue - JavaScript value to coerce.
|
|
21
|
+
* @param type - GraphQL input type to coerce the value against.
|
|
22
|
+
* @param onError - Callback invoked for each coercion error.
|
|
23
|
+
* @returns Coerced value, or undefined if coercion failed and errors were reported.
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* // Coerce runtime input values and throw on invalid input by default.
|
|
27
|
+
* import {
|
|
28
|
+
* GraphQLInputObjectType,
|
|
29
|
+
* GraphQLInt,
|
|
30
|
+
* GraphQLList,
|
|
31
|
+
* GraphQLNonNull,
|
|
32
|
+
* GraphQLString,
|
|
33
|
+
* } from 'graphql/type';
|
|
34
|
+
* import { coerceInputValue } from 'graphql/utilities';
|
|
35
|
+
*
|
|
36
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
37
|
+
* name: 'ReviewInput',
|
|
38
|
+
* fields: {
|
|
39
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
40
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
41
|
+
* },
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
|
|
45
|
+
* coerceInputValue({ stars: 'bad' }, ReviewInput); // throws an error
|
|
46
|
+
* ```
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* // This variant collects coercion errors with a custom onError callback.
|
|
50
|
+
* import { GraphQLInt, GraphQLNonNull } from 'graphql/type';
|
|
51
|
+
* import { coerceInputValue } from 'graphql/utilities';
|
|
52
|
+
*
|
|
53
|
+
* const errors = [];
|
|
54
|
+
* const value = coerceInputValue(
|
|
55
|
+
* null,
|
|
56
|
+
* new GraphQLNonNull(GraphQLInt),
|
|
57
|
+
* (path, invalidValue, error) => {
|
|
58
|
+
* errors.push({ path, invalidValue, message: error.message });
|
|
59
|
+
* },
|
|
60
|
+
* );
|
|
61
|
+
*
|
|
62
|
+
* value; // => undefined
|
|
63
|
+
* errors; // => [ { path: [], invalidValue: null, message: 'Expected non-nullable type "Int!" not to be null.' } ]
|
|
64
|
+
* ```
|
|
19
65
|
*/
|
|
20
66
|
export function coerceInputValue(inputValue, type, onError = defaultOnError) {
|
|
21
67
|
return coerceInputValueImpl(inputValue, type, onError, undefined);
|
package/utilities/concatAST.d.ts
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
/** @category AST Utilities */
|
|
1
2
|
import type { DocumentNode } from '../language/ast';
|
|
2
3
|
/**
|
|
3
4
|
* Provided a collection of ASTs, presumably each from different files,
|
|
4
5
|
* concatenate the ASTs together into batched AST, useful for validating many
|
|
5
6
|
* GraphQL source files which together represent one conceptual application.
|
|
7
|
+
* @param documents - Document ASTs to concatenate.
|
|
8
|
+
* @returns A document AST containing all definitions from the provided documents.
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { parse } from 'graphql/language';
|
|
12
|
+
* import { concatAST } from 'graphql/utilities';
|
|
13
|
+
*
|
|
14
|
+
* const document = concatAST([parse('type Query { a: String }'), parse('type User { id: ID }')]);
|
|
15
|
+
*
|
|
16
|
+
* document.definitions.length; // => 2
|
|
17
|
+
* ```
|
|
6
18
|
*/
|
|
7
19
|
export declare function concatAST(
|
|
8
20
|
documents: ReadonlyArray<DocumentNode>,
|
package/utilities/concatAST.js
CHANGED
|
@@ -7,10 +7,23 @@ exports.concatAST = concatAST;
|
|
|
7
7
|
|
|
8
8
|
var _kinds = require('../language/kinds.js');
|
|
9
9
|
|
|
10
|
+
/** @category AST Utilities */
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Provided a collection of ASTs, presumably each from different files,
|
|
12
14
|
* concatenate the ASTs together into batched AST, useful for validating many
|
|
13
15
|
* GraphQL source files which together represent one conceptual application.
|
|
16
|
+
* @param documents - Document ASTs to concatenate.
|
|
17
|
+
* @returns A document AST containing all definitions from the provided documents.
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { parse } from 'graphql/language';
|
|
21
|
+
* import { concatAST } from 'graphql/utilities';
|
|
22
|
+
*
|
|
23
|
+
* const document = concatAST([parse('type Query { a: String }'), parse('type User { id: ID }')]);
|
|
24
|
+
*
|
|
25
|
+
* document.definitions.length; // => 2
|
|
26
|
+
* ```
|
|
14
27
|
*/
|
|
15
28
|
function concatAST(documents) {
|
|
16
29
|
const definitions = [];
|
package/utilities/concatAST.mjs
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
/** @category AST Utilities */
|
|
1
2
|
import { Kind } from '../language/kinds.mjs';
|
|
2
3
|
/**
|
|
3
4
|
* Provided a collection of ASTs, presumably each from different files,
|
|
4
5
|
* concatenate the ASTs together into batched AST, useful for validating many
|
|
5
6
|
* GraphQL source files which together represent one conceptual application.
|
|
7
|
+
* @param documents - Document ASTs to concatenate.
|
|
8
|
+
* @returns A document AST containing all definitions from the provided documents.
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { parse } from 'graphql/language';
|
|
12
|
+
* import { concatAST } from 'graphql/utilities';
|
|
13
|
+
*
|
|
14
|
+
* const document = concatAST([parse('type Query { a: String }'), parse('type User { id: ID }')]);
|
|
15
|
+
*
|
|
16
|
+
* document.definitions.length; // => 2
|
|
17
|
+
* ```
|
|
6
18
|
*/
|
|
7
19
|
|
|
8
20
|
export function concatAST(documents) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Schema Construction */
|
|
1
2
|
import type { DocumentNode } from '../language/ast';
|
|
2
3
|
import type {
|
|
3
4
|
GraphQLSchemaNormalizedConfig,
|
|
@@ -23,15 +24,67 @@ interface Options extends GraphQLSchemaValidationOptions {
|
|
|
23
24
|
*
|
|
24
25
|
* This algorithm copies the provided schema, applying extensions while
|
|
25
26
|
* producing the copy. The original schema remains unaltered.
|
|
27
|
+
* @param schema - GraphQL schema to use.
|
|
28
|
+
* @param documentAST - The parsed GraphQL document AST.
|
|
29
|
+
* @param options - Optional configuration for this operation.
|
|
30
|
+
* @returns A new schema with the extensions and definitions applied.
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* // Extend a schema with new fields and types.
|
|
34
|
+
* import { parse } from 'graphql/language';
|
|
35
|
+
* import { buildSchema, extendSchema } from 'graphql/utilities';
|
|
36
|
+
*
|
|
37
|
+
* const schema = buildSchema(`
|
|
38
|
+
* type Query {
|
|
39
|
+
* greeting: String
|
|
40
|
+
* }
|
|
41
|
+
* `);
|
|
42
|
+
* const extensionAST = parse(`
|
|
43
|
+
* extend type Query {
|
|
44
|
+
* farewell: String
|
|
45
|
+
* }
|
|
46
|
+
*
|
|
47
|
+
* type Review {
|
|
48
|
+
* body: String
|
|
49
|
+
* }
|
|
50
|
+
* `);
|
|
51
|
+
*
|
|
52
|
+
* const extendedSchema = extendSchema(schema, extensionAST);
|
|
53
|
+
*
|
|
54
|
+
* schema.getType('Review'); // => undefined
|
|
55
|
+
* extendedSchema.getType('Review')?.name; // => 'Review'
|
|
56
|
+
* Object.keys(extendedSchema.getQueryType().getFields()); // => ['greeting', 'farewell']
|
|
57
|
+
* ```
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* // This variant bypasses validation for an otherwise invalid extension.
|
|
61
|
+
* import { parse } from 'graphql/language';
|
|
62
|
+
* import { buildSchema, extendSchema } from 'graphql/utilities';
|
|
63
|
+
*
|
|
64
|
+
* const schema = buildSchema(`
|
|
65
|
+
* type Query {
|
|
66
|
+
* greeting: String
|
|
67
|
+
* }
|
|
68
|
+
* `);
|
|
69
|
+
* const invalidExtension = parse(`
|
|
70
|
+
* extend type Missing {
|
|
71
|
+
* field: String
|
|
72
|
+
* }
|
|
73
|
+
* `);
|
|
74
|
+
*
|
|
75
|
+
* extendSchema(schema, invalidExtension); // throws an error
|
|
76
|
+
* extendSchema(schema, invalidExtension, {
|
|
77
|
+
* assumeValid: true,
|
|
78
|
+
* assumeValidSDL: true,
|
|
79
|
+
* }); // does not throw
|
|
80
|
+
* ```
|
|
26
81
|
*/
|
|
27
82
|
export declare function extendSchema(
|
|
28
83
|
schema: GraphQLSchema,
|
|
29
84
|
documentAST: DocumentNode,
|
|
30
85
|
options?: Options,
|
|
31
86
|
): GraphQLSchema;
|
|
32
|
-
/**
|
|
33
|
-
* @internal
|
|
34
|
-
*/
|
|
87
|
+
/** @internal */
|
|
35
88
|
export declare function extendSchemaImpl(
|
|
36
89
|
schemaConfig: GraphQLSchemaNormalizedConfig,
|
|
37
90
|
documentAST: DocumentNode,
|
|
@@ -36,6 +36,8 @@ var _values = require('../execution/values.js');
|
|
|
36
36
|
|
|
37
37
|
var _valueFromAST = require('./valueFromAST.js');
|
|
38
38
|
|
|
39
|
+
/** @category Schema Construction */
|
|
40
|
+
|
|
39
41
|
/**
|
|
40
42
|
* Produces a new schema given an existing schema and a document which may
|
|
41
43
|
* contain GraphQL type extensions and definitions. The original schema will
|
|
@@ -47,6 +49,60 @@ var _valueFromAST = require('./valueFromAST.js');
|
|
|
47
49
|
*
|
|
48
50
|
* This algorithm copies the provided schema, applying extensions while
|
|
49
51
|
* producing the copy. The original schema remains unaltered.
|
|
52
|
+
* @param schema - GraphQL schema to use.
|
|
53
|
+
* @param documentAST - The parsed GraphQL document AST.
|
|
54
|
+
* @param options - Optional configuration for this operation.
|
|
55
|
+
* @returns A new schema with the extensions and definitions applied.
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* // Extend a schema with new fields and types.
|
|
59
|
+
* import { parse } from 'graphql/language';
|
|
60
|
+
* import { buildSchema, extendSchema } from 'graphql/utilities';
|
|
61
|
+
*
|
|
62
|
+
* const schema = buildSchema(`
|
|
63
|
+
* type Query {
|
|
64
|
+
* greeting: String
|
|
65
|
+
* }
|
|
66
|
+
* `);
|
|
67
|
+
* const extensionAST = parse(`
|
|
68
|
+
* extend type Query {
|
|
69
|
+
* farewell: String
|
|
70
|
+
* }
|
|
71
|
+
*
|
|
72
|
+
* type Review {
|
|
73
|
+
* body: String
|
|
74
|
+
* }
|
|
75
|
+
* `);
|
|
76
|
+
*
|
|
77
|
+
* const extendedSchema = extendSchema(schema, extensionAST);
|
|
78
|
+
*
|
|
79
|
+
* schema.getType('Review'); // => undefined
|
|
80
|
+
* extendedSchema.getType('Review')?.name; // => 'Review'
|
|
81
|
+
* Object.keys(extendedSchema.getQueryType().getFields()); // => ['greeting', 'farewell']
|
|
82
|
+
* ```
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* // This variant bypasses validation for an otherwise invalid extension.
|
|
86
|
+
* import { parse } from 'graphql/language';
|
|
87
|
+
* import { buildSchema, extendSchema } from 'graphql/utilities';
|
|
88
|
+
*
|
|
89
|
+
* const schema = buildSchema(`
|
|
90
|
+
* type Query {
|
|
91
|
+
* greeting: String
|
|
92
|
+
* }
|
|
93
|
+
* `);
|
|
94
|
+
* const invalidExtension = parse(`
|
|
95
|
+
* extend type Missing {
|
|
96
|
+
* field: String
|
|
97
|
+
* }
|
|
98
|
+
* `);
|
|
99
|
+
*
|
|
100
|
+
* extendSchema(schema, invalidExtension); // throws an error
|
|
101
|
+
* extendSchema(schema, invalidExtension, {
|
|
102
|
+
* assumeValid: true,
|
|
103
|
+
* assumeValidSDL: true,
|
|
104
|
+
* }); // does not throw
|
|
105
|
+
* ```
|
|
50
106
|
*/
|
|
51
107
|
function extendSchema(schema, documentAST, options) {
|
|
52
108
|
(0, _schema.assertSchema)(schema);
|
|
@@ -69,9 +125,7 @@ function extendSchema(schema, documentAST, options) {
|
|
|
69
125
|
? schema
|
|
70
126
|
: new _schema.GraphQLSchema(extendedConfig);
|
|
71
127
|
}
|
|
72
|
-
/**
|
|
73
|
-
* @internal
|
|
74
|
-
*/
|
|
128
|
+
/** @internal */
|
|
75
129
|
|
|
76
130
|
function extendSchemaImpl(schemaConfig, documentAST, options) {
|
|
77
131
|
var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid;
|
|
@@ -826,6 +880,8 @@ const stdTypeMap = (0, _keyMap.keyMap)(
|
|
|
826
880
|
/**
|
|
827
881
|
* Given a field or enum value node, returns the string value for the
|
|
828
882
|
* deprecation reason.
|
|
883
|
+
*
|
|
884
|
+
* @internal
|
|
829
885
|
*/
|
|
830
886
|
|
|
831
887
|
function getDeprecationReason(node) {
|
|
@@ -840,6 +896,8 @@ function getDeprecationReason(node) {
|
|
|
840
896
|
}
|
|
841
897
|
/**
|
|
842
898
|
* Given a scalar node, returns the string value for the specifiedByURL.
|
|
899
|
+
*
|
|
900
|
+
* @internal
|
|
843
901
|
*/
|
|
844
902
|
|
|
845
903
|
function getSpecifiedByURL(node) {
|
|
@@ -854,6 +912,8 @@ function getSpecifiedByURL(node) {
|
|
|
854
912
|
}
|
|
855
913
|
/**
|
|
856
914
|
* Given an input object node, returns if the node should be OneOf.
|
|
915
|
+
*
|
|
916
|
+
* @internal
|
|
857
917
|
*/
|
|
858
918
|
|
|
859
919
|
function isOneOf(node) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Schema Construction */
|
|
1
2
|
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
3
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
3
4
|
import { invariant } from '../jsutils/invariant.mjs';
|
|
@@ -56,6 +57,60 @@ import { valueFromAST } from './valueFromAST.mjs';
|
|
|
56
57
|
*
|
|
57
58
|
* This algorithm copies the provided schema, applying extensions while
|
|
58
59
|
* producing the copy. The original schema remains unaltered.
|
|
60
|
+
* @param schema - GraphQL schema to use.
|
|
61
|
+
* @param documentAST - The parsed GraphQL document AST.
|
|
62
|
+
* @param options - Optional configuration for this operation.
|
|
63
|
+
* @returns A new schema with the extensions and definitions applied.
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* // Extend a schema with new fields and types.
|
|
67
|
+
* import { parse } from 'graphql/language';
|
|
68
|
+
* import { buildSchema, extendSchema } from 'graphql/utilities';
|
|
69
|
+
*
|
|
70
|
+
* const schema = buildSchema(`
|
|
71
|
+
* type Query {
|
|
72
|
+
* greeting: String
|
|
73
|
+
* }
|
|
74
|
+
* `);
|
|
75
|
+
* const extensionAST = parse(`
|
|
76
|
+
* extend type Query {
|
|
77
|
+
* farewell: String
|
|
78
|
+
* }
|
|
79
|
+
*
|
|
80
|
+
* type Review {
|
|
81
|
+
* body: String
|
|
82
|
+
* }
|
|
83
|
+
* `);
|
|
84
|
+
*
|
|
85
|
+
* const extendedSchema = extendSchema(schema, extensionAST);
|
|
86
|
+
*
|
|
87
|
+
* schema.getType('Review'); // => undefined
|
|
88
|
+
* extendedSchema.getType('Review')?.name; // => 'Review'
|
|
89
|
+
* Object.keys(extendedSchema.getQueryType().getFields()); // => ['greeting', 'farewell']
|
|
90
|
+
* ```
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* // This variant bypasses validation for an otherwise invalid extension.
|
|
94
|
+
* import { parse } from 'graphql/language';
|
|
95
|
+
* import { buildSchema, extendSchema } from 'graphql/utilities';
|
|
96
|
+
*
|
|
97
|
+
* const schema = buildSchema(`
|
|
98
|
+
* type Query {
|
|
99
|
+
* greeting: String
|
|
100
|
+
* }
|
|
101
|
+
* `);
|
|
102
|
+
* const invalidExtension = parse(`
|
|
103
|
+
* extend type Missing {
|
|
104
|
+
* field: String
|
|
105
|
+
* }
|
|
106
|
+
* `);
|
|
107
|
+
*
|
|
108
|
+
* extendSchema(schema, invalidExtension); // throws an error
|
|
109
|
+
* extendSchema(schema, invalidExtension, {
|
|
110
|
+
* assumeValid: true,
|
|
111
|
+
* assumeValidSDL: true,
|
|
112
|
+
* }); // does not throw
|
|
113
|
+
* ```
|
|
59
114
|
*/
|
|
60
115
|
export function extendSchema(schema, documentAST, options) {
|
|
61
116
|
assertSchema(schema);
|
|
@@ -78,9 +133,7 @@ export function extendSchema(schema, documentAST, options) {
|
|
|
78
133
|
? schema
|
|
79
134
|
: new GraphQLSchema(extendedConfig);
|
|
80
135
|
}
|
|
81
|
-
/**
|
|
82
|
-
* @internal
|
|
83
|
-
*/
|
|
136
|
+
/** @internal */
|
|
84
137
|
|
|
85
138
|
export function extendSchemaImpl(schemaConfig, documentAST, options) {
|
|
86
139
|
var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid;
|
|
@@ -824,6 +877,8 @@ const stdTypeMap = keyMap(
|
|
|
824
877
|
/**
|
|
825
878
|
* Given a field or enum value node, returns the string value for the
|
|
826
879
|
* deprecation reason.
|
|
880
|
+
*
|
|
881
|
+
* @internal
|
|
827
882
|
*/
|
|
828
883
|
|
|
829
884
|
function getDeprecationReason(node) {
|
|
@@ -835,6 +890,8 @@ function getDeprecationReason(node) {
|
|
|
835
890
|
}
|
|
836
891
|
/**
|
|
837
892
|
* Given a scalar node, returns the string value for the specifiedByURL.
|
|
893
|
+
*
|
|
894
|
+
* @internal
|
|
838
895
|
*/
|
|
839
896
|
|
|
840
897
|
function getSpecifiedByURL(node) {
|
|
@@ -846,6 +903,8 @@ function getSpecifiedByURL(node) {
|
|
|
846
903
|
}
|
|
847
904
|
/**
|
|
848
905
|
* Given an input object node, returns if the node should be OneOf.
|
|
906
|
+
*
|
|
907
|
+
* @internal
|
|
849
908
|
*/
|
|
850
909
|
|
|
851
910
|
function isOneOf(node) {
|
|
@@ -1,43 +1,106 @@
|
|
|
1
|
+
/** @category Schema Changes */
|
|
1
2
|
import type { GraphQLSchema } from '../type/schema';
|
|
3
|
+
/** Categories of schema changes that may break existing operations. */
|
|
2
4
|
declare enum BreakingChangeType {
|
|
5
|
+
/** Breaking change code for type removed. */
|
|
3
6
|
TYPE_REMOVED = 'TYPE_REMOVED',
|
|
7
|
+
/** Breaking change code for type changed kind. */
|
|
4
8
|
TYPE_CHANGED_KIND = 'TYPE_CHANGED_KIND',
|
|
9
|
+
/** Breaking change code for type removed from union. */
|
|
5
10
|
TYPE_REMOVED_FROM_UNION = 'TYPE_REMOVED_FROM_UNION',
|
|
11
|
+
/** Breaking change code for value removed from enum. */
|
|
6
12
|
VALUE_REMOVED_FROM_ENUM = 'VALUE_REMOVED_FROM_ENUM',
|
|
13
|
+
/** Breaking change code for required input field added. */
|
|
7
14
|
REQUIRED_INPUT_FIELD_ADDED = 'REQUIRED_INPUT_FIELD_ADDED',
|
|
15
|
+
/** Breaking change code for implemented interface removed. */
|
|
8
16
|
IMPLEMENTED_INTERFACE_REMOVED = 'IMPLEMENTED_INTERFACE_REMOVED',
|
|
17
|
+
/** Breaking change code for field removed. */
|
|
9
18
|
FIELD_REMOVED = 'FIELD_REMOVED',
|
|
19
|
+
/** Breaking change code for field changed kind. */
|
|
10
20
|
FIELD_CHANGED_KIND = 'FIELD_CHANGED_KIND',
|
|
21
|
+
/** Breaking change code for required arg added. */
|
|
11
22
|
REQUIRED_ARG_ADDED = 'REQUIRED_ARG_ADDED',
|
|
23
|
+
/** Breaking change code for arg removed. */
|
|
12
24
|
ARG_REMOVED = 'ARG_REMOVED',
|
|
25
|
+
/** Breaking change code for arg changed kind. */
|
|
13
26
|
ARG_CHANGED_KIND = 'ARG_CHANGED_KIND',
|
|
27
|
+
/** Breaking change code for directive removed. */
|
|
14
28
|
DIRECTIVE_REMOVED = 'DIRECTIVE_REMOVED',
|
|
29
|
+
/** Breaking change code for directive arg removed. */
|
|
15
30
|
DIRECTIVE_ARG_REMOVED = 'DIRECTIVE_ARG_REMOVED',
|
|
31
|
+
/** Breaking change code for required directive arg added. */
|
|
16
32
|
REQUIRED_DIRECTIVE_ARG_ADDED = 'REQUIRED_DIRECTIVE_ARG_ADDED',
|
|
33
|
+
/** Breaking change code for directive repeatable removed. */
|
|
17
34
|
DIRECTIVE_REPEATABLE_REMOVED = 'DIRECTIVE_REPEATABLE_REMOVED',
|
|
35
|
+
/** Breaking change code for directive location removed. */
|
|
18
36
|
DIRECTIVE_LOCATION_REMOVED = 'DIRECTIVE_LOCATION_REMOVED',
|
|
19
37
|
}
|
|
20
38
|
export { BreakingChangeType };
|
|
39
|
+
/** Categories of schema changes that may be dangerous for existing operations. */
|
|
21
40
|
declare enum DangerousChangeType {
|
|
41
|
+
/** Dangerous change code for value added to enum. */
|
|
22
42
|
VALUE_ADDED_TO_ENUM = 'VALUE_ADDED_TO_ENUM',
|
|
43
|
+
/** Dangerous change code for type added to union. */
|
|
23
44
|
TYPE_ADDED_TO_UNION = 'TYPE_ADDED_TO_UNION',
|
|
45
|
+
/** Dangerous change code for optional input field added. */
|
|
24
46
|
OPTIONAL_INPUT_FIELD_ADDED = 'OPTIONAL_INPUT_FIELD_ADDED',
|
|
47
|
+
/** Dangerous change code for optional arg added. */
|
|
25
48
|
OPTIONAL_ARG_ADDED = 'OPTIONAL_ARG_ADDED',
|
|
49
|
+
/** Dangerous change code for implemented interface added. */
|
|
26
50
|
IMPLEMENTED_INTERFACE_ADDED = 'IMPLEMENTED_INTERFACE_ADDED',
|
|
51
|
+
/** Dangerous change code for arg default value change. */
|
|
27
52
|
ARG_DEFAULT_VALUE_CHANGE = 'ARG_DEFAULT_VALUE_CHANGE',
|
|
28
53
|
}
|
|
29
54
|
export { DangerousChangeType };
|
|
55
|
+
/** Description of a schema change that may break existing operations. */
|
|
30
56
|
export interface BreakingChange {
|
|
57
|
+
/** Specific kind of breaking schema change. */
|
|
31
58
|
type: BreakingChangeType;
|
|
59
|
+
/** Human-readable description of the breaking schema change. */
|
|
32
60
|
description: string;
|
|
33
61
|
}
|
|
62
|
+
/** Description of a schema change that may be dangerous for existing operations. */
|
|
34
63
|
export interface DangerousChange {
|
|
64
|
+
/** Specific kind of dangerous schema change. */
|
|
35
65
|
type: DangerousChangeType;
|
|
66
|
+
/** Human-readable description of the dangerous schema change. */
|
|
36
67
|
description: string;
|
|
37
68
|
}
|
|
38
69
|
/**
|
|
39
70
|
* Given two schemas, returns an Array containing descriptions of all the types
|
|
40
71
|
* of breaking changes covered by the other functions down below.
|
|
72
|
+
* @param oldSchema - Schema before the change.
|
|
73
|
+
* @param newSchema - Schema after the change.
|
|
74
|
+
* @returns Breaking changes between the two schemas.
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* import { buildSchema, findBreakingChanges } from 'graphql/utilities';
|
|
78
|
+
*
|
|
79
|
+
* const oldSchema = buildSchema(`
|
|
80
|
+
* type User {
|
|
81
|
+
* id: ID!
|
|
82
|
+
* name: String
|
|
83
|
+
* }
|
|
84
|
+
*
|
|
85
|
+
* type Query {
|
|
86
|
+
* viewer: User
|
|
87
|
+
* }
|
|
88
|
+
* `);
|
|
89
|
+
* const newSchema = buildSchema(`
|
|
90
|
+
* type User {
|
|
91
|
+
* id: ID!
|
|
92
|
+
* }
|
|
93
|
+
*
|
|
94
|
+
* type Query {
|
|
95
|
+
* viewer: User
|
|
96
|
+
* }
|
|
97
|
+
* `);
|
|
98
|
+
*
|
|
99
|
+
* const changes = findBreakingChanges(oldSchema, newSchema);
|
|
100
|
+
*
|
|
101
|
+
* changes[0].type; // => 'FIELD_REMOVED'
|
|
102
|
+
* changes[0].description; // matches /User.name was removed/
|
|
103
|
+
* ```
|
|
41
104
|
*/
|
|
42
105
|
export declare function findBreakingChanges(
|
|
43
106
|
oldSchema: GraphQLSchema,
|
|
@@ -46,6 +109,38 @@ export declare function findBreakingChanges(
|
|
|
46
109
|
/**
|
|
47
110
|
* Given two schemas, returns an Array containing descriptions of all the types
|
|
48
111
|
* of potentially dangerous changes covered by the other functions down below.
|
|
112
|
+
* @param oldSchema - Schema before the change.
|
|
113
|
+
* @param newSchema - Schema after the change.
|
|
114
|
+
* @returns Dangerous changes between the two schemas.
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* import { buildSchema, findDangerousChanges } from 'graphql/utilities';
|
|
118
|
+
*
|
|
119
|
+
* const oldSchema = buildSchema(`
|
|
120
|
+
* enum Episode {
|
|
121
|
+
* NEW_HOPE
|
|
122
|
+
* }
|
|
123
|
+
*
|
|
124
|
+
* type Query {
|
|
125
|
+
* episode: Episode
|
|
126
|
+
* }
|
|
127
|
+
* `);
|
|
128
|
+
* const newSchema = buildSchema(`
|
|
129
|
+
* enum Episode {
|
|
130
|
+
* NEW_HOPE
|
|
131
|
+
* EMPIRE
|
|
132
|
+
* }
|
|
133
|
+
*
|
|
134
|
+
* type Query {
|
|
135
|
+
* episode: Episode
|
|
136
|
+
* }
|
|
137
|
+
* `);
|
|
138
|
+
*
|
|
139
|
+
* const changes = findDangerousChanges(oldSchema, newSchema);
|
|
140
|
+
*
|
|
141
|
+
* changes[0].type; // => 'VALUE_ADDED_TO_ENUM'
|
|
142
|
+
* changes[0].description; // matches /EMPIRE was added/
|
|
143
|
+
* ```
|
|
49
144
|
*/
|
|
50
145
|
export declare function findDangerousChanges(
|
|
51
146
|
oldSchema: GraphQLSchema,
|
|
@@ -23,6 +23,9 @@ var _astFromValue = require('./astFromValue.js');
|
|
|
23
23
|
|
|
24
24
|
var _sortValueNode = require('./sortValueNode.js');
|
|
25
25
|
|
|
26
|
+
/** @category Schema Changes */
|
|
27
|
+
|
|
28
|
+
/** Categories of schema changes that may break existing operations. */
|
|
26
29
|
var BreakingChangeType;
|
|
27
30
|
exports.BreakingChangeType = BreakingChangeType;
|
|
28
31
|
|
|
@@ -52,6 +55,7 @@ exports.BreakingChangeType = BreakingChangeType;
|
|
|
52
55
|
BreakingChangeType || (exports.BreakingChangeType = BreakingChangeType = {}),
|
|
53
56
|
);
|
|
54
57
|
|
|
58
|
+
/** Categories of schema changes that may be dangerous for existing operations. */
|
|
55
59
|
var DangerousChangeType;
|
|
56
60
|
exports.DangerousChangeType = DangerousChangeType;
|
|
57
61
|
|
|
@@ -72,6 +76,38 @@ exports.DangerousChangeType = DangerousChangeType;
|
|
|
72
76
|
/**
|
|
73
77
|
* Given two schemas, returns an Array containing descriptions of all the types
|
|
74
78
|
* of breaking changes covered by the other functions down below.
|
|
79
|
+
* @param oldSchema - Schema before the change.
|
|
80
|
+
* @param newSchema - Schema after the change.
|
|
81
|
+
* @returns Breaking changes between the two schemas.
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* import { buildSchema, findBreakingChanges } from 'graphql/utilities';
|
|
85
|
+
*
|
|
86
|
+
* const oldSchema = buildSchema(`
|
|
87
|
+
* type User {
|
|
88
|
+
* id: ID!
|
|
89
|
+
* name: String
|
|
90
|
+
* }
|
|
91
|
+
*
|
|
92
|
+
* type Query {
|
|
93
|
+
* viewer: User
|
|
94
|
+
* }
|
|
95
|
+
* `);
|
|
96
|
+
* const newSchema = buildSchema(`
|
|
97
|
+
* type User {
|
|
98
|
+
* id: ID!
|
|
99
|
+
* }
|
|
100
|
+
*
|
|
101
|
+
* type Query {
|
|
102
|
+
* viewer: User
|
|
103
|
+
* }
|
|
104
|
+
* `);
|
|
105
|
+
*
|
|
106
|
+
* const changes = findBreakingChanges(oldSchema, newSchema);
|
|
107
|
+
*
|
|
108
|
+
* changes[0].type; // => 'FIELD_REMOVED'
|
|
109
|
+
* changes[0].description; // matches /User.name was removed/
|
|
110
|
+
* ```
|
|
75
111
|
*/
|
|
76
112
|
function findBreakingChanges(oldSchema, newSchema) {
|
|
77
113
|
// @ts-expect-error
|
|
@@ -82,6 +118,38 @@ function findBreakingChanges(oldSchema, newSchema) {
|
|
|
82
118
|
/**
|
|
83
119
|
* Given two schemas, returns an Array containing descriptions of all the types
|
|
84
120
|
* of potentially dangerous changes covered by the other functions down below.
|
|
121
|
+
* @param oldSchema - Schema before the change.
|
|
122
|
+
* @param newSchema - Schema after the change.
|
|
123
|
+
* @returns Dangerous changes between the two schemas.
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* import { buildSchema, findDangerousChanges } from 'graphql/utilities';
|
|
127
|
+
*
|
|
128
|
+
* const oldSchema = buildSchema(`
|
|
129
|
+
* enum Episode {
|
|
130
|
+
* NEW_HOPE
|
|
131
|
+
* }
|
|
132
|
+
*
|
|
133
|
+
* type Query {
|
|
134
|
+
* episode: Episode
|
|
135
|
+
* }
|
|
136
|
+
* `);
|
|
137
|
+
* const newSchema = buildSchema(`
|
|
138
|
+
* enum Episode {
|
|
139
|
+
* NEW_HOPE
|
|
140
|
+
* EMPIRE
|
|
141
|
+
* }
|
|
142
|
+
*
|
|
143
|
+
* type Query {
|
|
144
|
+
* episode: Episode
|
|
145
|
+
* }
|
|
146
|
+
* `);
|
|
147
|
+
*
|
|
148
|
+
* const changes = findDangerousChanges(oldSchema, newSchema);
|
|
149
|
+
*
|
|
150
|
+
* changes[0].type; // => 'VALUE_ADDED_TO_ENUM'
|
|
151
|
+
* changes[0].description; // matches /EMPIRE was added/
|
|
152
|
+
* ```
|
|
85
153
|
*/
|
|
86
154
|
|
|
87
155
|
function findDangerousChanges(oldSchema, newSchema) {
|