graphql 17.0.0-beta.0 → 17.0.0-beta.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/__dev__/execution/buildResolveInfo.d.mts +1 -0
- package/__dev__/execution/buildResolveInfo.d.ts +1 -0
- package/__dev__/execution/buildResolveInfo.js +3 -0
- package/__dev__/execution/buildResolveInfo.mjs +3 -0
- package/devMode.js +2 -2
- package/devMode.js.map +1 -1
- package/devMode.mjs.map +1 -1
- package/error/GraphQLError.d.mts +4 -4
- package/error/GraphQLError.d.ts +4 -4
- package/error/GraphQLError.js +10 -11
- package/error/GraphQLError.js.map +1 -1
- package/error/GraphQLError.mjs +2 -3
- package/error/GraphQLError.mjs.map +1 -1
- package/error/ensureGraphQLError.d.mts +1 -1
- package/error/ensureGraphQLError.d.ts +1 -1
- package/error/ensureGraphQLError.js +5 -5
- package/error/ensureGraphQLError.js.map +1 -1
- package/error/ensureGraphQLError.mjs.map +1 -1
- package/error/index.d.mts +4 -4
- package/error/index.d.ts +4 -4
- package/error/index.js +6 -6
- package/error/index.js.map +1 -1
- package/error/index.mjs.map +1 -1
- package/error/locatedError.d.mts +3 -3
- package/error/locatedError.d.ts +3 -3
- package/error/locatedError.js +4 -4
- package/error/locatedError.js.map +1 -1
- package/error/locatedError.mjs.map +1 -1
- package/error/syntaxError.d.mts +2 -2
- package/error/syntaxError.d.ts +2 -2
- package/error/syntaxError.js +2 -2
- package/error/syntaxError.js.map +1 -1
- package/error/syntaxError.mjs.map +1 -1
- package/execution/AbortedGraphQLExecutionError.d.mts +1 -1
- package/execution/AbortedGraphQLExecutionError.d.ts +1 -1
- package/execution/AbortedGraphQLExecutionError.js.map +1 -1
- package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
- package/execution/AsyncWorkTracker.js +2 -2
- package/execution/AsyncWorkTracker.js.map +1 -1
- package/execution/AsyncWorkTracker.mjs.map +1 -1
- package/execution/Executor.d.mts +16 -17
- package/execution/Executor.d.ts +16 -17
- package/execution/Executor.js +83 -85
- package/execution/Executor.js.map +1 -1
- package/execution/Executor.mjs +3 -5
- package/execution/Executor.mjs.map +1 -1
- package/execution/ExecutorThrowingOnIncremental.d.mts +6 -6
- package/execution/ExecutorThrowingOnIncremental.d.ts +6 -6
- package/execution/ExecutorThrowingOnIncremental.js +11 -11
- package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
- package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
- package/execution/buildResolveInfo.d.mts +14 -0
- package/execution/buildResolveInfo.d.ts +14 -0
- package/execution/buildResolveInfo.js +24 -0
- package/execution/buildResolveInfo.js.map +1 -0
- package/execution/buildResolveInfo.mjs +21 -0
- package/execution/buildResolveInfo.mjs.map +1 -0
- package/execution/cancellablePromise.js +2 -2
- package/execution/cancellablePromise.js.map +1 -1
- package/execution/cancellablePromise.mjs.map +1 -1
- package/execution/collectFields.d.mts +6 -6
- package/execution/collectFields.d.ts +6 -6
- package/execution/collectFields.js +19 -19
- package/execution/collectFields.js.map +1 -1
- package/execution/collectFields.mjs.map +1 -1
- package/execution/collectIteratorPromises.js +2 -2
- package/execution/collectIteratorPromises.js.map +1 -1
- package/execution/collectIteratorPromises.mjs.map +1 -1
- package/execution/createSharedExecutionContext.d.mts +2 -2
- package/execution/createSharedExecutionContext.d.ts +2 -2
- package/execution/createSharedExecutionContext.js +2 -2
- package/execution/createSharedExecutionContext.js.map +1 -1
- package/execution/createSharedExecutionContext.mjs.map +1 -1
- package/execution/execute.d.mts +14 -14
- package/execution/execute.d.ts +14 -14
- package/execution/execute.js +78 -98
- package/execution/execute.js.map +1 -1
- package/execution/execute.mjs +17 -37
- package/execution/execute.mjs.map +1 -1
- package/execution/getStreamUsage.d.mts +2 -2
- package/execution/getStreamUsage.d.ts +2 -2
- package/execution/getStreamUsage.js +9 -9
- package/execution/getStreamUsage.js.map +1 -1
- package/execution/getStreamUsage.mjs.map +1 -1
- package/execution/getVariableSignature.d.mts +3 -3
- package/execution/getVariableSignature.d.ts +3 -3
- package/execution/getVariableSignature.js +8 -8
- package/execution/getVariableSignature.js.map +1 -1
- package/execution/getVariableSignature.mjs.map +1 -1
- package/execution/hooks.d.mts +2 -2
- package/execution/hooks.d.ts +2 -2
- package/execution/hooks.js.map +1 -1
- package/execution/hooks.mjs.map +1 -1
- package/execution/incremental/Computation.d.mts +1 -1
- package/execution/incremental/Computation.d.ts +1 -1
- package/execution/incremental/Computation.js +2 -2
- package/execution/incremental/Computation.js.map +1 -1
- package/execution/incremental/Computation.mjs.map +1 -1
- package/execution/incremental/IncrementalExecutor.d.mts +14 -14
- package/execution/incremental/IncrementalExecutor.d.ts +14 -14
- package/execution/incremental/IncrementalExecutor.js +48 -48
- package/execution/incremental/IncrementalExecutor.js.map +1 -1
- package/execution/incremental/IncrementalExecutor.mjs +3 -3
- package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
- package/execution/incremental/IncrementalPublisher.d.mts +3 -3
- package/execution/incremental/IncrementalPublisher.d.ts +3 -3
- package/execution/incremental/IncrementalPublisher.js +13 -14
- package/execution/incremental/IncrementalPublisher.js.map +1 -1
- package/execution/incremental/IncrementalPublisher.mjs +1 -2
- package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
- package/execution/incremental/Queue.d.mts +1 -1
- package/execution/incremental/Queue.d.ts +1 -1
- package/execution/incremental/Queue.js +26 -22
- package/execution/incremental/Queue.js.map +1 -1
- package/execution/incremental/Queue.mjs +10 -6
- package/execution/incremental/Queue.mjs.map +1 -1
- package/execution/incremental/WorkQueue.d.mts +2 -2
- package/execution/incremental/WorkQueue.d.ts +2 -2
- package/execution/incremental/WorkQueue.js +7 -7
- package/execution/incremental/WorkQueue.js.map +1 -1
- package/execution/incremental/WorkQueue.mjs.map +1 -1
- package/execution/incremental/buildExecutionPlan.d.mts +1 -1
- package/execution/incremental/buildExecutionPlan.d.ts +1 -1
- package/execution/incremental/buildExecutionPlan.js +4 -4
- package/execution/incremental/buildExecutionPlan.js.map +1 -1
- package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
- package/execution/index.d.mts +8 -8
- package/execution/index.d.ts +8 -8
- package/execution/index.js +23 -22
- package/execution/index.js.map +1 -1
- package/execution/index.mjs +1 -1
- package/execution/index.mjs.map +1 -1
- package/execution/mapAsyncIterable.d.mts +1 -1
- package/execution/mapAsyncIterable.d.ts +1 -1
- package/execution/mapAsyncIterable.js +4 -4
- package/execution/mapAsyncIterable.js.map +1 -1
- package/execution/mapAsyncIterable.mjs.map +1 -1
- package/execution/returnIteratorCatchingErrors.js +1 -1
- package/execution/returnIteratorCatchingErrors.js.map +1 -1
- package/execution/returnIteratorCatchingErrors.mjs +1 -1
- package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
- package/execution/values.d.mts +9 -9
- package/execution/values.d.ts +9 -9
- package/execution/values.js +34 -34
- package/execution/values.js.map +1 -1
- package/execution/values.mjs +2 -2
- package/execution/values.mjs.map +1 -1
- package/execution/withConcurrentAbruptClose.d.mts +1 -1
- package/execution/withConcurrentAbruptClose.d.ts +1 -1
- package/execution/withConcurrentAbruptClose.js +4 -4
- package/execution/withConcurrentAbruptClose.js.map +1 -1
- package/execution/withConcurrentAbruptClose.mjs +2 -2
- package/execution/withConcurrentAbruptClose.mjs.map +1 -1
- package/graphql.d.mts +7 -7
- package/graphql.d.ts +7 -7
- package/graphql.js +11 -11
- package/graphql.js.map +1 -1
- package/graphql.mjs.map +1 -1
- package/harness.d.mts +4 -4
- package/harness.d.ts +4 -4
- package/harness.js +7 -7
- package/harness.js.map +1 -1
- package/harness.mjs.map +1 -1
- package/index.d.mts +20 -20
- package/index.d.ts +20 -20
- package/index.js +253 -252
- package/index.js.map +1 -1
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/jsutils/Path.d.mts +1 -1
- package/jsutils/Path.d.ts +1 -1
- package/jsutils/Path.js.map +1 -1
- package/jsutils/Path.mjs.map +1 -1
- package/jsutils/didYouMean.js +2 -2
- package/jsutils/didYouMean.js.map +1 -1
- package/jsutils/didYouMean.mjs.map +1 -1
- package/jsutils/formatList.js +2 -2
- package/jsutils/formatList.js.map +1 -1
- package/jsutils/formatList.mjs.map +1 -1
- package/jsutils/getBySet.js +2 -2
- package/jsutils/getBySet.js.map +1 -1
- package/jsutils/getBySet.mjs.map +1 -1
- package/jsutils/groupBy.js +2 -2
- package/jsutils/groupBy.js.map +1 -1
- package/jsutils/groupBy.mjs.map +1 -1
- package/jsutils/instanceOf.js +2 -2
- package/jsutils/instanceOf.js.map +1 -1
- package/jsutils/instanceOf.mjs.map +1 -1
- package/jsutils/keyMap.d.mts +1 -1
- package/jsutils/keyMap.d.ts +1 -1
- package/jsutils/keyMap.js.map +1 -1
- package/jsutils/keyMap.mjs.map +1 -1
- package/jsutils/keyValMap.d.mts +1 -1
- package/jsutils/keyValMap.d.ts +1 -1
- package/jsutils/keyValMap.js.map +1 -1
- package/jsutils/keyValMap.mjs.map +1 -1
- package/jsutils/mapValue.d.mts +1 -1
- package/jsutils/mapValue.d.ts +1 -1
- package/jsutils/mapValue.js.map +1 -1
- package/jsutils/mapValue.mjs.map +1 -1
- package/jsutils/promiseForObject.d.mts +2 -2
- package/jsutils/promiseForObject.d.ts +2 -2
- package/jsutils/promiseForObject.js.map +1 -1
- package/jsutils/promiseForObject.mjs.map +1 -1
- package/jsutils/promiseReduce.d.mts +1 -1
- package/jsutils/promiseReduce.d.ts +1 -1
- package/jsutils/promiseReduce.js +2 -2
- package/jsutils/promiseReduce.js.map +1 -1
- package/jsutils/promiseReduce.mjs.map +1 -1
- package/jsutils/promiseWithResolvers.d.mts +1 -1
- package/jsutils/promiseWithResolvers.d.ts +1 -1
- package/jsutils/promiseWithResolvers.js.map +1 -1
- package/jsutils/promiseWithResolvers.mjs.map +1 -1
- package/jsutils/suggestionList.js +2 -2
- package/jsutils/suggestionList.js.map +1 -1
- package/jsutils/suggestionList.mjs.map +1 -1
- package/jsutils/toError.js +2 -2
- package/jsutils/toError.js.map +1 -1
- package/jsutils/toError.mjs.map +1 -1
- package/jsutils/toObjMap.d.mts +2 -2
- package/jsutils/toObjMap.d.ts +2 -2
- package/jsutils/toObjMap.js.map +1 -1
- package/jsutils/toObjMap.mjs.map +1 -1
- package/language/KindTypeMap.d.mts +1 -1
- package/language/KindTypeMap.d.ts +1 -1
- package/language/KindTypeMap.js.map +1 -1
- package/language/KindTypeMap.mjs.map +1 -1
- package/language/ast.d.mts +12 -5
- package/language/ast.d.ts +12 -5
- package/language/ast.js +8 -1
- package/language/ast.js.map +1 -1
- package/language/ast.mjs +8 -1
- package/language/ast.mjs.map +1 -1
- package/language/blockString.js +4 -4
- package/language/blockString.js.map +1 -1
- package/language/blockString.mjs.map +1 -1
- package/language/directiveLocation.d.mts +2 -1
- package/language/directiveLocation.d.ts +2 -1
- package/language/directiveLocation.js +2 -1
- package/language/directiveLocation.js.map +1 -1
- package/language/directiveLocation.mjs +2 -1
- package/language/directiveLocation.mjs.map +1 -1
- package/language/index.d.mts +16 -16
- package/language/index.d.ts +16 -16
- package/language/index.js +45 -45
- package/language/index.js.map +1 -1
- package/language/index.mjs.map +1 -1
- package/language/kinds.d.mts +2 -2
- package/language/kinds.d.ts +2 -2
- package/language/kinds.js.map +1 -1
- package/language/kinds.mjs.map +1 -1
- package/language/kinds_.d.mts +2 -0
- package/language/kinds_.d.ts +2 -0
- package/language/kinds_.js +2 -1
- package/language/kinds_.js.map +1 -1
- package/language/kinds_.mjs +1 -0
- package/language/kinds_.mjs.map +1 -1
- package/language/lexer.d.mts +3 -3
- package/language/lexer.d.ts +3 -3
- package/language/lexer.js +67 -67
- package/language/lexer.js.map +1 -1
- package/language/lexer.mjs.map +1 -1
- package/language/location.d.mts +1 -1
- package/language/location.d.ts +1 -1
- package/language/location.js +2 -2
- package/language/location.js.map +1 -1
- package/language/location.mjs.map +1 -1
- package/language/parser.d.mts +20 -7
- package/language/parser.d.ts +20 -7
- package/language/parser.js +185 -155
- package/language/parser.js.map +1 -1
- package/language/parser.mjs +30 -0
- package/language/parser.mjs.map +1 -1
- package/language/predicates.d.mts +1 -1
- package/language/predicates.d.ts +1 -1
- package/language/predicates.js +45 -43
- package/language/predicates.js.map +1 -1
- package/language/predicates.mjs +3 -1
- package/language/predicates.mjs.map +1 -1
- package/language/printLocation.d.mts +3 -3
- package/language/printLocation.d.ts +3 -3
- package/language/printLocation.js +2 -2
- package/language/printLocation.js.map +1 -1
- package/language/printLocation.mjs.map +1 -1
- package/language/printer.d.mts +1 -1
- package/language/printer.d.ts +1 -1
- package/language/printer.js +10 -6
- package/language/printer.js.map +1 -1
- package/language/printer.mjs +5 -1
- package/language/printer.mjs.map +1 -1
- package/language/schemaCoordinateLexer.d.mts +3 -3
- package/language/schemaCoordinateLexer.d.ts +3 -3
- package/language/schemaCoordinateLexer.js +16 -16
- package/language/schemaCoordinateLexer.js.map +1 -1
- package/language/schemaCoordinateLexer.mjs.map +1 -1
- package/language/source.js +5 -5
- package/language/source.js.map +1 -1
- package/language/source.mjs.map +1 -1
- package/language/visitor.d.mts +2 -2
- package/language/visitor.d.ts +2 -2
- package/language/visitor.js +10 -10
- package/language/visitor.js.map +1 -1
- package/language/visitor.mjs.map +1 -1
- package/package.json +2 -2
- package/type/assertName.js +8 -8
- package/type/assertName.js.map +1 -1
- package/type/assertName.mjs.map +1 -1
- package/type/definition.d.mts +9 -9
- package/type/definition.d.ts +9 -9
- package/type/definition.js +94 -94
- package/type/definition.js.map +1 -1
- package/type/definition.mjs.map +1 -1
- package/type/directives.d.mts +11 -6
- package/type/directives.d.ts +11 -6
- package/type/directives.js +51 -46
- package/type/directives.js.map +1 -1
- package/type/directives.mjs +5 -0
- package/type/directives.mjs.map +1 -1
- package/type/index.d.mts +12 -12
- package/type/index.d.ts +12 -12
- package/type/index.js +106 -106
- package/type/index.js.map +1 -1
- package/type/index.mjs.map +1 -1
- package/type/introspection.d.mts +2 -2
- package/type/introspection.d.ts +2 -2
- package/type/introspection.js +123 -103
- package/type/introspection.js.map +1 -1
- package/type/introspection.mjs +25 -5
- package/type/introspection.mjs.map +1 -1
- package/type/scalars.d.mts +2 -2
- package/type/scalars.d.ts +2 -2
- package/type/scalars.js +61 -61
- package/type/scalars.js.map +1 -1
- package/type/scalars.mjs.map +1 -1
- package/type/schema.d.mts +7 -7
- package/type/schema.d.ts +7 -7
- package/type/schema.js +32 -32
- package/type/schema.js.map +1 -1
- package/type/schema.mjs.map +1 -1
- package/type/validate.d.mts +4 -4
- package/type/validate.d.ts +4 -4
- package/type/validate.js +83 -83
- package/type/validate.js.map +1 -1
- package/type/validate.mjs +1 -1
- package/type/validate.mjs.map +1 -1
- package/utilities/TypeInfo.d.mts +6 -6
- package/utilities/TypeInfo.d.ts +6 -6
- package/utilities/TypeInfo.js +61 -61
- package/utilities/TypeInfo.js.map +1 -1
- package/utilities/TypeInfo.mjs +1 -1
- package/utilities/TypeInfo.mjs.map +1 -1
- package/utilities/astFromValue.d.mts +3 -3
- package/utilities/astFromValue.d.ts +3 -3
- package/utilities/astFromValue.js +31 -33
- package/utilities/astFromValue.js.map +1 -1
- package/utilities/astFromValue.mjs +1 -3
- package/utilities/astFromValue.mjs.map +1 -1
- package/utilities/buildASTSchema.d.mts +5 -5
- package/utilities/buildASTSchema.d.ts +5 -5
- package/utilities/buildASTSchema.js +11 -10
- package/utilities/buildASTSchema.js.map +1 -1
- package/utilities/buildASTSchema.mjs +1 -0
- package/utilities/buildASTSchema.mjs.map +1 -1
- package/utilities/buildClientSchema.d.mts +3 -3
- package/utilities/buildClientSchema.d.ts +3 -3
- package/utilities/buildClientSchema.js +53 -52
- package/utilities/buildClientSchema.js.map +1 -1
- package/utilities/buildClientSchema.mjs +1 -0
- package/utilities/buildClientSchema.mjs.map +1 -1
- package/utilities/coerceInputValue.d.mts +5 -5
- package/utilities/coerceInputValue.d.ts +5 -5
- package/utilities/coerceInputValue.js +31 -31
- package/utilities/coerceInputValue.js.map +1 -1
- package/utilities/coerceInputValue.mjs.map +1 -1
- package/utilities/concatAST.d.mts +1 -1
- package/utilities/concatAST.d.ts +1 -1
- package/utilities/concatAST.js +2 -2
- package/utilities/concatAST.js.map +1 -1
- package/utilities/concatAST.mjs.map +1 -1
- package/utilities/extendSchema.d.mts +3 -3
- package/utilities/extendSchema.d.ts +3 -3
- package/utilities/extendSchema.js +92 -66
- package/utilities/extendSchema.js.map +1 -1
- package/utilities/extendSchema.mjs +27 -1
- package/utilities/extendSchema.mjs.map +1 -1
- package/utilities/findSchemaChanges.d.mts +1 -1
- package/utilities/findSchemaChanges.d.ts +1 -1
- package/utilities/findSchemaChanges.js +42 -44
- package/utilities/findSchemaChanges.js.map +1 -1
- package/utilities/findSchemaChanges.mjs +1 -3
- package/utilities/findSchemaChanges.mjs.map +1 -1
- package/utilities/getDefaultValueAST.d.mts +2 -2
- package/utilities/getDefaultValueAST.d.ts +2 -2
- package/utilities/getDefaultValueAST.js +9 -7
- package/utilities/getDefaultValueAST.js.map +1 -1
- package/utilities/getDefaultValueAST.mjs +2 -0
- package/utilities/getDefaultValueAST.mjs.map +1 -1
- package/utilities/getIntrospectionQuery.d.mts +19 -3
- package/utilities/getIntrospectionQuery.d.ts +19 -3
- package/utilities/getIntrospectionQuery.js +22 -38
- package/utilities/getIntrospectionQuery.js.map +1 -1
- package/utilities/getIntrospectionQuery.mjs +22 -38
- package/utilities/getIntrospectionQuery.mjs.map +1 -1
- package/utilities/getOperationAST.d.mts +2 -2
- package/utilities/getOperationAST.d.ts +2 -2
- package/utilities/getOperationAST.js +2 -2
- package/utilities/getOperationAST.js.map +1 -1
- package/utilities/getOperationAST.mjs.map +1 -1
- package/utilities/index.d.mts +28 -28
- package/utilities/index.d.ts +28 -28
- package/utilities/index.js +61 -61
- package/utilities/index.js.map +1 -1
- package/utilities/index.mjs.map +1 -1
- package/utilities/introspectionFromSchema.d.mts +2 -2
- package/utilities/introspectionFromSchema.d.ts +2 -2
- package/utilities/introspectionFromSchema.js +8 -7
- package/utilities/introspectionFromSchema.js.map +1 -1
- package/utilities/introspectionFromSchema.mjs +1 -0
- package/utilities/introspectionFromSchema.mjs.map +1 -1
- package/utilities/lexicographicSortSchema.d.mts +1 -1
- package/utilities/lexicographicSortSchema.d.ts +1 -1
- package/utilities/lexicographicSortSchema.js +14 -14
- package/utilities/lexicographicSortSchema.js.map +1 -1
- package/utilities/lexicographicSortSchema.mjs.map +1 -1
- package/utilities/mapSchemaConfig.d.mts +3 -3
- package/utilities/mapSchemaConfig.d.ts +3 -3
- package/utilities/mapSchemaConfig.js +29 -31
- package/utilities/mapSchemaConfig.js.map +1 -1
- package/utilities/mapSchemaConfig.mjs +1 -3
- package/utilities/mapSchemaConfig.mjs.map +1 -1
- package/utilities/printSchema.d.mts +3 -3
- package/utilities/printSchema.d.ts +3 -3
- package/utilities/printSchema.js +31 -32
- package/utilities/printSchema.js.map +1 -1
- package/utilities/printSchema.mjs +2 -3
- package/utilities/printSchema.mjs.map +1 -1
- package/utilities/replaceVariables.d.mts +4 -4
- package/utilities/replaceVariables.d.ts +4 -4
- package/utilities/replaceVariables.js +9 -9
- package/utilities/replaceVariables.js.map +1 -1
- package/utilities/replaceVariables.mjs.map +1 -1
- package/utilities/resolveSchemaCoordinate.d.mts +5 -5
- package/utilities/resolveSchemaCoordinate.d.ts +5 -5
- package/utilities/resolveSchemaCoordinate.js +23 -23
- package/utilities/resolveSchemaCoordinate.js.map +1 -1
- package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
- package/utilities/separateOperations.d.mts +2 -2
- package/utilities/separateOperations.d.ts +2 -2
- package/utilities/separateOperations.js +7 -7
- package/utilities/separateOperations.js.map +1 -1
- package/utilities/separateOperations.mjs.map +1 -1
- package/utilities/sortValueNode.d.mts +1 -1
- package/utilities/sortValueNode.d.ts +1 -1
- package/utilities/sortValueNode.js +12 -12
- package/utilities/sortValueNode.js.map +1 -1
- package/utilities/sortValueNode.mjs.map +1 -1
- package/utilities/stripIgnoredCharacters.d.mts +1 -1
- package/utilities/stripIgnoredCharacters.d.ts +1 -1
- package/utilities/stripIgnoredCharacters.js +11 -11
- package/utilities/stripIgnoredCharacters.js.map +1 -1
- package/utilities/stripIgnoredCharacters.mjs.map +1 -1
- package/utilities/typeComparators.d.mts +2 -2
- package/utilities/typeComparators.d.ts +2 -2
- package/utilities/typeComparators.js +14 -14
- package/utilities/typeComparators.js.map +1 -1
- package/utilities/typeComparators.mjs.map +1 -1
- package/utilities/typeFromAST.d.mts +4 -4
- package/utilities/typeFromAST.d.ts +4 -4
- package/utilities/typeFromAST.js +7 -7
- package/utilities/typeFromAST.js.map +1 -1
- package/utilities/typeFromAST.mjs.map +1 -1
- package/utilities/typedQueryDocumentNode.d.mts +1 -1
- package/utilities/typedQueryDocumentNode.d.ts +1 -1
- package/utilities/typedQueryDocumentNode.js.map +1 -1
- package/utilities/typedQueryDocumentNode.mjs.map +1 -1
- package/utilities/validateInputValue.d.mts +6 -6
- package/utilities/validateInputValue.d.ts +6 -6
- package/utilities/validateInputValue.js +60 -60
- package/utilities/validateInputValue.js.map +1 -1
- package/utilities/validateInputValue.mjs.map +1 -1
- package/utilities/valueFromAST.d.mts +4 -4
- package/utilities/valueFromAST.d.ts +4 -4
- package/utilities/valueFromAST.js +20 -22
- package/utilities/valueFromAST.js.map +1 -1
- package/utilities/valueFromAST.mjs +1 -3
- package/utilities/valueFromAST.mjs.map +1 -1
- package/utilities/valueFromASTUntyped.d.mts +3 -3
- package/utilities/valueFromASTUntyped.d.ts +3 -3
- package/utilities/valueFromASTUntyped.js +12 -12
- package/utilities/valueFromASTUntyped.js.map +1 -1
- package/utilities/valueFromASTUntyped.mjs.map +1 -1
- package/utilities/valueToLiteral.d.mts +2 -2
- package/utilities/valueToLiteral.d.ts +2 -2
- package/utilities/valueToLiteral.js +30 -30
- package/utilities/valueToLiteral.js.map +1 -1
- package/utilities/valueToLiteral.mjs.map +1 -1
- package/validation/ValidationContext.d.mts +9 -9
- package/validation/ValidationContext.d.ts +9 -9
- package/validation/ValidationContext.js +8 -8
- package/validation/ValidationContext.js.map +1 -1
- package/validation/ValidationContext.mjs.map +1 -1
- package/validation/index.d.mts +46 -46
- package/validation/index.d.ts +46 -46
- package/validation/index.js +91 -91
- package/validation/index.js.map +1 -1
- package/validation/index.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +2 -2
- package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +2 -2
- package/validation/rules/DeferStreamDirectiveLabelRule.js +9 -9
- package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +2 -2
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +2 -2
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +8 -8
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +2 -2
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +2 -2
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +14 -14
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.d.mts +2 -2
- package/validation/rules/ExecutableDefinitionsRule.d.ts +2 -2
- package/validation/rules/ExecutableDefinitionsRule.js +7 -7
- package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.d.mts +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.js +14 -14
- package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +2 -2
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +2 -2
- package/validation/rules/FragmentsOnCompositeTypesRule.js +12 -12
- package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.d.mts +2 -2
- package/validation/rules/KnownArgumentNamesRule.d.ts +2 -2
- package/validation/rules/KnownArgumentNamesRule.js +16 -16
- package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownDirectivesRule.d.mts +2 -2
- package/validation/rules/KnownDirectivesRule.d.ts +2 -2
- package/validation/rules/KnownDirectivesRule.js +67 -64
- package/validation/rules/KnownDirectivesRule.js.map +1 -1
- package/validation/rules/KnownDirectivesRule.mjs +4 -1
- package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.d.mts +2 -2
- package/validation/rules/KnownFragmentNamesRule.d.ts +2 -2
- package/validation/rules/KnownFragmentNamesRule.js +2 -2
- package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownOperationTypesRule.d.mts +2 -2
- package/validation/rules/KnownOperationTypesRule.d.ts +2 -2
- package/validation/rules/KnownOperationTypesRule.js +2 -2
- package/validation/rules/KnownOperationTypesRule.js.map +1 -1
- package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
- package/validation/rules/KnownTypeNamesRule.d.mts +2 -2
- package/validation/rules/KnownTypeNamesRule.d.ts +2 -2
- package/validation/rules/KnownTypeNamesRule.js +11 -11
- package/validation/rules/KnownTypeNamesRule.js.map +1 -1
- package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.d.mts +2 -2
- package/validation/rules/LoneAnonymousOperationRule.d.ts +2 -2
- package/validation/rules/LoneAnonymousOperationRule.js +4 -4
- package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.d.mts +2 -2
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +2 -2
- package/validation/rules/LoneSchemaDefinitionRule.js +3 -3
- package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.d.mts +2 -2
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +2 -2
- package/validation/rules/MaxIntrospectionDepthRule.js +5 -5
- package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.d.mts +2 -2
- package/validation/rules/NoFragmentCyclesRule.d.ts +2 -2
- package/validation/rules/NoFragmentCyclesRule.js +2 -2
- package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.d.mts +2 -2
- package/validation/rules/NoUndefinedVariablesRule.d.ts +2 -2
- package/validation/rules/NoUndefinedVariablesRule.js +2 -2
- package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.d.mts +2 -2
- package/validation/rules/NoUnusedFragmentsRule.d.ts +2 -2
- package/validation/rules/NoUnusedFragmentsRule.js +2 -2
- package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.d.mts +2 -2
- package/validation/rules/NoUnusedVariablesRule.d.ts +2 -2
- package/validation/rules/NoUnusedVariablesRule.js +3 -3
- package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +2 -2
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +2 -2
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +31 -31
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.d.mts +2 -2
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +2 -2
- package/validation/rules/PossibleFragmentSpreadsRule.js +17 -17
- package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.d.mts +2 -2
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +2 -2
- package/validation/rules/PossibleTypeExtensionsRule.js +40 -42
- package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.mjs +2 -4
- package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +2 -2
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +2 -2
- package/validation/rules/ProvidedRequiredArgumentsRule.js +20 -20
- package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
- package/validation/rules/ScalarLeafsRule.d.mts +2 -2
- package/validation/rules/ScalarLeafsRule.d.ts +2 -2
- package/validation/rules/ScalarLeafsRule.js +10 -10
- package/validation/rules/ScalarLeafsRule.js.map +1 -1
- package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.d.mts +2 -2
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +2 -2
- package/validation/rules/SingleFieldSubscriptionsRule.js +8 -8
- package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +2 -2
- package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +2 -2
- package/validation/rules/StreamDirectiveOnListFieldRule.js +7 -7
- package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +2 -2
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +2 -2
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +4 -4
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.d.mts +2 -2
- package/validation/rules/UniqueArgumentNamesRule.d.ts +2 -2
- package/validation/rules/UniqueArgumentNamesRule.js +4 -4
- package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.d.mts +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.js +3 -3
- package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +2 -2
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +2 -2
- package/validation/rules/UniqueDirectivesPerLocationRule.js +20 -10
- package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +10 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.d.mts +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.js +5 -5
- package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +2 -2
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +2 -2
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +5 -5
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.d.mts +2 -2
- package/validation/rules/UniqueFragmentNamesRule.d.ts +2 -2
- package/validation/rules/UniqueFragmentNamesRule.js +2 -2
- package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.d.mts +2 -2
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +2 -2
- package/validation/rules/UniqueInputFieldNamesRule.js +4 -4
- package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.d.mts +2 -2
- package/validation/rules/UniqueOperationNamesRule.d.ts +2 -2
- package/validation/rules/UniqueOperationNamesRule.js +2 -2
- package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.d.mts +2 -2
- package/validation/rules/UniqueOperationTypesRule.d.ts +2 -2
- package/validation/rules/UniqueOperationTypesRule.js +3 -3
- package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.d.mts +2 -2
- package/validation/rules/UniqueTypeNamesRule.d.ts +2 -2
- package/validation/rules/UniqueTypeNamesRule.js +3 -3
- package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.d.mts +2 -2
- package/validation/rules/UniqueVariableNamesRule.d.ts +2 -2
- package/validation/rules/UniqueVariableNamesRule.js +4 -4
- package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.d.mts +2 -2
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +2 -2
- package/validation/rules/ValuesOfCorrectTypeRule.js +2 -2
- package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.d.mts +2 -2
- package/validation/rules/VariablesAreInputTypesRule.d.ts +2 -2
- package/validation/rules/VariablesAreInputTypesRule.js +8 -8
- package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.d.mts +2 -2
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +2 -2
- package/validation/rules/VariablesInAllowedPositionRule.js +14 -14
- package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +2 -2
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +2 -2
- package/validation/rules/custom/NoDeprecatedCustomRule.js +8 -8
- package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +2 -2
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +2 -2
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +6 -6
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
- package/validation/specifiedRules.d.mts +1 -1
- package/validation/specifiedRules.d.ts +1 -1
- package/validation/specifiedRules.js +87 -87
- package/validation/specifiedRules.js.map +1 -1
- package/validation/specifiedRules.mjs.map +1 -1
- package/validation/validate.d.mts +5 -5
- package/validation/validate.d.ts +5 -5
- package/validation/validate.js +19 -19
- package/validation/validate.js.map +1 -1
- package/validation/validate.mjs.map +1 -1
- package/version.js +2 -2
- package/version.js.map +1 -1
- package/version.mjs +2 -2
- package/version.mjs.map +1 -1
|
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.coerceInputValue = coerceInputValue;
|
|
4
4
|
exports.coerceInputLiteral = coerceInputLiteral;
|
|
5
5
|
exports.coerceDefaultValue = coerceDefaultValue;
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
6
|
+
const inspect_ts_1 = require("../jsutils/inspect.js");
|
|
7
|
+
const invariant_ts_1 = require("../jsutils/invariant.js");
|
|
8
|
+
const isIterableObject_ts_1 = require("../jsutils/isIterableObject.js");
|
|
9
|
+
const isObjectLike_ts_1 = require("../jsutils/isObjectLike.js");
|
|
10
|
+
const kinds_ts_1 = require("../language/kinds.js");
|
|
11
|
+
const definition_ts_1 = require("../type/definition.js");
|
|
12
|
+
const replaceVariables_ts_1 = require("./replaceVariables.js");
|
|
13
13
|
/**
|
|
14
14
|
* Coerces a JavaScript value given a GraphQL Input Type.
|
|
15
15
|
*
|
|
@@ -17,7 +17,7 @@ const replaceVariables_js_1 = require("./replaceVariables.js");
|
|
|
17
17
|
* the provided type.
|
|
18
18
|
*/
|
|
19
19
|
function coerceInputValue(inputValue, type) {
|
|
20
|
-
if ((0,
|
|
20
|
+
if ((0, definition_ts_1.isNonNullType)(type)) {
|
|
21
21
|
if (inputValue == null) {
|
|
22
22
|
return; // Invalid: intentionally return no value.
|
|
23
23
|
}
|
|
@@ -26,8 +26,8 @@ function coerceInputValue(inputValue, type) {
|
|
|
26
26
|
if (inputValue == null) {
|
|
27
27
|
return null; // Explicitly return the value null.
|
|
28
28
|
}
|
|
29
|
-
if ((0,
|
|
30
|
-
if (!(0,
|
|
29
|
+
if ((0, definition_ts_1.isListType)(type)) {
|
|
30
|
+
if (!(0, isIterableObject_ts_1.isIterableObject)(inputValue)) {
|
|
31
31
|
// Lists accept a non-list value as a list of one.
|
|
32
32
|
const coercedItem = coerceInputValue(inputValue, type.ofType);
|
|
33
33
|
if (coercedItem === undefined) {
|
|
@@ -45,8 +45,8 @@ function coerceInputValue(inputValue, type) {
|
|
|
45
45
|
}
|
|
46
46
|
return coercedValue;
|
|
47
47
|
}
|
|
48
|
-
if ((0,
|
|
49
|
-
if (!(0,
|
|
48
|
+
if ((0, definition_ts_1.isInputObjectType)(type)) {
|
|
49
|
+
if (!(0, isObjectLike_ts_1.isObjectLike)(inputValue) || Array.isArray(inputValue)) {
|
|
50
50
|
return; // Invalid: intentionally return no value.
|
|
51
51
|
}
|
|
52
52
|
const coercedValue = Object.create(null);
|
|
@@ -64,7 +64,7 @@ function coerceInputValue(inputValue, type) {
|
|
|
64
64
|
for (const field of Object.values(fieldDefs)) {
|
|
65
65
|
const fieldValue = inputValue[field.name];
|
|
66
66
|
if (fieldValue === undefined) {
|
|
67
|
-
if ((0,
|
|
67
|
+
if ((0, definition_ts_1.isRequiredInputField)(field)) {
|
|
68
68
|
return; // Invalid: intentionally return no value.
|
|
69
69
|
}
|
|
70
70
|
const coercedDefaultValue = coerceDefaultValue(field);
|
|
@@ -93,7 +93,7 @@ function coerceInputValue(inputValue, type) {
|
|
|
93
93
|
}
|
|
94
94
|
return coercedValue;
|
|
95
95
|
}
|
|
96
|
-
const leafType = (0,
|
|
96
|
+
const leafType = (0, definition_ts_1.assertLeafType)(type);
|
|
97
97
|
try {
|
|
98
98
|
return leafType.coerceInputValue(inputValue);
|
|
99
99
|
}
|
|
@@ -108,26 +108,26 @@ function coerceInputValue(inputValue, type) {
|
|
|
108
108
|
* the provided type.
|
|
109
109
|
*/
|
|
110
110
|
function coerceInputLiteral(valueNode, type, variableValues, fragmentVariableValues) {
|
|
111
|
-
if (valueNode.kind ===
|
|
111
|
+
if (valueNode.kind === kinds_ts_1.Kind.VARIABLE) {
|
|
112
112
|
const coercedVariableValue = getCoercedVariableValue(valueNode, variableValues, fragmentVariableValues);
|
|
113
|
-
if (coercedVariableValue == null && (0,
|
|
113
|
+
if (coercedVariableValue == null && (0, definition_ts_1.isNonNullType)(type)) {
|
|
114
114
|
return; // Invalid: intentionally return no value.
|
|
115
115
|
}
|
|
116
116
|
// Note: This does no further checking that this variable is correct.
|
|
117
117
|
// This assumes validated has checked this variable is of the correct type.
|
|
118
118
|
return coercedVariableValue;
|
|
119
119
|
}
|
|
120
|
-
if ((0,
|
|
121
|
-
if (valueNode.kind ===
|
|
120
|
+
if ((0, definition_ts_1.isNonNullType)(type)) {
|
|
121
|
+
if (valueNode.kind === kinds_ts_1.Kind.NULL) {
|
|
122
122
|
return; // Invalid: intentionally return no value.
|
|
123
123
|
}
|
|
124
124
|
return coerceInputLiteral(valueNode, type.ofType, variableValues, fragmentVariableValues);
|
|
125
125
|
}
|
|
126
|
-
if (valueNode.kind ===
|
|
126
|
+
if (valueNode.kind === kinds_ts_1.Kind.NULL) {
|
|
127
127
|
return null; // Explicitly return the value null.
|
|
128
128
|
}
|
|
129
|
-
if ((0,
|
|
130
|
-
if (valueNode.kind !==
|
|
129
|
+
if ((0, definition_ts_1.isListType)(type)) {
|
|
130
|
+
if (valueNode.kind !== kinds_ts_1.Kind.LIST) {
|
|
131
131
|
// Lists accept a non-list value as a list of one.
|
|
132
132
|
const itemValue = coerceInputLiteral(valueNode, type.ofType, variableValues, fragmentVariableValues);
|
|
133
133
|
if (itemValue === undefined) {
|
|
@@ -139,9 +139,9 @@ function coerceInputLiteral(valueNode, type, variableValues, fragmentVariableVal
|
|
|
139
139
|
for (const itemNode of valueNode.values) {
|
|
140
140
|
let itemValue = coerceInputLiteral(itemNode, type.ofType, variableValues, fragmentVariableValues);
|
|
141
141
|
if (itemValue === undefined) {
|
|
142
|
-
if (itemNode.kind ===
|
|
142
|
+
if (itemNode.kind === kinds_ts_1.Kind.VARIABLE &&
|
|
143
143
|
getCoercedVariableValue(itemNode, variableValues, fragmentVariableValues) == null &&
|
|
144
|
-
!(0,
|
|
144
|
+
!(0, definition_ts_1.isNonNullType)(type.ofType)) {
|
|
145
145
|
// A missing variable within a list is coerced to null.
|
|
146
146
|
itemValue = null;
|
|
147
147
|
}
|
|
@@ -153,8 +153,8 @@ function coerceInputLiteral(valueNode, type, variableValues, fragmentVariableVal
|
|
|
153
153
|
}
|
|
154
154
|
return coercedValue;
|
|
155
155
|
}
|
|
156
|
-
if ((0,
|
|
157
|
-
if (valueNode.kind !==
|
|
156
|
+
if ((0, definition_ts_1.isInputObjectType)(type)) {
|
|
157
|
+
if (valueNode.kind !== kinds_ts_1.Kind.OBJECT) {
|
|
158
158
|
return; // Invalid: intentionally return no value.
|
|
159
159
|
}
|
|
160
160
|
const coercedValue = Object.create(null);
|
|
@@ -167,9 +167,9 @@ function coerceInputLiteral(valueNode, type, variableValues, fragmentVariableVal
|
|
|
167
167
|
for (const field of Object.values(fieldDefs)) {
|
|
168
168
|
const fieldNode = fieldNodes.get(field.name);
|
|
169
169
|
if (!fieldNode ||
|
|
170
|
-
(fieldNode.value.kind ===
|
|
170
|
+
(fieldNode.value.kind === kinds_ts_1.Kind.VARIABLE &&
|
|
171
171
|
isMissingVariable(fieldNode.value, variableValues, fragmentVariableValues))) {
|
|
172
|
-
if ((0,
|
|
172
|
+
if ((0, definition_ts_1.isRequiredInputField)(field)) {
|
|
173
173
|
return; // Invalid: intentionally return no value.
|
|
174
174
|
}
|
|
175
175
|
const coercedDefaultValue = coerceDefaultValue(field);
|
|
@@ -191,7 +191,7 @@ function coerceInputLiteral(valueNode, type, variableValues, fragmentVariableVal
|
|
|
191
191
|
return; // Invalid: not exactly one key, intentionally return no value.
|
|
192
192
|
}
|
|
193
193
|
for (const [fieldName, fieldNode] of fieldNodes) {
|
|
194
|
-
if (fieldNode.value.kind ===
|
|
194
|
+
if (fieldNode.value.kind === kinds_ts_1.Kind.NULL ||
|
|
195
195
|
coercedValue[fieldName] === null) {
|
|
196
196
|
return; // Invalid: value not non-null, intentionally return no value.
|
|
197
197
|
}
|
|
@@ -199,10 +199,10 @@ function coerceInputLiteral(valueNode, type, variableValues, fragmentVariableVal
|
|
|
199
199
|
}
|
|
200
200
|
return coercedValue;
|
|
201
201
|
}
|
|
202
|
-
const leafType = (0,
|
|
202
|
+
const leafType = (0, definition_ts_1.assertLeafType)(type);
|
|
203
203
|
try {
|
|
204
204
|
return leafType.coerceInputLiteral
|
|
205
|
-
? leafType.coerceInputLiteral((0,
|
|
205
|
+
? leafType.coerceInputLiteral((0, replaceVariables_ts_1.replaceVariables)(valueNode, variableValues, fragmentVariableValues))
|
|
206
206
|
: leafType.parseLiteral(valueNode, variableValues?.coerced);
|
|
207
207
|
}
|
|
208
208
|
catch (_error) {
|
|
@@ -244,7 +244,7 @@ function coerceDefaultValue(inputValue) {
|
|
|
244
244
|
? coerceInputLiteral(defaultInput.literal, inputValue.type)
|
|
245
245
|
: coerceInputValue(defaultInput.value, inputValue.type);
|
|
246
246
|
if (!(coercedDefaultValue !== undefined))
|
|
247
|
-
(0,
|
|
247
|
+
(0, invariant_ts_1.invariant)(false, `Expected value of type "${inputValue.type}" to be valid, found: ${(0, inspect_ts_1.inspect)(defaultInput.literal ?? defaultInput.value)}.`);
|
|
248
248
|
inputValue._memoizedCoercedDefaultValue = coercedDefaultValue;
|
|
249
249
|
return coercedDefaultValue;
|
|
250
250
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerceInputValue.js","sourceRoot":"","sources":["../../src/utilities/coerceInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.js';\nimport { invariant } from '../jsutils/invariant.js';\nimport { isIterableObject } from '../jsutils/isIterableObject.js';\nimport { isObjectLike } from '../jsutils/isObjectLike.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap } from '../jsutils/ObjMap.js';\n\nimport type { ValueNode, VariableNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\n\nimport type {\n GraphQLDefaultInput,\n GraphQLInputType,\n} from '../type/definition.js';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.js';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.js';\nimport type { VariableValues } from '../execution/values.js';\n\nimport { replaceVariables } from './replaceVariables.js';\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n): unknown {\n if (isNonNullType(type)) {\n if (inputValue == null) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputValue(inputValue, type.ofType);\n }\n\n if (inputValue == null) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n const coercedItem = coerceInputValue(inputValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedItem];\n }\n const coercedValue = [];\n for (const itemValue of inputValue) {\n const coercedItem = coerceInputValue(itemValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue.push(coercedItem);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n let definedFieldCount = 0;\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n definedFieldCount++;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n return; // Invalid: intentionally return no value.\n }\n }\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const coercedField = coerceInputValue(fieldValue, field.type);\n if (coercedField === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = coercedField;\n }\n }\n\n if (type.isOneOf) {\n const keys = Object.keys(coercedValue);\n if (definedFieldCount !== 1 || keys.length !== 1) {\n return; // Invalid: intentionally return no value.\n }\n\n const key = keys[0];\n const value = coercedValue[key];\n if (value === null) {\n return; // Invalid: intentionally return no value.\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n\n try {\n return leafType.coerceInputValue(inputValue);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n/**\n * Produces a coerced \"internal\" JavaScript value given a GraphQL Value AST.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n): unknown {\n if (valueNode.kind === Kind.VARIABLE) {\n const coercedVariableValue = getCoercedVariableValue(\n valueNode,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedVariableValue == null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes validated has checked this variable is of the correct type.\n return coercedVariableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n const itemValue = coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [itemValue];\n }\n const coercedValue: Array<unknown> = [];\n for (const itemNode of valueNode.values) {\n let itemValue = coerceInputLiteral(\n itemNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n if (\n itemNode.kind === Kind.VARIABLE &&\n getCoercedVariableValue(\n itemNode,\n variableValues,\n fragmentVariableValues,\n ) == null &&\n !isNonNullType(type.ofType)\n ) {\n // A missing variable within a list is coerced to null.\n itemValue = null;\n } else {\n return; // Invalid: intentionally return no value.\n }\n }\n coercedValue.push(itemValue);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUndefinedField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUndefinedField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (\n !fieldNode ||\n (fieldNode.value.kind === Kind.VARIABLE &&\n isMissingVariable(\n fieldNode.value,\n variableValues,\n fragmentVariableValues,\n ))\n ) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const fieldValue = coerceInputLiteral(\n fieldNode.value,\n field.type,\n variableValues,\n fragmentVariableValues,\n );\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = fieldValue;\n }\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedValue);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedValue[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n try {\n return leafType.coerceInputLiteral\n ? leafType.coerceInputLiteral(\n replaceVariables(valueNode, variableValues, fragmentVariableValues),\n )\n : leafType.parseLiteral(valueNode, variableValues?.coerced);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n// Retrieves the variable value for the given variable node.\nfunction getCoercedVariableValue(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): unknown {\n const varName = variableNode.name.value;\n if (fragmentVariableValues?.sources[varName] !== undefined) {\n return fragmentVariableValues.coerced[varName];\n }\n\n return variableValues?.coerced[varName];\n}\n\nfunction isMissingVariable(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): boolean {\n const varName = variableNode.name.value;\n const scopedValues =\n fragmentVariableValues?.sources[varName] !== undefined\n ? fragmentVariableValues.coerced\n : variableValues?.coerced;\n return scopedValues?.[varName] === undefined;\n}\n\ninterface InputValue {\n type: GraphQLInputType;\n default?: GraphQLDefaultInput | undefined;\n defaultValue?: unknown;\n}\n\n/**\n * Returns the coerced default value for an input value definition, if it exists.\n *\n * If the default value is invalid, this will throw an error. Invalid default\n * values should be caught during validation, however, so this function assumes\n * that the default value is valid.\n * @internal\n */\nexport function coerceDefaultValue(inputValue: InputValue): unknown {\n // Memoize the result of coercing the default value in a hidden field.\n let coercedDefaultValue = (inputValue as any)._memoizedCoercedDefaultValue;\n if (coercedDefaultValue !== undefined) {\n return coercedDefaultValue;\n }\n\n const defaultInput = inputValue.default;\n if (defaultInput !== undefined) {\n coercedDefaultValue = defaultInput.literal\n ? coerceInputLiteral(defaultInput.literal, inputValue.type)\n : coerceInputValue(defaultInput.value, inputValue.type);\n invariant(\n coercedDefaultValue !== undefined,\n `Expected value of type \"${inputValue.type}\" to be valid, found: ${inspect(\n defaultInput.literal ?? defaultInput.value,\n )}.`,\n );\n (inputValue as any)._memoizedCoercedDefaultValue = coercedDefaultValue;\n return coercedDefaultValue;\n }\n\n const defaultValue = inputValue.defaultValue;\n if (defaultValue !== undefined) {\n (inputValue as any)._memoizedCoercedDefaultValue = defaultValue;\n }\n return defaultValue;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"coerceInputValue.js","sourceRoot":"","sources":["../../src/utilities/coerceInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.ts';\nimport { invariant } from '../jsutils/invariant.ts';\nimport { isIterableObject } from '../jsutils/isIterableObject.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type { ValueNode, VariableNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\nimport type {\n GraphQLDefaultInput,\n GraphQLInputType,\n} from '../type/definition.ts';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.ts';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.ts';\nimport type { VariableValues } from '../execution/values.ts';\n\nimport { replaceVariables } from './replaceVariables.ts';\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n): unknown {\n if (isNonNullType(type)) {\n if (inputValue == null) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputValue(inputValue, type.ofType);\n }\n\n if (inputValue == null) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n const coercedItem = coerceInputValue(inputValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedItem];\n }\n const coercedValue = [];\n for (const itemValue of inputValue) {\n const coercedItem = coerceInputValue(itemValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue.push(coercedItem);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n let definedFieldCount = 0;\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n definedFieldCount++;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n return; // Invalid: intentionally return no value.\n }\n }\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const coercedField = coerceInputValue(fieldValue, field.type);\n if (coercedField === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = coercedField;\n }\n }\n\n if (type.isOneOf) {\n const keys = Object.keys(coercedValue);\n if (definedFieldCount !== 1 || keys.length !== 1) {\n return; // Invalid: intentionally return no value.\n }\n\n const key = keys[0];\n const value = coercedValue[key];\n if (value === null) {\n return; // Invalid: intentionally return no value.\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n\n try {\n return leafType.coerceInputValue(inputValue);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n/**\n * Produces a coerced \"internal\" JavaScript value given a GraphQL Value AST.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n): unknown {\n if (valueNode.kind === Kind.VARIABLE) {\n const coercedVariableValue = getCoercedVariableValue(\n valueNode,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedVariableValue == null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes validated has checked this variable is of the correct type.\n return coercedVariableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n const itemValue = coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [itemValue];\n }\n const coercedValue: Array<unknown> = [];\n for (const itemNode of valueNode.values) {\n let itemValue = coerceInputLiteral(\n itemNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n if (\n itemNode.kind === Kind.VARIABLE &&\n getCoercedVariableValue(\n itemNode,\n variableValues,\n fragmentVariableValues,\n ) == null &&\n !isNonNullType(type.ofType)\n ) {\n // A missing variable within a list is coerced to null.\n itemValue = null;\n } else {\n return; // Invalid: intentionally return no value.\n }\n }\n coercedValue.push(itemValue);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUndefinedField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUndefinedField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (\n !fieldNode ||\n (fieldNode.value.kind === Kind.VARIABLE &&\n isMissingVariable(\n fieldNode.value,\n variableValues,\n fragmentVariableValues,\n ))\n ) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const fieldValue = coerceInputLiteral(\n fieldNode.value,\n field.type,\n variableValues,\n fragmentVariableValues,\n );\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = fieldValue;\n }\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedValue);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedValue[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n try {\n return leafType.coerceInputLiteral\n ? leafType.coerceInputLiteral(\n replaceVariables(valueNode, variableValues, fragmentVariableValues),\n )\n : leafType.parseLiteral(valueNode, variableValues?.coerced);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n// Retrieves the variable value for the given variable node.\nfunction getCoercedVariableValue(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): unknown {\n const varName = variableNode.name.value;\n if (fragmentVariableValues?.sources[varName] !== undefined) {\n return fragmentVariableValues.coerced[varName];\n }\n\n return variableValues?.coerced[varName];\n}\n\nfunction isMissingVariable(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): boolean {\n const varName = variableNode.name.value;\n const scopedValues =\n fragmentVariableValues?.sources[varName] !== undefined\n ? fragmentVariableValues.coerced\n : variableValues?.coerced;\n return scopedValues?.[varName] === undefined;\n}\n\ninterface InputValue {\n type: GraphQLInputType;\n default?: GraphQLDefaultInput | undefined;\n defaultValue?: unknown;\n}\n\n/**\n * Returns the coerced default value for an input value definition, if it exists.\n *\n * If the default value is invalid, this will throw an error. Invalid default\n * values should be caught during validation, however, so this function assumes\n * that the default value is valid.\n * @internal\n */\nexport function coerceDefaultValue(inputValue: InputValue): unknown {\n // Memoize the result of coercing the default value in a hidden field.\n let coercedDefaultValue = (inputValue as any)._memoizedCoercedDefaultValue;\n if (coercedDefaultValue !== undefined) {\n return coercedDefaultValue;\n }\n\n const defaultInput = inputValue.default;\n if (defaultInput !== undefined) {\n coercedDefaultValue = defaultInput.literal\n ? coerceInputLiteral(defaultInput.literal, inputValue.type)\n : coerceInputValue(defaultInput.value, inputValue.type);\n invariant(\n coercedDefaultValue !== undefined,\n `Expected value of type \"${inputValue.type}\" to be valid, found: ${inspect(\n defaultInput.literal ?? defaultInput.value,\n )}.`,\n );\n (inputValue as any)._memoizedCoercedDefaultValue = coercedDefaultValue;\n return coercedDefaultValue;\n }\n\n const defaultValue = inputValue.defaultValue;\n if (defaultValue !== undefined) {\n (inputValue as any)._memoizedCoercedDefaultValue = defaultValue;\n }\n return defaultValue;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerceInputValue.js","sourceRoot":"","sources":["../../src/utilities/coerceInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.js';\nimport { invariant } from '../jsutils/invariant.js';\nimport { isIterableObject } from '../jsutils/isIterableObject.js';\nimport { isObjectLike } from '../jsutils/isObjectLike.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap } from '../jsutils/ObjMap.js';\n\nimport type { ValueNode, VariableNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\n\nimport type {\n GraphQLDefaultInput,\n GraphQLInputType,\n} from '../type/definition.js';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.js';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.js';\nimport type { VariableValues } from '../execution/values.js';\n\nimport { replaceVariables } from './replaceVariables.js';\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n): unknown {\n if (isNonNullType(type)) {\n if (inputValue == null) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputValue(inputValue, type.ofType);\n }\n\n if (inputValue == null) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n const coercedItem = coerceInputValue(inputValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedItem];\n }\n const coercedValue = [];\n for (const itemValue of inputValue) {\n const coercedItem = coerceInputValue(itemValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue.push(coercedItem);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n let definedFieldCount = 0;\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n definedFieldCount++;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n return; // Invalid: intentionally return no value.\n }\n }\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const coercedField = coerceInputValue(fieldValue, field.type);\n if (coercedField === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = coercedField;\n }\n }\n\n if (type.isOneOf) {\n const keys = Object.keys(coercedValue);\n if (definedFieldCount !== 1 || keys.length !== 1) {\n return; // Invalid: intentionally return no value.\n }\n\n const key = keys[0];\n const value = coercedValue[key];\n if (value === null) {\n return; // Invalid: intentionally return no value.\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n\n try {\n return leafType.coerceInputValue(inputValue);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n/**\n * Produces a coerced \"internal\" JavaScript value given a GraphQL Value AST.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n): unknown {\n if (valueNode.kind === Kind.VARIABLE) {\n const coercedVariableValue = getCoercedVariableValue(\n valueNode,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedVariableValue == null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes validated has checked this variable is of the correct type.\n return coercedVariableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n const itemValue = coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [itemValue];\n }\n const coercedValue: Array<unknown> = [];\n for (const itemNode of valueNode.values) {\n let itemValue = coerceInputLiteral(\n itemNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n if (\n itemNode.kind === Kind.VARIABLE &&\n getCoercedVariableValue(\n itemNode,\n variableValues,\n fragmentVariableValues,\n ) == null &&\n !isNonNullType(type.ofType)\n ) {\n // A missing variable within a list is coerced to null.\n itemValue = null;\n } else {\n return; // Invalid: intentionally return no value.\n }\n }\n coercedValue.push(itemValue);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUndefinedField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUndefinedField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (\n !fieldNode ||\n (fieldNode.value.kind === Kind.VARIABLE &&\n isMissingVariable(\n fieldNode.value,\n variableValues,\n fragmentVariableValues,\n ))\n ) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const fieldValue = coerceInputLiteral(\n fieldNode.value,\n field.type,\n variableValues,\n fragmentVariableValues,\n );\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = fieldValue;\n }\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedValue);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedValue[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n try {\n return leafType.coerceInputLiteral\n ? leafType.coerceInputLiteral(\n replaceVariables(valueNode, variableValues, fragmentVariableValues),\n )\n : leafType.parseLiteral(valueNode, variableValues?.coerced);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n// Retrieves the variable value for the given variable node.\nfunction getCoercedVariableValue(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): unknown {\n const varName = variableNode.name.value;\n if (fragmentVariableValues?.sources[varName] !== undefined) {\n return fragmentVariableValues.coerced[varName];\n }\n\n return variableValues?.coerced[varName];\n}\n\nfunction isMissingVariable(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): boolean {\n const varName = variableNode.name.value;\n const scopedValues =\n fragmentVariableValues?.sources[varName] !== undefined\n ? fragmentVariableValues.coerced\n : variableValues?.coerced;\n return scopedValues?.[varName] === undefined;\n}\n\ninterface InputValue {\n type: GraphQLInputType;\n default?: GraphQLDefaultInput | undefined;\n defaultValue?: unknown;\n}\n\n/**\n * Returns the coerced default value for an input value definition, if it exists.\n *\n * If the default value is invalid, this will throw an error. Invalid default\n * values should be caught during validation, however, so this function assumes\n * that the default value is valid.\n * @internal\n */\nexport function coerceDefaultValue(inputValue: InputValue): unknown {\n // Memoize the result of coercing the default value in a hidden field.\n let coercedDefaultValue = (inputValue as any)._memoizedCoercedDefaultValue;\n if (coercedDefaultValue !== undefined) {\n return coercedDefaultValue;\n }\n\n const defaultInput = inputValue.default;\n if (defaultInput !== undefined) {\n coercedDefaultValue = defaultInput.literal\n ? coerceInputLiteral(defaultInput.literal, inputValue.type)\n : coerceInputValue(defaultInput.value, inputValue.type);\n invariant(\n coercedDefaultValue !== undefined,\n `Expected value of type \"${inputValue.type}\" to be valid, found: ${inspect(\n defaultInput.literal ?? defaultInput.value,\n )}.`,\n );\n (inputValue as any)._memoizedCoercedDefaultValue = coercedDefaultValue;\n return coercedDefaultValue;\n }\n\n const defaultValue = inputValue.defaultValue;\n if (defaultValue !== undefined) {\n (inputValue as any)._memoizedCoercedDefaultValue = defaultValue;\n }\n return defaultValue;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"coerceInputValue.js","sourceRoot":"","sources":["../../src/utilities/coerceInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.ts';\nimport { invariant } from '../jsutils/invariant.ts';\nimport { isIterableObject } from '../jsutils/isIterableObject.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type { ValueNode, VariableNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\nimport type {\n GraphQLDefaultInput,\n GraphQLInputType,\n} from '../type/definition.ts';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.ts';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.ts';\nimport type { VariableValues } from '../execution/values.ts';\n\nimport { replaceVariables } from './replaceVariables.ts';\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n): unknown {\n if (isNonNullType(type)) {\n if (inputValue == null) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputValue(inputValue, type.ofType);\n }\n\n if (inputValue == null) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n const coercedItem = coerceInputValue(inputValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedItem];\n }\n const coercedValue = [];\n for (const itemValue of inputValue) {\n const coercedItem = coerceInputValue(itemValue, type.ofType);\n if (coercedItem === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue.push(coercedItem);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n let definedFieldCount = 0;\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n definedFieldCount++;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n return; // Invalid: intentionally return no value.\n }\n }\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const coercedField = coerceInputValue(fieldValue, field.type);\n if (coercedField === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = coercedField;\n }\n }\n\n if (type.isOneOf) {\n const keys = Object.keys(coercedValue);\n if (definedFieldCount !== 1 || keys.length !== 1) {\n return; // Invalid: intentionally return no value.\n }\n\n const key = keys[0];\n const value = coercedValue[key];\n if (value === null) {\n return; // Invalid: intentionally return no value.\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n\n try {\n return leafType.coerceInputValue(inputValue);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n/**\n * Produces a coerced \"internal\" JavaScript value given a GraphQL Value AST.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n */\nexport function coerceInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n): unknown {\n if (valueNode.kind === Kind.VARIABLE) {\n const coercedVariableValue = getCoercedVariableValue(\n valueNode,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedVariableValue == null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes validated has checked this variable is of the correct type.\n return coercedVariableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return null; // Explicitly return the value null.\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n const itemValue = coerceInputLiteral(\n valueNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [itemValue];\n }\n const coercedValue: Array<unknown> = [];\n for (const itemNode of valueNode.values) {\n let itemValue = coerceInputLiteral(\n itemNode,\n type.ofType,\n variableValues,\n fragmentVariableValues,\n );\n if (itemValue === undefined) {\n if (\n itemNode.kind === Kind.VARIABLE &&\n getCoercedVariableValue(\n itemNode,\n variableValues,\n fragmentVariableValues,\n ) == null &&\n !isNonNullType(type.ofType)\n ) {\n // A missing variable within a list is coerced to null.\n itemValue = null;\n } else {\n return; // Invalid: intentionally return no value.\n }\n }\n coercedValue.push(itemValue);\n }\n return coercedValue;\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n\n const coercedValue: ObjMap<unknown> = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUndefinedField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUndefinedField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (\n !fieldNode ||\n (fieldNode.value.kind === Kind.VARIABLE &&\n isMissingVariable(\n fieldNode.value,\n variableValues,\n fragmentVariableValues,\n ))\n ) {\n if (isRequiredInputField(field)) {\n return; // Invalid: intentionally return no value.\n }\n const coercedDefaultValue = coerceDefaultValue(field);\n if (coercedDefaultValue !== undefined) {\n coercedValue[field.name] = coercedDefaultValue;\n }\n } else {\n const fieldValue = coerceInputLiteral(\n fieldNode.value,\n field.type,\n variableValues,\n fragmentVariableValues,\n );\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValue[field.name] = fieldValue;\n }\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedValue);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedValue[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedValue;\n }\n\n const leafType = assertLeafType(type);\n try {\n return leafType.coerceInputLiteral\n ? leafType.coerceInputLiteral(\n replaceVariables(valueNode, variableValues, fragmentVariableValues),\n )\n : leafType.parseLiteral(valueNode, variableValues?.coerced);\n } catch (_error) {\n // Invalid: ignore error and intentionally return no value.\n }\n}\n\n// Retrieves the variable value for the given variable node.\nfunction getCoercedVariableValue(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): unknown {\n const varName = variableNode.name.value;\n if (fragmentVariableValues?.sources[varName] !== undefined) {\n return fragmentVariableValues.coerced[varName];\n }\n\n return variableValues?.coerced[varName];\n}\n\nfunction isMissingVariable(\n variableNode: VariableNode,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n): boolean {\n const varName = variableNode.name.value;\n const scopedValues =\n fragmentVariableValues?.sources[varName] !== undefined\n ? fragmentVariableValues.coerced\n : variableValues?.coerced;\n return scopedValues?.[varName] === undefined;\n}\n\ninterface InputValue {\n type: GraphQLInputType;\n default?: GraphQLDefaultInput | undefined;\n defaultValue?: unknown;\n}\n\n/**\n * Returns the coerced default value for an input value definition, if it exists.\n *\n * If the default value is invalid, this will throw an error. Invalid default\n * values should be caught during validation, however, so this function assumes\n * that the default value is valid.\n * @internal\n */\nexport function coerceDefaultValue(inputValue: InputValue): unknown {\n // Memoize the result of coercing the default value in a hidden field.\n let coercedDefaultValue = (inputValue as any)._memoizedCoercedDefaultValue;\n if (coercedDefaultValue !== undefined) {\n return coercedDefaultValue;\n }\n\n const defaultInput = inputValue.default;\n if (defaultInput !== undefined) {\n coercedDefaultValue = defaultInput.literal\n ? coerceInputLiteral(defaultInput.literal, inputValue.type)\n : coerceInputValue(defaultInput.value, inputValue.type);\n invariant(\n coercedDefaultValue !== undefined,\n `Expected value of type \"${inputValue.type}\" to be valid, found: ${inspect(\n defaultInput.literal ?? defaultInput.value,\n )}.`,\n );\n (inputValue as any)._memoizedCoercedDefaultValue = coercedDefaultValue;\n return coercedDefaultValue;\n }\n\n const defaultValue = inputValue.defaultValue;\n if (defaultValue !== undefined) {\n (inputValue as any)._memoizedCoercedDefaultValue = defaultValue;\n }\n return defaultValue;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DocumentNode } from
|
|
1
|
+
import type { DocumentNode } from "../language/ast.mjs";
|
|
2
2
|
/**
|
|
3
3
|
* Provided a collection of ASTs, presumably each from different files,
|
|
4
4
|
* concatenate the ASTs together into batched AST, useful for validating many
|
package/utilities/concatAST.d.ts
CHANGED
package/utilities/concatAST.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.concatAST = concatAST;
|
|
4
|
-
const
|
|
4
|
+
const kinds_ts_1 = require("../language/kinds.js");
|
|
5
5
|
/**
|
|
6
6
|
* Provided a collection of ASTs, presumably each from different files,
|
|
7
7
|
* concatenate the ASTs together into batched AST, useful for validating many
|
|
@@ -12,6 +12,6 @@ function concatAST(documents) {
|
|
|
12
12
|
for (const doc of documents) {
|
|
13
13
|
definitions.push(...doc.definitions);
|
|
14
14
|
}
|
|
15
|
-
return { kind:
|
|
15
|
+
return { kind: kinds_ts_1.Kind.DOCUMENT, definitions };
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=concatAST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concatAST.js","sourceRoot":"","sources":["../../src/utilities/concatAST.ts"],"names":[],"mappings":";;AAQA,8BAQC;AAfD,mDAA4C;AAE5C;;;;GAIG;AACH,SAAgB,SAAS,CACvB,SAAsC;IAEtC,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,eAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC","sourcesContent":["import type { DefinitionNode, DocumentNode } from '../language/ast.
|
|
1
|
+
{"version":3,"file":"concatAST.js","sourceRoot":"","sources":["../../src/utilities/concatAST.ts"],"names":[],"mappings":";;AAQA,8BAQC;AAfD,mDAA4C;AAE5C;;;;GAIG;AACH,SAAgB,SAAS,CACvB,SAAsC;IAEtC,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,eAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC","sourcesContent":["import type { DefinitionNode, DocumentNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\n/**\n * Provided a collection of ASTs, presumably each from different files,\n * concatenate the ASTs together into batched AST, useful for validating many\n * GraphQL source files which together represent one conceptual application.\n */\nexport function concatAST(\n documents: ReadonlyArray<DocumentNode>,\n): DocumentNode {\n const definitions: Array<DefinitionNode> = [];\n for (const doc of documents) {\n definitions.push(...doc.definitions);\n }\n return { kind: Kind.DOCUMENT, definitions };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concatAST.js","sourceRoot":"","sources":["../../src/utilities/concatAST.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,8BAA6B;AAE5C;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,SAAsC;IAEtC,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC","sourcesContent":["import type { DefinitionNode, DocumentNode } from '../language/ast.
|
|
1
|
+
{"version":3,"file":"concatAST.js","sourceRoot":"","sources":["../../src/utilities/concatAST.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,8BAA6B;AAE5C;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,SAAsC;IAEtC,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC","sourcesContent":["import type { DefinitionNode, DocumentNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\n/**\n * Provided a collection of ASTs, presumably each from different files,\n * concatenate the ASTs together into batched AST, useful for validating many\n * GraphQL source files which together represent one conceptual application.\n */\nexport function concatAST(\n documents: ReadonlyArray<DocumentNode>,\n): DocumentNode {\n const definitions: Array<DefinitionNode> = [];\n for (const doc of documents) {\n definitions.push(...doc.definitions);\n }\n return { kind: Kind.DOCUMENT, definitions };\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { DocumentNode } from
|
|
2
|
-
import type { GraphQLSchemaNormalizedConfig, GraphQLSchemaValidationOptions } from
|
|
3
|
-
import { GraphQLSchema } from
|
|
1
|
+
import type { DocumentNode } from "../language/ast.mjs";
|
|
2
|
+
import type { GraphQLSchemaNormalizedConfig, GraphQLSchemaValidationOptions } from "../type/schema.mjs";
|
|
3
|
+
import { GraphQLSchema } from "../type/schema.mjs";
|
|
4
4
|
interface Options extends GraphQLSchemaValidationOptions {
|
|
5
5
|
/**
|
|
6
6
|
* Set to true to assume the SDL is valid.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { DocumentNode } from
|
|
2
|
-
import type { GraphQLSchemaNormalizedConfig, GraphQLSchemaValidationOptions } from
|
|
3
|
-
import { GraphQLSchema } from
|
|
1
|
+
import type { DocumentNode } from "../language/ast.js";
|
|
2
|
+
import type { GraphQLSchemaNormalizedConfig, GraphQLSchemaValidationOptions } from "../type/schema.js";
|
|
3
|
+
import { GraphQLSchema } from "../type/schema.js";
|
|
4
4
|
interface Options extends GraphQLSchemaValidationOptions {
|
|
5
5
|
/**
|
|
6
6
|
* Set to true to assume the SDL is valid.
|