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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveSchemaCoordinate.js","sourceRoot":"","sources":["../../src/utilities/resolveSchemaCoordinate.ts"],"names":[],"mappings":";;AAgGA,0DAQC;AAsMD,gEAgBC;AA9TD,sDAAgD;AAUhD,mDAA4C;AAC5C,qDAA8D;AAc9D,yDAK+B;AAyD/B;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CACrC,MAAqB,EACrB,gBAAiC;IAEjC,OAAO,0BAA0B,CAC/B,MAAM,EACN,IAAA,iCAAqB,EAAC,gBAAgB,CAAC,CACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,MAAqB,EACrB,gBAAoC;IAEpC,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,oEAAoE;IACpE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,MAAqB,EACrB,gBAAsC;IAEtC,sDAAsD;IACtD,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,6FAA6F;IAC7F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,YAAY,IAAA,oBAAO,EAAC,QAAQ,CAAC,yCAAyC,CACvE,CAAC;IACJ,CAAC;IACD,IACE,CAAC,IAAA,0BAAU,EAAC,IAAI,CAAC;QACjB,CAAC,IAAA,iCAAiB,EAAC,IAAI,CAAC;QACxB,CAAC,IAAA,4BAAY,EAAC,IAAI,CAAC;QACnB,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EACtB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,YAAY,IAAA,oBAAO,EAAC,QAAQ,CAAC,yDAAyD,CACvF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAA,0BAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACrB,4DAA4D;QAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE/C,yEAAyE;QACzE,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAChD,CAAC;IAED,mDAAmD;IACnD,IAAI,IAAA,iCAAiB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,6DAA6D;QAC7D,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;QAEpD,2EAA2E;QAC3E,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAClD,CAAC;IAED,gBAAgB;IAChB,wDAAwD;IACxD,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE/C,gEAAgE;IAChE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,MAAqB,EACrB,gBAAwC;IAExC,sDAAsD;IACtD,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,oEAAoE;IACpE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,YAAY,IAAA,oBAAO,EAAC,QAAQ,CAAC,yCAAyC,CACvE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAA,4BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,YAAY,IAAA,oBAAO,EAAC,QAAQ,CAAC,0CAA0C,CACxE,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,2DAA2D;IAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE/C,iCAAiC;IACjC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,YAAY,IAAA,oBAAO,EAAC,SAAS,CAAC,gCAAgC,IAAA,oBAAO,EAAC,QAAQ,CAAC,iBAAiB,CACjG,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;IAC9D,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,iBAAiB,CACxC,CAAC;IAEF,4EAA4E;IAC5E,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,MAAqB,EACrB,gBAAyC;IAEzC,iDAAiD;IACjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAErD,8EAA8E;IAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,kCAAkC,CACzC,MAAqB,EACrB,gBAAiD;IAEjD,2DAA2D;IAC3D,6EAA6E;IAC7E,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAErD,oCAAoC;IACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,YAAY,IAAA,oBAAO,EAAC,aAAa,CAAC,8CAA8C,CACjF,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,MAAM,EACJ,YAAY,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAC/C,GAAG,gBAAgB,CAAC;IACrB,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,qBAAqB,CAC5C,CAAC;IAEF,oFAAoF;IACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CACxC,MAAqB,EACrB,gBAAsC;IAEtC,QAAQ,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,eAAI,CAAC,eAAe;YACvB,OAAO,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACzD,KAAK,eAAI,CAAC,iBAAiB;YACzB,OAAO,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC3D,KAAK,eAAI,CAAC,mBAAmB;YAC3B,OAAO,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC7D,KAAK,eAAI,CAAC,oBAAoB;YAC5B,OAAO,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC9D,KAAK,eAAI,CAAC,6BAA6B;YACrC,OAAO,kCAAkC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxE,CAAC;AACH,CAAC","sourcesContent":["import { inspect } from '../jsutils/inspect.js';\n\nimport type {\n ArgumentCoordinateNode,\n DirectiveArgumentCoordinateNode,\n DirectiveCoordinateNode,\n MemberCoordinateNode,\n SchemaCoordinateNode,\n TypeCoordinateNode,\n} from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport { parseSchemaCoordinate } from '../language/parser.js';\nimport type { Source } from '../language/source.js';\n\nimport type {\n GraphQLArgument,\n GraphQLEnumType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLNamedType,\n GraphQLObjectType,\n} from '../type/definition.js';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isObjectType,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\n/**\n * A resolved schema element may be one of the following kinds:\n */\nexport interface ResolvedNamedType {\n readonly kind: 'NamedType';\n readonly type: GraphQLNamedType;\n}\n\nexport interface ResolvedField {\n readonly kind: 'Field';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n}\n\nexport interface ResolvedInputField {\n readonly kind: 'InputField';\n readonly type: GraphQLInputObjectType;\n readonly inputField: GraphQLInputField;\n}\n\nexport interface ResolvedEnumValue {\n readonly kind: 'EnumValue';\n readonly type: GraphQLEnumType;\n readonly enumValue: GraphQLEnumValue;\n}\n\nexport interface ResolvedFieldArgument {\n readonly kind: 'FieldArgument';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n readonly fieldArgument: GraphQLArgument;\n}\n\nexport interface ResolvedDirective {\n readonly kind: 'Directive';\n readonly directive: GraphQLDirective;\n}\n\nexport interface ResolvedDirectiveArgument {\n readonly kind: 'DirectiveArgument';\n readonly directive: GraphQLDirective;\n readonly directiveArgument: GraphQLArgument;\n}\n\nexport type ResolvedSchemaElement =\n | ResolvedNamedType\n | ResolvedField\n | ResolvedInputField\n | ResolvedEnumValue\n | ResolvedFieldArgument\n | ResolvedDirective\n | ResolvedDirectiveArgument;\n\n/**\n * A schema coordinate is resolved in the context of a GraphQL schema to\n * uniquely identify a schema element. It returns undefined if the schema\n * coordinate does not resolve to a schema element, meta-field, or introspection\n * schema element. It will throw if the containing schema element (if\n * applicable) does not exist.\n *\n * https://spec.graphql.org/draft/#sec-Schema-Coordinates.Semantics\n */\nexport function resolveSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: string | Source,\n): ResolvedSchemaElement | undefined {\n return resolveASTSchemaCoordinate(\n schema,\n parseSchemaCoordinate(schemaCoordinate),\n );\n}\n\n/**\n * TypeCoordinate : Name\n */\nfunction resolveTypeCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: TypeCoordinateNode,\n): ResolvedNamedType | undefined {\n // 1. Let {typeName} be the value of {Name}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 2. Return the type in the {schema} named {typeName} if it exists.\n if (type == null) {\n return;\n }\n\n return { kind: 'NamedType', type };\n}\n\n/**\n * MemberCoordinate : Name . Name\n */\nfunction resolveMemberCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: MemberCoordinateNode,\n): ResolvedField | ResolvedInputField | ResolvedEnumValue | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and must be an Enum, Input Object, Object or Interface type.\n if (!type) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (\n !isEnumType(type) &&\n !isInputObjectType(type) &&\n !isObjectType(type) &&\n !isInterfaceType(type)\n ) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an Enum, Input Object, Object or Interface type.`,\n );\n }\n\n // 4. If {type} is an Enum type:\n if (isEnumType(type)) {\n // 1. Let {enumValueName} be the value of the second {Name}.\n const enumValueName = schemaCoordinate.memberName.value;\n const enumValue = type.getValue(enumValueName);\n\n // 2. Return the enum value of {type} named {enumValueName} if it exists.\n if (enumValue == null) {\n return;\n }\n\n return { kind: 'EnumValue', type, enumValue };\n }\n\n // 5. Otherwise, if {type} is an Input Object type:\n if (isInputObjectType(type)) {\n // 1. Let {inputFieldName} be the value of the second {Name}.\n const inputFieldName = schemaCoordinate.memberName.value;\n const inputField = type.getFields()[inputFieldName];\n\n // 2. Return the input field of {type} named {inputFieldName} if it exists.\n if (inputField == null) {\n return;\n }\n\n return { kind: 'InputField', type, inputField };\n }\n\n // 6. Otherwise:\n // 1. Let {fieldName} be the value of the second {Name}.\n const fieldName = schemaCoordinate.memberName.value;\n const field = schema.getField(type, fieldName);\n\n // 2. Return the field of {type} named {fieldName} if it exists.\n if (field == null) {\n return;\n }\n\n return { kind: 'Field', type, field };\n}\n\n/**\n * ArgumentCoordinate : Name . Name ( Name : )\n */\nfunction resolveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: ArgumentCoordinateNode,\n): ResolvedFieldArgument | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and be an Object or Interface type.\n if (type == null) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (!isObjectType(type) && !isInterfaceType(type)) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an object type or interface type.`,\n );\n }\n\n // 4. Let {fieldName} be the value of the second {Name}.\n // 5. Let {field} be the field of {type} named {fieldName}.\n const fieldName = schemaCoordinate.fieldName.value;\n const field = schema.getField(type, fieldName);\n\n // 7. Assert: {field} must exist.\n if (field == null) {\n throw new Error(\n `Expected ${inspect(fieldName)} to exist as a field of type ${inspect(typeName)} in the schema.`,\n );\n }\n\n // 7. Let {fieldArgumentName} be the value of the third {Name}.\n const fieldArgumentName = schemaCoordinate.argumentName.value;\n const fieldArgument = field.args.find(\n (arg) => arg.name === fieldArgumentName,\n );\n\n // 8. Return the argument of {field} named {fieldArgumentName} if it exists.\n if (fieldArgument == null) {\n return;\n }\n\n return { kind: 'FieldArgument', type, field, fieldArgument };\n}\n\n/**\n * DirectiveCoordinate : @ Name\n */\nfunction resolveDirectiveCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveCoordinateNode,\n): ResolvedDirective | undefined {\n // 1. Let {directiveName} be the value of {Name}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 2. Return the directive in the {schema} named {directiveName} if it exists.\n if (!directive) {\n return;\n }\n\n return { kind: 'Directive', directive };\n}\n\n/**\n * DirectiveArgumentCoordinate : @ Name ( Name : )\n */\nfunction resolveDirectiveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveArgumentCoordinateNode,\n): ResolvedDirectiveArgument | undefined {\n // 1. Let {directiveName} be the value of the first {Name}.\n // 2. Let {directive} be the directive in the {schema} named {directiveName}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 3. Assert {directive} must exist.\n if (!directive) {\n throw new Error(\n `Expected ${inspect(directiveName)} to be defined as a directive in the schema.`,\n );\n }\n\n // 4. Let {directiveArgumentName} be the value of the second {Name}.\n const {\n argumentName: { value: directiveArgumentName },\n } = schemaCoordinate;\n const directiveArgument = directive.args.find(\n (arg) => arg.name === directiveArgumentName,\n );\n\n // 5. Return the argument of {directive} named {directiveArgumentName} if it exists.\n if (!directiveArgument) {\n return;\n }\n\n return { kind: 'DirectiveArgument', directive, directiveArgument };\n}\n\n/**\n * Resolves schema coordinate from a parsed SchemaCoordinate node.\n */\nexport function resolveASTSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: SchemaCoordinateNode,\n): ResolvedSchemaElement | undefined {\n switch (schemaCoordinate.kind) {\n case Kind.TYPE_COORDINATE:\n return resolveTypeCoordinate(schema, schemaCoordinate);\n case Kind.MEMBER_COORDINATE:\n return resolveMemberCoordinate(schema, schemaCoordinate);\n case Kind.ARGUMENT_COORDINATE:\n return resolveArgumentCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_COORDINATE:\n return resolveDirectiveCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_ARGUMENT_COORDINATE:\n return resolveDirectiveArgumentCoordinate(schema, schemaCoordinate);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resolveSchemaCoordinate.js","sourceRoot":"","sources":["../../src/utilities/resolveSchemaCoordinate.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.ts';\n\nimport type {\n ArgumentCoordinateNode,\n DirectiveArgumentCoordinateNode,\n DirectiveCoordinateNode,\n MemberCoordinateNode,\n SchemaCoordinateNode,\n TypeCoordinateNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport { parseSchemaCoordinate } from '../language/parser.ts';\nimport type { Source } from '../language/source.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLEnumType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLNamedType,\n GraphQLObjectType,\n} from '../type/definition.ts';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isObjectType,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\n/**\n * A resolved schema element may be one of the following kinds:\n */\nexport interface ResolvedNamedType {\n readonly kind: 'NamedType';\n readonly type: GraphQLNamedType;\n}\n\nexport interface ResolvedField {\n readonly kind: 'Field';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n}\n\nexport interface ResolvedInputField {\n readonly kind: 'InputField';\n readonly type: GraphQLInputObjectType;\n readonly inputField: GraphQLInputField;\n}\n\nexport interface ResolvedEnumValue {\n readonly kind: 'EnumValue';\n readonly type: GraphQLEnumType;\n readonly enumValue: GraphQLEnumValue;\n}\n\nexport interface ResolvedFieldArgument {\n readonly kind: 'FieldArgument';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n readonly fieldArgument: GraphQLArgument;\n}\n\nexport interface ResolvedDirective {\n readonly kind: 'Directive';\n readonly directive: GraphQLDirective;\n}\n\nexport interface ResolvedDirectiveArgument {\n readonly kind: 'DirectiveArgument';\n readonly directive: GraphQLDirective;\n readonly directiveArgument: GraphQLArgument;\n}\n\nexport type ResolvedSchemaElement =\n | ResolvedNamedType\n | ResolvedField\n | ResolvedInputField\n | ResolvedEnumValue\n | ResolvedFieldArgument\n | ResolvedDirective\n | ResolvedDirectiveArgument;\n\n/**\n * A schema coordinate is resolved in the context of a GraphQL schema to\n * uniquely identify a schema element. It returns undefined if the schema\n * coordinate does not resolve to a schema element, meta-field, or introspection\n * schema element. It will throw if the containing schema element (if\n * applicable) does not exist.\n *\n * https://spec.graphql.org/draft/#sec-Schema-Coordinates.Semantics\n */\nexport function resolveSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: string | Source,\n): ResolvedSchemaElement | undefined {\n return resolveASTSchemaCoordinate(\n schema,\n parseSchemaCoordinate(schemaCoordinate),\n );\n}\n\n/**\n * TypeCoordinate : Name\n */\nfunction resolveTypeCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: TypeCoordinateNode,\n): ResolvedNamedType | undefined {\n // 1. Let {typeName} be the value of {Name}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 2. Return the type in the {schema} named {typeName} if it exists.\n if (type == null) {\n return;\n }\n\n return { kind: 'NamedType', type };\n}\n\n/**\n * MemberCoordinate : Name . Name\n */\nfunction resolveMemberCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: MemberCoordinateNode,\n): ResolvedField | ResolvedInputField | ResolvedEnumValue | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and must be an Enum, Input Object, Object or Interface type.\n if (!type) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (\n !isEnumType(type) &&\n !isInputObjectType(type) &&\n !isObjectType(type) &&\n !isInterfaceType(type)\n ) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an Enum, Input Object, Object or Interface type.`,\n );\n }\n\n // 4. If {type} is an Enum type:\n if (isEnumType(type)) {\n // 1. Let {enumValueName} be the value of the second {Name}.\n const enumValueName = schemaCoordinate.memberName.value;\n const enumValue = type.getValue(enumValueName);\n\n // 2. Return the enum value of {type} named {enumValueName} if it exists.\n if (enumValue == null) {\n return;\n }\n\n return { kind: 'EnumValue', type, enumValue };\n }\n\n // 5. Otherwise, if {type} is an Input Object type:\n if (isInputObjectType(type)) {\n // 1. Let {inputFieldName} be the value of the second {Name}.\n const inputFieldName = schemaCoordinate.memberName.value;\n const inputField = type.getFields()[inputFieldName];\n\n // 2. Return the input field of {type} named {inputFieldName} if it exists.\n if (inputField == null) {\n return;\n }\n\n return { kind: 'InputField', type, inputField };\n }\n\n // 6. Otherwise:\n // 1. Let {fieldName} be the value of the second {Name}.\n const fieldName = schemaCoordinate.memberName.value;\n const field = schema.getField(type, fieldName);\n\n // 2. Return the field of {type} named {fieldName} if it exists.\n if (field == null) {\n return;\n }\n\n return { kind: 'Field', type, field };\n}\n\n/**\n * ArgumentCoordinate : Name . Name ( Name : )\n */\nfunction resolveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: ArgumentCoordinateNode,\n): ResolvedFieldArgument | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and be an Object or Interface type.\n if (type == null) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (!isObjectType(type) && !isInterfaceType(type)) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an object type or interface type.`,\n );\n }\n\n // 4. Let {fieldName} be the value of the second {Name}.\n // 5. Let {field} be the field of {type} named {fieldName}.\n const fieldName = schemaCoordinate.fieldName.value;\n const field = schema.getField(type, fieldName);\n\n // 7. Assert: {field} must exist.\n if (field == null) {\n throw new Error(\n `Expected ${inspect(fieldName)} to exist as a field of type ${inspect(typeName)} in the schema.`,\n );\n }\n\n // 7. Let {fieldArgumentName} be the value of the third {Name}.\n const fieldArgumentName = schemaCoordinate.argumentName.value;\n const fieldArgument = field.args.find(\n (arg) => arg.name === fieldArgumentName,\n );\n\n // 8. Return the argument of {field} named {fieldArgumentName} if it exists.\n if (fieldArgument == null) {\n return;\n }\n\n return { kind: 'FieldArgument', type, field, fieldArgument };\n}\n\n/**\n * DirectiveCoordinate : @ Name\n */\nfunction resolveDirectiveCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveCoordinateNode,\n): ResolvedDirective | undefined {\n // 1. Let {directiveName} be the value of {Name}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 2. Return the directive in the {schema} named {directiveName} if it exists.\n if (!directive) {\n return;\n }\n\n return { kind: 'Directive', directive };\n}\n\n/**\n * DirectiveArgumentCoordinate : @ Name ( Name : )\n */\nfunction resolveDirectiveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveArgumentCoordinateNode,\n): ResolvedDirectiveArgument | undefined {\n // 1. Let {directiveName} be the value of the first {Name}.\n // 2. Let {directive} be the directive in the {schema} named {directiveName}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 3. Assert {directive} must exist.\n if (!directive) {\n throw new Error(\n `Expected ${inspect(directiveName)} to be defined as a directive in the schema.`,\n );\n }\n\n // 4. Let {directiveArgumentName} be the value of the second {Name}.\n const {\n argumentName: { value: directiveArgumentName },\n } = schemaCoordinate;\n const directiveArgument = directive.args.find(\n (arg) => arg.name === directiveArgumentName,\n );\n\n // 5. Return the argument of {directive} named {directiveArgumentName} if it exists.\n if (!directiveArgument) {\n return;\n }\n\n return { kind: 'DirectiveArgument', directive, directiveArgument };\n}\n\n/**\n * Resolves schema coordinate from a parsed SchemaCoordinate node.\n */\nexport function resolveASTSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: SchemaCoordinateNode,\n): ResolvedSchemaElement | undefined {\n switch (schemaCoordinate.kind) {\n case Kind.TYPE_COORDINATE:\n return resolveTypeCoordinate(schema, schemaCoordinate);\n case Kind.MEMBER_COORDINATE:\n return resolveMemberCoordinate(schema, schemaCoordinate);\n case Kind.ARGUMENT_COORDINATE:\n return resolveArgumentCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_COORDINATE:\n return resolveDirectiveCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_ARGUMENT_COORDINATE:\n return resolveDirectiveArgumentCoordinate(schema, schemaCoordinate);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveSchemaCoordinate.js","sourceRoot":"","sources":["../../src/utilities/resolveSchemaCoordinate.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.js';\n\nimport type {\n ArgumentCoordinateNode,\n DirectiveArgumentCoordinateNode,\n DirectiveCoordinateNode,\n MemberCoordinateNode,\n SchemaCoordinateNode,\n TypeCoordinateNode,\n} from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport { parseSchemaCoordinate } from '../language/parser.js';\nimport type { Source } from '../language/source.js';\n\nimport type {\n GraphQLArgument,\n GraphQLEnumType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLNamedType,\n GraphQLObjectType,\n} from '../type/definition.js';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isObjectType,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\n/**\n * A resolved schema element may be one of the following kinds:\n */\nexport interface ResolvedNamedType {\n readonly kind: 'NamedType';\n readonly type: GraphQLNamedType;\n}\n\nexport interface ResolvedField {\n readonly kind: 'Field';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n}\n\nexport interface ResolvedInputField {\n readonly kind: 'InputField';\n readonly type: GraphQLInputObjectType;\n readonly inputField: GraphQLInputField;\n}\n\nexport interface ResolvedEnumValue {\n readonly kind: 'EnumValue';\n readonly type: GraphQLEnumType;\n readonly enumValue: GraphQLEnumValue;\n}\n\nexport interface ResolvedFieldArgument {\n readonly kind: 'FieldArgument';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n readonly fieldArgument: GraphQLArgument;\n}\n\nexport interface ResolvedDirective {\n readonly kind: 'Directive';\n readonly directive: GraphQLDirective;\n}\n\nexport interface ResolvedDirectiveArgument {\n readonly kind: 'DirectiveArgument';\n readonly directive: GraphQLDirective;\n readonly directiveArgument: GraphQLArgument;\n}\n\nexport type ResolvedSchemaElement =\n | ResolvedNamedType\n | ResolvedField\n | ResolvedInputField\n | ResolvedEnumValue\n | ResolvedFieldArgument\n | ResolvedDirective\n | ResolvedDirectiveArgument;\n\n/**\n * A schema coordinate is resolved in the context of a GraphQL schema to\n * uniquely identify a schema element. It returns undefined if the schema\n * coordinate does not resolve to a schema element, meta-field, or introspection\n * schema element. It will throw if the containing schema element (if\n * applicable) does not exist.\n *\n * https://spec.graphql.org/draft/#sec-Schema-Coordinates.Semantics\n */\nexport function resolveSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: string | Source,\n): ResolvedSchemaElement | undefined {\n return resolveASTSchemaCoordinate(\n schema,\n parseSchemaCoordinate(schemaCoordinate),\n );\n}\n\n/**\n * TypeCoordinate : Name\n */\nfunction resolveTypeCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: TypeCoordinateNode,\n): ResolvedNamedType | undefined {\n // 1. Let {typeName} be the value of {Name}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 2. Return the type in the {schema} named {typeName} if it exists.\n if (type == null) {\n return;\n }\n\n return { kind: 'NamedType', type };\n}\n\n/**\n * MemberCoordinate : Name . Name\n */\nfunction resolveMemberCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: MemberCoordinateNode,\n): ResolvedField | ResolvedInputField | ResolvedEnumValue | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and must be an Enum, Input Object, Object or Interface type.\n if (!type) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (\n !isEnumType(type) &&\n !isInputObjectType(type) &&\n !isObjectType(type) &&\n !isInterfaceType(type)\n ) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an Enum, Input Object, Object or Interface type.`,\n );\n }\n\n // 4. If {type} is an Enum type:\n if (isEnumType(type)) {\n // 1. Let {enumValueName} be the value of the second {Name}.\n const enumValueName = schemaCoordinate.memberName.value;\n const enumValue = type.getValue(enumValueName);\n\n // 2. Return the enum value of {type} named {enumValueName} if it exists.\n if (enumValue == null) {\n return;\n }\n\n return { kind: 'EnumValue', type, enumValue };\n }\n\n // 5. Otherwise, if {type} is an Input Object type:\n if (isInputObjectType(type)) {\n // 1. Let {inputFieldName} be the value of the second {Name}.\n const inputFieldName = schemaCoordinate.memberName.value;\n const inputField = type.getFields()[inputFieldName];\n\n // 2. Return the input field of {type} named {inputFieldName} if it exists.\n if (inputField == null) {\n return;\n }\n\n return { kind: 'InputField', type, inputField };\n }\n\n // 6. Otherwise:\n // 1. Let {fieldName} be the value of the second {Name}.\n const fieldName = schemaCoordinate.memberName.value;\n const field = schema.getField(type, fieldName);\n\n // 2. Return the field of {type} named {fieldName} if it exists.\n if (field == null) {\n return;\n }\n\n return { kind: 'Field', type, field };\n}\n\n/**\n * ArgumentCoordinate : Name . Name ( Name : )\n */\nfunction resolveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: ArgumentCoordinateNode,\n): ResolvedFieldArgument | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and be an Object or Interface type.\n if (type == null) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (!isObjectType(type) && !isInterfaceType(type)) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an object type or interface type.`,\n );\n }\n\n // 4. Let {fieldName} be the value of the second {Name}.\n // 5. Let {field} be the field of {type} named {fieldName}.\n const fieldName = schemaCoordinate.fieldName.value;\n const field = schema.getField(type, fieldName);\n\n // 7. Assert: {field} must exist.\n if (field == null) {\n throw new Error(\n `Expected ${inspect(fieldName)} to exist as a field of type ${inspect(typeName)} in the schema.`,\n );\n }\n\n // 7. Let {fieldArgumentName} be the value of the third {Name}.\n const fieldArgumentName = schemaCoordinate.argumentName.value;\n const fieldArgument = field.args.find(\n (arg) => arg.name === fieldArgumentName,\n );\n\n // 8. Return the argument of {field} named {fieldArgumentName} if it exists.\n if (fieldArgument == null) {\n return;\n }\n\n return { kind: 'FieldArgument', type, field, fieldArgument };\n}\n\n/**\n * DirectiveCoordinate : @ Name\n */\nfunction resolveDirectiveCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveCoordinateNode,\n): ResolvedDirective | undefined {\n // 1. Let {directiveName} be the value of {Name}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 2. Return the directive in the {schema} named {directiveName} if it exists.\n if (!directive) {\n return;\n }\n\n return { kind: 'Directive', directive };\n}\n\n/**\n * DirectiveArgumentCoordinate : @ Name ( Name : )\n */\nfunction resolveDirectiveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveArgumentCoordinateNode,\n): ResolvedDirectiveArgument | undefined {\n // 1. Let {directiveName} be the value of the first {Name}.\n // 2. Let {directive} be the directive in the {schema} named {directiveName}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 3. Assert {directive} must exist.\n if (!directive) {\n throw new Error(\n `Expected ${inspect(directiveName)} to be defined as a directive in the schema.`,\n );\n }\n\n // 4. Let {directiveArgumentName} be the value of the second {Name}.\n const {\n argumentName: { value: directiveArgumentName },\n } = schemaCoordinate;\n const directiveArgument = directive.args.find(\n (arg) => arg.name === directiveArgumentName,\n );\n\n // 5. Return the argument of {directive} named {directiveArgumentName} if it exists.\n if (!directiveArgument) {\n return;\n }\n\n return { kind: 'DirectiveArgument', directive, directiveArgument };\n}\n\n/**\n * Resolves schema coordinate from a parsed SchemaCoordinate node.\n */\nexport function resolveASTSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: SchemaCoordinateNode,\n): ResolvedSchemaElement | undefined {\n switch (schemaCoordinate.kind) {\n case Kind.TYPE_COORDINATE:\n return resolveTypeCoordinate(schema, schemaCoordinate);\n case Kind.MEMBER_COORDINATE:\n return resolveMemberCoordinate(schema, schemaCoordinate);\n case Kind.ARGUMENT_COORDINATE:\n return resolveArgumentCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_COORDINATE:\n return resolveDirectiveCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_ARGUMENT_COORDINATE:\n return resolveDirectiveArgumentCoordinate(schema, schemaCoordinate);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resolveSchemaCoordinate.js","sourceRoot":"","sources":["../../src/utilities/resolveSchemaCoordinate.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.ts';\n\nimport type {\n ArgumentCoordinateNode,\n DirectiveArgumentCoordinateNode,\n DirectiveCoordinateNode,\n MemberCoordinateNode,\n SchemaCoordinateNode,\n TypeCoordinateNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport { parseSchemaCoordinate } from '../language/parser.ts';\nimport type { Source } from '../language/source.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLEnumType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLNamedType,\n GraphQLObjectType,\n} from '../type/definition.ts';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isObjectType,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\n/**\n * A resolved schema element may be one of the following kinds:\n */\nexport interface ResolvedNamedType {\n readonly kind: 'NamedType';\n readonly type: GraphQLNamedType;\n}\n\nexport interface ResolvedField {\n readonly kind: 'Field';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n}\n\nexport interface ResolvedInputField {\n readonly kind: 'InputField';\n readonly type: GraphQLInputObjectType;\n readonly inputField: GraphQLInputField;\n}\n\nexport interface ResolvedEnumValue {\n readonly kind: 'EnumValue';\n readonly type: GraphQLEnumType;\n readonly enumValue: GraphQLEnumValue;\n}\n\nexport interface ResolvedFieldArgument {\n readonly kind: 'FieldArgument';\n readonly type: GraphQLObjectType | GraphQLInterfaceType;\n readonly field: GraphQLField<unknown, unknown>;\n readonly fieldArgument: GraphQLArgument;\n}\n\nexport interface ResolvedDirective {\n readonly kind: 'Directive';\n readonly directive: GraphQLDirective;\n}\n\nexport interface ResolvedDirectiveArgument {\n readonly kind: 'DirectiveArgument';\n readonly directive: GraphQLDirective;\n readonly directiveArgument: GraphQLArgument;\n}\n\nexport type ResolvedSchemaElement =\n | ResolvedNamedType\n | ResolvedField\n | ResolvedInputField\n | ResolvedEnumValue\n | ResolvedFieldArgument\n | ResolvedDirective\n | ResolvedDirectiveArgument;\n\n/**\n * A schema coordinate is resolved in the context of a GraphQL schema to\n * uniquely identify a schema element. It returns undefined if the schema\n * coordinate does not resolve to a schema element, meta-field, or introspection\n * schema element. It will throw if the containing schema element (if\n * applicable) does not exist.\n *\n * https://spec.graphql.org/draft/#sec-Schema-Coordinates.Semantics\n */\nexport function resolveSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: string | Source,\n): ResolvedSchemaElement | undefined {\n return resolveASTSchemaCoordinate(\n schema,\n parseSchemaCoordinate(schemaCoordinate),\n );\n}\n\n/**\n * TypeCoordinate : Name\n */\nfunction resolveTypeCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: TypeCoordinateNode,\n): ResolvedNamedType | undefined {\n // 1. Let {typeName} be the value of {Name}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 2. Return the type in the {schema} named {typeName} if it exists.\n if (type == null) {\n return;\n }\n\n return { kind: 'NamedType', type };\n}\n\n/**\n * MemberCoordinate : Name . Name\n */\nfunction resolveMemberCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: MemberCoordinateNode,\n): ResolvedField | ResolvedInputField | ResolvedEnumValue | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and must be an Enum, Input Object, Object or Interface type.\n if (!type) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (\n !isEnumType(type) &&\n !isInputObjectType(type) &&\n !isObjectType(type) &&\n !isInterfaceType(type)\n ) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an Enum, Input Object, Object or Interface type.`,\n );\n }\n\n // 4. If {type} is an Enum type:\n if (isEnumType(type)) {\n // 1. Let {enumValueName} be the value of the second {Name}.\n const enumValueName = schemaCoordinate.memberName.value;\n const enumValue = type.getValue(enumValueName);\n\n // 2. Return the enum value of {type} named {enumValueName} if it exists.\n if (enumValue == null) {\n return;\n }\n\n return { kind: 'EnumValue', type, enumValue };\n }\n\n // 5. Otherwise, if {type} is an Input Object type:\n if (isInputObjectType(type)) {\n // 1. Let {inputFieldName} be the value of the second {Name}.\n const inputFieldName = schemaCoordinate.memberName.value;\n const inputField = type.getFields()[inputFieldName];\n\n // 2. Return the input field of {type} named {inputFieldName} if it exists.\n if (inputField == null) {\n return;\n }\n\n return { kind: 'InputField', type, inputField };\n }\n\n // 6. Otherwise:\n // 1. Let {fieldName} be the value of the second {Name}.\n const fieldName = schemaCoordinate.memberName.value;\n const field = schema.getField(type, fieldName);\n\n // 2. Return the field of {type} named {fieldName} if it exists.\n if (field == null) {\n return;\n }\n\n return { kind: 'Field', type, field };\n}\n\n/**\n * ArgumentCoordinate : Name . Name ( Name : )\n */\nfunction resolveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: ArgumentCoordinateNode,\n): ResolvedFieldArgument | undefined {\n // 1. Let {typeName} be the value of the first {Name}.\n // 2. Let {type} be the type in the {schema} named {typeName}.\n const typeName = schemaCoordinate.name.value;\n const type = schema.getType(typeName);\n\n // 3. Assert: {type} must exist, and be an Object or Interface type.\n if (type == null) {\n throw new Error(\n `Expected ${inspect(typeName)} to be defined as a type in the schema.`,\n );\n }\n if (!isObjectType(type) && !isInterfaceType(type)) {\n throw new Error(\n `Expected ${inspect(typeName)} to be an object type or interface type.`,\n );\n }\n\n // 4. Let {fieldName} be the value of the second {Name}.\n // 5. Let {field} be the field of {type} named {fieldName}.\n const fieldName = schemaCoordinate.fieldName.value;\n const field = schema.getField(type, fieldName);\n\n // 7. Assert: {field} must exist.\n if (field == null) {\n throw new Error(\n `Expected ${inspect(fieldName)} to exist as a field of type ${inspect(typeName)} in the schema.`,\n );\n }\n\n // 7. Let {fieldArgumentName} be the value of the third {Name}.\n const fieldArgumentName = schemaCoordinate.argumentName.value;\n const fieldArgument = field.args.find(\n (arg) => arg.name === fieldArgumentName,\n );\n\n // 8. Return the argument of {field} named {fieldArgumentName} if it exists.\n if (fieldArgument == null) {\n return;\n }\n\n return { kind: 'FieldArgument', type, field, fieldArgument };\n}\n\n/**\n * DirectiveCoordinate : @ Name\n */\nfunction resolveDirectiveCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveCoordinateNode,\n): ResolvedDirective | undefined {\n // 1. Let {directiveName} be the value of {Name}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 2. Return the directive in the {schema} named {directiveName} if it exists.\n if (!directive) {\n return;\n }\n\n return { kind: 'Directive', directive };\n}\n\n/**\n * DirectiveArgumentCoordinate : @ Name ( Name : )\n */\nfunction resolveDirectiveArgumentCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: DirectiveArgumentCoordinateNode,\n): ResolvedDirectiveArgument | undefined {\n // 1. Let {directiveName} be the value of the first {Name}.\n // 2. Let {directive} be the directive in the {schema} named {directiveName}.\n const directiveName = schemaCoordinate.name.value;\n const directive = schema.getDirective(directiveName);\n\n // 3. Assert {directive} must exist.\n if (!directive) {\n throw new Error(\n `Expected ${inspect(directiveName)} to be defined as a directive in the schema.`,\n );\n }\n\n // 4. Let {directiveArgumentName} be the value of the second {Name}.\n const {\n argumentName: { value: directiveArgumentName },\n } = schemaCoordinate;\n const directiveArgument = directive.args.find(\n (arg) => arg.name === directiveArgumentName,\n );\n\n // 5. Return the argument of {directive} named {directiveArgumentName} if it exists.\n if (!directiveArgument) {\n return;\n }\n\n return { kind: 'DirectiveArgument', directive, directiveArgument };\n}\n\n/**\n * Resolves schema coordinate from a parsed SchemaCoordinate node.\n */\nexport function resolveASTSchemaCoordinate(\n schema: GraphQLSchema,\n schemaCoordinate: SchemaCoordinateNode,\n): ResolvedSchemaElement | undefined {\n switch (schemaCoordinate.kind) {\n case Kind.TYPE_COORDINATE:\n return resolveTypeCoordinate(schema, schemaCoordinate);\n case Kind.MEMBER_COORDINATE:\n return resolveMemberCoordinate(schema, schemaCoordinate);\n case Kind.ARGUMENT_COORDINATE:\n return resolveArgumentCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_COORDINATE:\n return resolveDirectiveCoordinate(schema, schemaCoordinate);\n case Kind.DIRECTIVE_ARGUMENT_COORDINATE:\n return resolveDirectiveArgumentCoordinate(schema, schemaCoordinate);\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ObjMap } from
|
|
2
|
-
import type { DocumentNode } from
|
|
1
|
+
import type { ObjMap } from "../jsutils/ObjMap.mjs";
|
|
2
|
+
import type { DocumentNode } from "../language/ast.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* separateOperations accepts a single AST document which may contain many
|
|
5
5
|
* operations and fragments and returns a collection of AST documents each of
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ObjMap } from
|
|
2
|
-
import type { DocumentNode } from
|
|
1
|
+
import type { ObjMap } from "../jsutils/ObjMap.js";
|
|
2
|
+
import type { DocumentNode } from "../language/ast.js";
|
|
3
3
|
/**
|
|
4
4
|
* separateOperations accepts a single AST document which may contain many
|
|
5
5
|
* operations and fragments and returns a collection of AST documents each of
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.separateOperations = separateOperations;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const kinds_ts_1 = require("../language/kinds.js");
|
|
5
|
+
const visitor_ts_1 = require("../language/visitor.js");
|
|
6
6
|
/**
|
|
7
7
|
* separateOperations accepts a single AST document which may contain many
|
|
8
8
|
* operations and fragments and returns a collection of AST documents each of
|
|
@@ -15,10 +15,10 @@ function separateOperations(documentAST) {
|
|
|
15
15
|
// Populate metadata and build a dependency graph.
|
|
16
16
|
for (const definitionNode of documentAST.definitions) {
|
|
17
17
|
switch (definitionNode.kind) {
|
|
18
|
-
case
|
|
18
|
+
case kinds_ts_1.Kind.OPERATION_DEFINITION:
|
|
19
19
|
operations.push(definitionNode);
|
|
20
20
|
break;
|
|
21
|
-
case
|
|
21
|
+
case kinds_ts_1.Kind.FRAGMENT_DEFINITION:
|
|
22
22
|
depGraph[definitionNode.name.value] = collectDependencies(definitionNode.selectionSet);
|
|
23
23
|
break;
|
|
24
24
|
default:
|
|
@@ -38,9 +38,9 @@ function separateOperations(documentAST) {
|
|
|
38
38
|
// The list of definition nodes to be included for this operation, sorted
|
|
39
39
|
// to retain the same order as the original document.
|
|
40
40
|
separatedDocumentASTs[operationName] = {
|
|
41
|
-
kind:
|
|
41
|
+
kind: kinds_ts_1.Kind.DOCUMENT,
|
|
42
42
|
definitions: documentAST.definitions.filter((node) => node === operation ||
|
|
43
|
-
(node.kind ===
|
|
43
|
+
(node.kind === kinds_ts_1.Kind.FRAGMENT_DEFINITION &&
|
|
44
44
|
dependencies.has(node.name.value))),
|
|
45
45
|
};
|
|
46
46
|
}
|
|
@@ -61,7 +61,7 @@ function collectTransitiveDependencies(collected, depGraph, fromName) {
|
|
|
61
61
|
}
|
|
62
62
|
function collectDependencies(selectionSet) {
|
|
63
63
|
const dependencies = [];
|
|
64
|
-
(0,
|
|
64
|
+
(0, visitor_ts_1.visit)(selectionSet, {
|
|
65
65
|
FragmentSpread(node) {
|
|
66
66
|
dependencies.push(node.name.value);
|
|
67
67
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separateOperations.js","sourceRoot":"","sources":["../../src/utilities/separateOperations.ts"],"names":[],"mappings":";;AAgBA,gDAiDC;AA1DD,mDAA4C;AAC5C,uDAA+C;AAE/C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,WAAyB;IAEzB,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,kDAAkD;IAClD,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QACrD,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,eAAI,CAAC,oBAAoB;gBAC5B,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,eAAI,CAAC,mBAAmB;gBAC3B,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,mBAAmB,CACvD,cAAc,CAAC,YAAY,CAC5B,CAAC;gBACF,MAAM;YACR,QAAQ;YACR,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,8CAA8C;IAC9C,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,YAAY,IAAI,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACvE,6BAA6B,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,sDAAsD;QACtD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,yEAAyE;QACzE,qDAAqD;QACrD,qBAAqB,CAAC,aAAa,CAAC,GAAG;YACrC,IAAI,EAAE,eAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,SAAS;gBAClB,CAAC,IAAI,CAAC,IAAI,KAAK,eAAI,CAAC,mBAAmB;oBACrC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACvC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAID,yEAAyE;AACzE,wCAAwC;AACxC,SAAS,6BAA6B,CACpC,SAAsB,EACtB,QAAkB,EAClB,QAAgB;IAEhB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExB,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,6BAA6B,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,YAA8B;IACzD,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,IAAA,kBAAK,EAAC,YAAY,EAAE;QAClB,cAAc,CAAC,IAAI;YACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import type { ObjMap } from '../jsutils/ObjMap.
|
|
1
|
+
{"version":3,"file":"separateOperations.js","sourceRoot":"","sources":["../../src/utilities/separateOperations.ts"],"names":[],"mappings":";;AAgBA,gDAiDC;AA1DD,mDAA4C;AAC5C,uDAA+C;AAE/C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,WAAyB;IAEzB,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,kDAAkD;IAClD,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QACrD,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,eAAI,CAAC,oBAAoB;gBAC5B,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,eAAI,CAAC,mBAAmB;gBAC3B,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,mBAAmB,CACvD,cAAc,CAAC,YAAY,CAC5B,CAAC;gBACF,MAAM;YACR,QAAQ;YACR,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,8CAA8C;IAC9C,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,YAAY,IAAI,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACvE,6BAA6B,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,sDAAsD;QACtD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,yEAAyE;QACzE,qDAAqD;QACrD,qBAAqB,CAAC,aAAa,CAAC,GAAG;YACrC,IAAI,EAAE,eAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,SAAS;gBAClB,CAAC,IAAI,CAAC,IAAI,KAAK,eAAI,CAAC,mBAAmB;oBACrC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACvC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAID,yEAAyE;AACzE,wCAAwC;AACxC,SAAS,6BAA6B,CACpC,SAAsB,EACtB,QAAkB,EAClB,QAAgB;IAEhB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExB,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,6BAA6B,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,YAA8B;IACzD,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,IAAA,kBAAK,EAAC,YAAY,EAAE;QAClB,cAAc,CAAC,IAAI;YACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport { visit } from '../language/visitor.ts';\n\n/**\n * separateOperations accepts a single AST document which may contain many\n * operations and fragments and returns a collection of AST documents each of\n * which contains a single operation as well the fragment definitions it\n * refers to.\n */\nexport function separateOperations(\n documentAST: DocumentNode,\n): ObjMap<DocumentNode> {\n const operations: Array<OperationDefinitionNode> = [];\n const depGraph: DepGraph = Object.create(null);\n\n // Populate metadata and build a dependency graph.\n for (const definitionNode of documentAST.definitions) {\n switch (definitionNode.kind) {\n case Kind.OPERATION_DEFINITION:\n operations.push(definitionNode);\n break;\n case Kind.FRAGMENT_DEFINITION:\n depGraph[definitionNode.name.value] = collectDependencies(\n definitionNode.selectionSet,\n );\n break;\n default:\n // ignore non-executable definitions\n }\n }\n\n // For each operation, produce a new synthesized AST which includes only what\n // is necessary for completing that operation.\n const separatedDocumentASTs = Object.create(null);\n for (const operation of operations) {\n const dependencies = new Set<string>();\n\n for (const fragmentName of collectDependencies(operation.selectionSet)) {\n collectTransitiveDependencies(dependencies, depGraph, fragmentName);\n }\n\n // Provides the empty string for anonymous operations.\n const operationName = operation.name ? operation.name.value : '';\n\n // The list of definition nodes to be included for this operation, sorted\n // to retain the same order as the original document.\n separatedDocumentASTs[operationName] = {\n kind: Kind.DOCUMENT,\n definitions: documentAST.definitions.filter(\n (node) =>\n node === operation ||\n (node.kind === Kind.FRAGMENT_DEFINITION &&\n dependencies.has(node.name.value)),\n ),\n };\n }\n\n return separatedDocumentASTs;\n}\n\ntype DepGraph = ObjMap<ReadonlyArray<string>>;\n\n// From a dependency graph, collects a list of transitive dependencies by\n// recursing through a dependency graph.\nfunction collectTransitiveDependencies(\n collected: Set<string>,\n depGraph: DepGraph,\n fromName: string,\n): void {\n if (!collected.has(fromName)) {\n collected.add(fromName);\n\n const immediateDeps = depGraph[fromName];\n if (immediateDeps !== undefined) {\n for (const toName of immediateDeps) {\n collectTransitiveDependencies(collected, depGraph, toName);\n }\n }\n }\n}\n\nfunction collectDependencies(selectionSet: SelectionSetNode): Array<string> {\n const dependencies: Array<string> = [];\n\n visit(selectionSet, {\n FragmentSpread(node) {\n dependencies.push(node.name.value);\n },\n });\n return dependencies;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separateOperations.js","sourceRoot":"","sources":["../../src/utilities/separateOperations.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,8BAA6B;AAC5C,OAAO,EAAE,KAAK,EAAE,gCAA+B;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAyB;IAEzB,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,kDAAkD;IAClD,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QACrD,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,oBAAoB;gBAC5B,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,IAAI,CAAC,mBAAmB;gBAC3B,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,mBAAmB,CACvD,cAAc,CAAC,YAAY,CAC5B,CAAC;gBACF,MAAM;YACR,QAAQ;YACR,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,8CAA8C;IAC9C,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,YAAY,IAAI,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACvE,6BAA6B,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,sDAAsD;QACtD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,yEAAyE;QACzE,qDAAqD;QACrD,qBAAqB,CAAC,aAAa,CAAC,GAAG;YACrC,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,SAAS;gBAClB,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,mBAAmB;oBACrC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACvC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAID,yEAAyE;AACzE,wCAAwC;AACxC,SAAS,6BAA6B,CACpC,SAAsB,EACtB,QAAkB,EAClB,QAAgB;IAEhB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExB,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,6BAA6B,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,YAA8B;IACzD,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,KAAK,CAAC,YAAY,EAAE;QAClB,cAAc,CAAC,IAAI;YACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import type { ObjMap } from '../jsutils/ObjMap.
|
|
1
|
+
{"version":3,"file":"separateOperations.js","sourceRoot":"","sources":["../../src/utilities/separateOperations.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,8BAA6B;AAC5C,OAAO,EAAE,KAAK,EAAE,gCAA+B;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAyB;IAEzB,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,kDAAkD;IAClD,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QACrD,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,oBAAoB;gBAC5B,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,IAAI,CAAC,mBAAmB;gBAC3B,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,mBAAmB,CACvD,cAAc,CAAC,YAAY,CAC5B,CAAC;gBACF,MAAM;YACR,QAAQ;YACR,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,8CAA8C;IAC9C,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,YAAY,IAAI,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACvE,6BAA6B,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,sDAAsD;QACtD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,yEAAyE;QACzE,qDAAqD;QACrD,qBAAqB,CAAC,aAAa,CAAC,GAAG;YACrC,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,SAAS;gBAClB,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,mBAAmB;oBACrC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACvC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAID,yEAAyE;AACzE,wCAAwC;AACxC,SAAS,6BAA6B,CACpC,SAAsB,EACtB,QAAkB,EAClB,QAAgB;IAEhB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExB,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,6BAA6B,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,YAA8B;IACzD,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,KAAK,CAAC,YAAY,EAAE;QAClB,cAAc,CAAC,IAAI;YACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport { visit } from '../language/visitor.ts';\n\n/**\n * separateOperations accepts a single AST document which may contain many\n * operations and fragments and returns a collection of AST documents each of\n * which contains a single operation as well the fragment definitions it\n * refers to.\n */\nexport function separateOperations(\n documentAST: DocumentNode,\n): ObjMap<DocumentNode> {\n const operations: Array<OperationDefinitionNode> = [];\n const depGraph: DepGraph = Object.create(null);\n\n // Populate metadata and build a dependency graph.\n for (const definitionNode of documentAST.definitions) {\n switch (definitionNode.kind) {\n case Kind.OPERATION_DEFINITION:\n operations.push(definitionNode);\n break;\n case Kind.FRAGMENT_DEFINITION:\n depGraph[definitionNode.name.value] = collectDependencies(\n definitionNode.selectionSet,\n );\n break;\n default:\n // ignore non-executable definitions\n }\n }\n\n // For each operation, produce a new synthesized AST which includes only what\n // is necessary for completing that operation.\n const separatedDocumentASTs = Object.create(null);\n for (const operation of operations) {\n const dependencies = new Set<string>();\n\n for (const fragmentName of collectDependencies(operation.selectionSet)) {\n collectTransitiveDependencies(dependencies, depGraph, fragmentName);\n }\n\n // Provides the empty string for anonymous operations.\n const operationName = operation.name ? operation.name.value : '';\n\n // The list of definition nodes to be included for this operation, sorted\n // to retain the same order as the original document.\n separatedDocumentASTs[operationName] = {\n kind: Kind.DOCUMENT,\n definitions: documentAST.definitions.filter(\n (node) =>\n node === operation ||\n (node.kind === Kind.FRAGMENT_DEFINITION &&\n dependencies.has(node.name.value)),\n ),\n };\n }\n\n return separatedDocumentASTs;\n}\n\ntype DepGraph = ObjMap<ReadonlyArray<string>>;\n\n// From a dependency graph, collects a list of transitive dependencies by\n// recursing through a dependency graph.\nfunction collectTransitiveDependencies(\n collected: Set<string>,\n depGraph: DepGraph,\n fromName: string,\n): void {\n if (!collected.has(fromName)) {\n collected.add(fromName);\n\n const immediateDeps = depGraph[fromName];\n if (immediateDeps !== undefined) {\n for (const toName of immediateDeps) {\n collectTransitiveDependencies(collected, depGraph, toName);\n }\n }\n }\n}\n\nfunction collectDependencies(selectionSet: SelectionSetNode): Array<string> {\n const dependencies: Array<string> = [];\n\n visit(selectionSet, {\n FragmentSpread(node) {\n dependencies.push(node.name.value);\n },\n });\n return dependencies;\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sortValueNode = sortValueNode;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const naturalCompare_ts_1 = require("../jsutils/naturalCompare.js");
|
|
5
|
+
const kinds_ts_1 = require("../language/kinds.js");
|
|
6
6
|
/**
|
|
7
7
|
* Sort ValueNode.
|
|
8
8
|
*
|
|
@@ -12,23 +12,23 @@ const kinds_js_1 = require("../language/kinds.js");
|
|
|
12
12
|
*/
|
|
13
13
|
function sortValueNode(valueNode) {
|
|
14
14
|
switch (valueNode.kind) {
|
|
15
|
-
case
|
|
15
|
+
case kinds_ts_1.Kind.OBJECT:
|
|
16
16
|
return {
|
|
17
17
|
...valueNode,
|
|
18
18
|
fields: sortFields(valueNode.fields),
|
|
19
19
|
};
|
|
20
|
-
case
|
|
20
|
+
case kinds_ts_1.Kind.LIST:
|
|
21
21
|
return {
|
|
22
22
|
...valueNode,
|
|
23
23
|
values: valueNode.values.map(sortValueNode),
|
|
24
24
|
};
|
|
25
|
-
case
|
|
26
|
-
case
|
|
27
|
-
case
|
|
28
|
-
case
|
|
29
|
-
case
|
|
30
|
-
case
|
|
31
|
-
case
|
|
25
|
+
case kinds_ts_1.Kind.INT:
|
|
26
|
+
case kinds_ts_1.Kind.FLOAT:
|
|
27
|
+
case kinds_ts_1.Kind.STRING:
|
|
28
|
+
case kinds_ts_1.Kind.BOOLEAN:
|
|
29
|
+
case kinds_ts_1.Kind.NULL:
|
|
30
|
+
case kinds_ts_1.Kind.ENUM:
|
|
31
|
+
case kinds_ts_1.Kind.VARIABLE:
|
|
32
32
|
return valueNode;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -38,6 +38,6 @@ function sortFields(fields) {
|
|
|
38
38
|
...fieldNode,
|
|
39
39
|
value: sortValueNode(fieldNode.value),
|
|
40
40
|
}))
|
|
41
|
-
.sort((fieldA, fieldB) => (0,
|
|
41
|
+
.sort((fieldA, fieldB) => (0, naturalCompare_ts_1.naturalCompare)(fieldA.name.value, fieldB.name.value));
|
|
42
42
|
}
|
|
43
43
|
//# sourceMappingURL=sortValueNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortValueNode.js","sourceRoot":"","sources":["../../src/utilities/sortValueNode.ts"],"names":[],"mappings":";;AAYA,sCAqBC;AAjCD,oEAA8D;AAG9D,mDAA4C;AAE5C;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,SAAoB;IAChD,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,eAAI,CAAC,MAAM;YACd,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;aACrC,CAAC;QACJ,KAAK,eAAI,CAAC,IAAI;YACZ,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;aAC5C,CAAC;QACJ,KAAK,eAAI,CAAC,GAAG,CAAC;QACd,KAAK,eAAI,CAAC,KAAK,CAAC;QAChB,KAAK,eAAI,CAAC,MAAM,CAAC;QACjB,KAAK,eAAI,CAAC,OAAO,CAAC;QAClB,KAAK,eAAI,CAAC,IAAI,CAAC;QACf,KAAK,eAAI,CAAC,IAAI,CAAC;QACf,KAAK,eAAI,CAAC,QAAQ;YAChB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,MAAsC;IAEtC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,SAAS;QACZ,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC;KACtC,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACvB,IAAA,kCAAc,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CACrD,CAAC;AACN,CAAC","sourcesContent":["import { naturalCompare } from '../jsutils/naturalCompare.
|
|
1
|
+
{"version":3,"file":"sortValueNode.js","sourceRoot":"","sources":["../../src/utilities/sortValueNode.ts"],"names":[],"mappings":";;AAYA,sCAqBC;AAjCD,oEAA8D;AAG9D,mDAA4C;AAE5C;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,SAAoB;IAChD,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,eAAI,CAAC,MAAM;YACd,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;aACrC,CAAC;QACJ,KAAK,eAAI,CAAC,IAAI;YACZ,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;aAC5C,CAAC;QACJ,KAAK,eAAI,CAAC,GAAG,CAAC;QACd,KAAK,eAAI,CAAC,KAAK,CAAC;QAChB,KAAK,eAAI,CAAC,MAAM,CAAC;QACjB,KAAK,eAAI,CAAC,OAAO,CAAC;QAClB,KAAK,eAAI,CAAC,IAAI,CAAC;QACf,KAAK,eAAI,CAAC,IAAI,CAAC;QACf,KAAK,eAAI,CAAC,QAAQ;YAChB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,MAAsC;IAEtC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,SAAS;QACZ,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC;KACtC,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACvB,IAAA,kCAAc,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CACrD,CAAC;AACN,CAAC","sourcesContent":["import { naturalCompare } from '../jsutils/naturalCompare.ts';\n\nimport type { ObjectFieldNode, ValueNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\n/**\n * Sort ValueNode.\n *\n * This function returns a sorted copy of the given ValueNode.\n *\n * @internal\n */\nexport function sortValueNode(valueNode: ValueNode): ValueNode {\n switch (valueNode.kind) {\n case Kind.OBJECT:\n return {\n ...valueNode,\n fields: sortFields(valueNode.fields),\n };\n case Kind.LIST:\n return {\n ...valueNode,\n values: valueNode.values.map(sortValueNode),\n };\n case Kind.INT:\n case Kind.FLOAT:\n case Kind.STRING:\n case Kind.BOOLEAN:\n case Kind.NULL:\n case Kind.ENUM:\n case Kind.VARIABLE:\n return valueNode;\n }\n}\n\nfunction sortFields(\n fields: ReadonlyArray<ObjectFieldNode>,\n): Array<ObjectFieldNode> {\n return fields\n .map((fieldNode) => ({\n ...fieldNode,\n value: sortValueNode(fieldNode.value),\n }))\n .sort((fieldA, fieldB) =>\n naturalCompare(fieldA.name.value, fieldB.name.value),\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortValueNode.js","sourceRoot":"","sources":["../../src/utilities/sortValueNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sCAAqC;AAG9D,OAAO,EAAE,IAAI,EAAE,8BAA6B;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAAoB;IAChD,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,MAAM;YACd,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;aACrC,CAAC;QACJ,KAAK,IAAI,CAAC,IAAI;YACZ,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;aAC5C,CAAC;QACJ,KAAK,IAAI,CAAC,GAAG,CAAC;QACd,KAAK,IAAI,CAAC,KAAK,CAAC;QAChB,KAAK,IAAI,CAAC,MAAM,CAAC;QACjB,KAAK,IAAI,CAAC,OAAO,CAAC;QAClB,KAAK,IAAI,CAAC,IAAI,CAAC;QACf,KAAK,IAAI,CAAC,IAAI,CAAC;QACf,KAAK,IAAI,CAAC,QAAQ;YAChB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,MAAsC;IAEtC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,SAAS;QACZ,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC;KACtC,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACvB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CACrD,CAAC;AACN,CAAC","sourcesContent":["import { naturalCompare } from '../jsutils/naturalCompare.
|
|
1
|
+
{"version":3,"file":"sortValueNode.js","sourceRoot":"","sources":["../../src/utilities/sortValueNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sCAAqC;AAG9D,OAAO,EAAE,IAAI,EAAE,8BAA6B;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAAoB;IAChD,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,MAAM;YACd,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;aACrC,CAAC;QACJ,KAAK,IAAI,CAAC,IAAI;YACZ,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;aAC5C,CAAC;QACJ,KAAK,IAAI,CAAC,GAAG,CAAC;QACd,KAAK,IAAI,CAAC,KAAK,CAAC;QAChB,KAAK,IAAI,CAAC,MAAM,CAAC;QACjB,KAAK,IAAI,CAAC,OAAO,CAAC;QAClB,KAAK,IAAI,CAAC,IAAI,CAAC;QACf,KAAK,IAAI,CAAC,IAAI,CAAC;QACf,KAAK,IAAI,CAAC,QAAQ;YAChB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,MAAsC;IAEtC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,SAAS;QACZ,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC;KACtC,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACvB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CACrD,CAAC;AACN,CAAC","sourcesContent":["import { naturalCompare } from '../jsutils/naturalCompare.ts';\n\nimport type { ObjectFieldNode, ValueNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\n/**\n * Sort ValueNode.\n *\n * This function returns a sorted copy of the given ValueNode.\n *\n * @internal\n */\nexport function sortValueNode(valueNode: ValueNode): ValueNode {\n switch (valueNode.kind) {\n case Kind.OBJECT:\n return {\n ...valueNode,\n fields: sortFields(valueNode.fields),\n };\n case Kind.LIST:\n return {\n ...valueNode,\n values: valueNode.values.map(sortValueNode),\n };\n case Kind.INT:\n case Kind.FLOAT:\n case Kind.STRING:\n case Kind.BOOLEAN:\n case Kind.NULL:\n case Kind.ENUM:\n case Kind.VARIABLE:\n return valueNode;\n }\n}\n\nfunction sortFields(\n fields: ReadonlyArray<ObjectFieldNode>,\n): Array<ObjectFieldNode> {\n return fields\n .map((fieldNode) => ({\n ...fieldNode,\n value: sortValueNode(fieldNode.value),\n }))\n .sort((fieldA, fieldB) =>\n naturalCompare(fieldA.name.value, fieldB.name.value),\n );\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.stripIgnoredCharacters = stripIgnoredCharacters;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const blockString_ts_1 = require("../language/blockString.js");
|
|
5
|
+
const lexer_ts_1 = require("../language/lexer.js");
|
|
6
|
+
const source_ts_1 = require("../language/source.js");
|
|
7
|
+
const tokenKind_ts_1 = require("../language/tokenKind.js");
|
|
8
8
|
/**
|
|
9
9
|
* Strips characters that are not significant to the validity or execution
|
|
10
10
|
* of a GraphQL document:
|
|
@@ -66,12 +66,12 @@ const tokenKind_js_1 = require("../language/tokenKind.js");
|
|
|
66
66
|
* ```
|
|
67
67
|
*/
|
|
68
68
|
function stripIgnoredCharacters(source) {
|
|
69
|
-
const sourceObj = (0,
|
|
69
|
+
const sourceObj = (0, source_ts_1.isSource)(source) ? source : new source_ts_1.Source(source);
|
|
70
70
|
const body = sourceObj.body;
|
|
71
|
-
const lexer = new
|
|
71
|
+
const lexer = new lexer_ts_1.Lexer(sourceObj);
|
|
72
72
|
let strippedBody = '';
|
|
73
73
|
let wasLastAddedTokenNonPunctuator = false;
|
|
74
|
-
while (lexer.advance().kind !==
|
|
74
|
+
while (lexer.advance().kind !== tokenKind_ts_1.TokenKind.EOF) {
|
|
75
75
|
const currentToken = lexer.token;
|
|
76
76
|
const tokenKind = currentToken.kind;
|
|
77
77
|
/**
|
|
@@ -79,15 +79,15 @@ function stripIgnoredCharacters(source) {
|
|
|
79
79
|
* Also prevent case of non-punctuator token following by spread resulting
|
|
80
80
|
* in invalid token (e.g. `1...` is invalid Float token).
|
|
81
81
|
*/
|
|
82
|
-
const isNonPunctuator = !(0,
|
|
82
|
+
const isNonPunctuator = !(0, lexer_ts_1.isPunctuatorTokenKind)(currentToken.kind);
|
|
83
83
|
if (wasLastAddedTokenNonPunctuator) {
|
|
84
|
-
if (isNonPunctuator || currentToken.kind ===
|
|
84
|
+
if (isNonPunctuator || currentToken.kind === tokenKind_ts_1.TokenKind.SPREAD) {
|
|
85
85
|
strippedBody += ' ';
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
const tokenBody = body.slice(currentToken.start, currentToken.end);
|
|
89
|
-
if (tokenKind ===
|
|
90
|
-
strippedBody += (0,
|
|
89
|
+
if (tokenKind === tokenKind_ts_1.TokenKind.BLOCK_STRING) {
|
|
90
|
+
strippedBody += (0, blockString_ts_1.printBlockString)(currentToken.value, { minimize: true });
|
|
91
91
|
}
|
|
92
92
|
else {
|
|
93
93
|
strippedBody += tokenBody;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripIgnoredCharacters.js","sourceRoot":"","sources":["../../src/utilities/stripIgnoredCharacters.ts"],"names":[],"mappings":";;AAiEA,wDAmCC;AApGD,+DAA8D;AAC9D,mDAAoE;AACpE,qDAAyD;AACzD,2DAAqD;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,SAAgB,sBAAsB,CAAC,MAAuB;IAC5D,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,gBAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,YAAY,GAAG,EAAE,CAAC;IAEtB,IAAI,8BAA8B,GAAG,KAAK,CAAC;IAC3C,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,wBAAS,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;QAEpC;;;;WAIG;QACH,MAAM,eAAe,GAAG,CAAC,IAAA,gCAAqB,EAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,8BAA8B,EAAE,CAAC;YACnC,IAAI,eAAe,IAAI,YAAY,CAAC,IAAI,KAAK,wBAAS,CAAC,MAAM,EAAE,CAAC;gBAC9D,YAAY,IAAI,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,wBAAS,CAAC,YAAY,EAAE,CAAC;YACzC,YAAY,IAAI,IAAA,iCAAgB,EAAC,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,YAAY,IAAI,SAAS,CAAC;QAC5B,CAAC;QAED,8BAA8B,GAAG,eAAe,CAAC;IACnD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { printBlockString } from '../language/blockString.
|
|
1
|
+
{"version":3,"file":"stripIgnoredCharacters.js","sourceRoot":"","sources":["../../src/utilities/stripIgnoredCharacters.ts"],"names":[],"mappings":";;AAiEA,wDAmCC;AApGD,+DAA8D;AAC9D,mDAAoE;AACpE,qDAAyD;AACzD,2DAAqD;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,SAAgB,sBAAsB,CAAC,MAAuB;IAC5D,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,gBAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,YAAY,GAAG,EAAE,CAAC;IAEtB,IAAI,8BAA8B,GAAG,KAAK,CAAC;IAC3C,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,wBAAS,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;QAEpC;;;;WAIG;QACH,MAAM,eAAe,GAAG,CAAC,IAAA,gCAAqB,EAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,8BAA8B,EAAE,CAAC;YACnC,IAAI,eAAe,IAAI,YAAY,CAAC,IAAI,KAAK,wBAAS,CAAC,MAAM,EAAE,CAAC;gBAC9D,YAAY,IAAI,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,wBAAS,CAAC,YAAY,EAAE,CAAC;YACzC,YAAY,IAAI,IAAA,iCAAgB,EAAC,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,YAAY,IAAI,SAAS,CAAC;QAC5B,CAAC;QAED,8BAA8B,GAAG,eAAe,CAAC;IACnD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { printBlockString } from '../language/blockString.ts';\nimport { isPunctuatorTokenKind, Lexer } from '../language/lexer.ts';\nimport { isSource, Source } from '../language/source.ts';\nimport { TokenKind } from '../language/tokenKind.ts';\n\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * ```graphql\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n * ```\n *\n * SDL example:\n *\n * ```graphql\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n * ```\n */\nexport function stripIgnoredCharacters(source: string | Source): string {\n const sourceObj = isSource(source) ? source : new Source(source);\n\n const body = sourceObj.body;\n const lexer = new Lexer(sourceObj);\n let strippedBody = '';\n\n let wasLastAddedTokenNonPunctuator = false;\n while (lexer.advance().kind !== TokenKind.EOF) {\n const currentToken = lexer.token;\n const tokenKind = currentToken.kind;\n\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n const tokenBody = body.slice(currentToken.start, currentToken.end);\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += printBlockString(currentToken.value, { minimize: true });\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripIgnoredCharacters.js","sourceRoot":"","sources":["../../src/utilities/stripIgnoredCharacters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oCAAmC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,8BAA6B;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,+BAA8B;AACzD,OAAO,EAAE,SAAS,EAAE,kCAAiC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,YAAY,GAAG,EAAE,CAAC;IAEtB,IAAI,8BAA8B,GAAG,KAAK,CAAC;IAC3C,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;QAEpC;;;;WAIG;QACH,MAAM,eAAe,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,8BAA8B,EAAE,CAAC;YACnC,IAAI,eAAe,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC9D,YAAY,IAAI,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;YACzC,YAAY,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,YAAY,IAAI,SAAS,CAAC;QAC5B,CAAC;QAED,8BAA8B,GAAG,eAAe,CAAC;IACnD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { printBlockString } from '../language/blockString.
|
|
1
|
+
{"version":3,"file":"stripIgnoredCharacters.js","sourceRoot":"","sources":["../../src/utilities/stripIgnoredCharacters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oCAAmC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,8BAA6B;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,+BAA8B;AACzD,OAAO,EAAE,SAAS,EAAE,kCAAiC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,YAAY,GAAG,EAAE,CAAC;IAEtB,IAAI,8BAA8B,GAAG,KAAK,CAAC;IAC3C,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;QAEpC;;;;WAIG;QACH,MAAM,eAAe,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,8BAA8B,EAAE,CAAC;YACnC,IAAI,eAAe,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC9D,YAAY,IAAI,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;YACzC,YAAY,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,YAAY,IAAI,SAAS,CAAC;QAC5B,CAAC;QAED,8BAA8B,GAAG,eAAe,CAAC;IACnD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { printBlockString } from '../language/blockString.ts';\nimport { isPunctuatorTokenKind, Lexer } from '../language/lexer.ts';\nimport { isSource, Source } from '../language/source.ts';\nimport { TokenKind } from '../language/tokenKind.ts';\n\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * ```graphql\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n * ```\n *\n * SDL example:\n *\n * ```graphql\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n * ```\n */\nexport function stripIgnoredCharacters(source: string | Source): string {\n const sourceObj = isSource(source) ? source : new Source(source);\n\n const body = sourceObj.body;\n const lexer = new Lexer(sourceObj);\n let strippedBody = '';\n\n let wasLastAddedTokenNonPunctuator = false;\n while (lexer.advance().kind !== TokenKind.EOF) {\n const currentToken = lexer.token;\n const tokenKind = currentToken.kind;\n\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n const tokenBody = body.slice(currentToken.start, currentToken.end);\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += printBlockString(currentToken.value, { minimize: true });\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { GraphQLCompositeType, GraphQLType } from
|
|
2
|
-
import type { GraphQLSchema } from
|
|
1
|
+
import type { GraphQLCompositeType, GraphQLType } from "../type/definition.mjs";
|
|
2
|
+
import type { GraphQLSchema } from "../type/schema.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Provided two types, return true if the types are equal (invariant).
|
|
5
5
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { GraphQLCompositeType, GraphQLType } from
|
|
2
|
-
import type { GraphQLSchema } from
|
|
1
|
+
import type { GraphQLCompositeType, GraphQLType } from "../type/definition.js";
|
|
2
|
+
import type { GraphQLSchema } from "../type/schema.js";
|
|
3
3
|
/**
|
|
4
4
|
* Provided two types, return true if the types are equal (invariant).
|
|
5
5
|
*/
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isEqualType = isEqualType;
|
|
4
4
|
exports.isTypeSubTypeOf = isTypeSubTypeOf;
|
|
5
5
|
exports.doTypesOverlap = doTypesOverlap;
|
|
6
|
-
const
|
|
6
|
+
const definition_ts_1 = require("../type/definition.js");
|
|
7
7
|
/**
|
|
8
8
|
* Provided two types, return true if the types are equal (invariant).
|
|
9
9
|
*/
|
|
@@ -13,11 +13,11 @@ function isEqualType(typeA, typeB) {
|
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
15
|
// If either type is non-null, the other must also be non-null.
|
|
16
|
-
if ((0,
|
|
16
|
+
if ((0, definition_ts_1.isNonNullType)(typeA) && (0, definition_ts_1.isNonNullType)(typeB)) {
|
|
17
17
|
return isEqualType(typeA.ofType, typeB.ofType);
|
|
18
18
|
}
|
|
19
19
|
// If either type is a list, the other must also be a list.
|
|
20
|
-
if ((0,
|
|
20
|
+
if ((0, definition_ts_1.isListType)(typeA) && (0, definition_ts_1.isListType)(typeB)) {
|
|
21
21
|
return isEqualType(typeA.ofType, typeB.ofType);
|
|
22
22
|
}
|
|
23
23
|
// Otherwise the types are not equal.
|
|
@@ -33,31 +33,31 @@ function isTypeSubTypeOf(schema, maybeSubType, superType) {
|
|
|
33
33
|
return true;
|
|
34
34
|
}
|
|
35
35
|
// If superType is non-null, maybeSubType must also be non-null.
|
|
36
|
-
if ((0,
|
|
37
|
-
if ((0,
|
|
36
|
+
if ((0, definition_ts_1.isNonNullType)(superType)) {
|
|
37
|
+
if ((0, definition_ts_1.isNonNullType)(maybeSubType)) {
|
|
38
38
|
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
|
|
39
39
|
}
|
|
40
40
|
return false;
|
|
41
41
|
}
|
|
42
|
-
if ((0,
|
|
42
|
+
if ((0, definition_ts_1.isNonNullType)(maybeSubType)) {
|
|
43
43
|
// If superType is nullable, maybeSubType may be non-null or nullable.
|
|
44
44
|
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);
|
|
45
45
|
}
|
|
46
46
|
// If superType type is a list, maybeSubType type must also be a list.
|
|
47
|
-
if ((0,
|
|
48
|
-
if ((0,
|
|
47
|
+
if ((0, definition_ts_1.isListType)(superType)) {
|
|
48
|
+
if ((0, definition_ts_1.isListType)(maybeSubType)) {
|
|
49
49
|
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
|
|
50
50
|
}
|
|
51
51
|
return false;
|
|
52
52
|
}
|
|
53
|
-
if ((0,
|
|
53
|
+
if ((0, definition_ts_1.isListType)(maybeSubType)) {
|
|
54
54
|
// If superType is not a list, maybeSubType must also be not a list.
|
|
55
55
|
return false;
|
|
56
56
|
}
|
|
57
57
|
// If superType type is an abstract type, check if it is super type of maybeSubType.
|
|
58
58
|
// Otherwise, the child type is not a valid subtype of the parent type.
|
|
59
|
-
return ((0,
|
|
60
|
-
((0,
|
|
59
|
+
return ((0, definition_ts_1.isAbstractType)(superType) &&
|
|
60
|
+
((0, definition_ts_1.isInterfaceType)(maybeSubType) || (0, definition_ts_1.isObjectType)(maybeSubType)) &&
|
|
61
61
|
schema.isSubType(superType, maybeSubType));
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
@@ -74,8 +74,8 @@ function doTypesOverlap(schema, typeA, typeB) {
|
|
|
74
74
|
if (typeA === typeB) {
|
|
75
75
|
return true;
|
|
76
76
|
}
|
|
77
|
-
if ((0,
|
|
78
|
-
if ((0,
|
|
77
|
+
if ((0, definition_ts_1.isAbstractType)(typeA)) {
|
|
78
|
+
if ((0, definition_ts_1.isAbstractType)(typeB)) {
|
|
79
79
|
// If both types are abstract, then determine if there is any intersection
|
|
80
80
|
// between possible concrete types of each.
|
|
81
81
|
return schema
|
|
@@ -85,7 +85,7 @@ function doTypesOverlap(schema, typeA, typeB) {
|
|
|
85
85
|
// Determine if the latter type is a possible concrete type of the former.
|
|
86
86
|
return schema.isSubType(typeA, typeB);
|
|
87
87
|
}
|
|
88
|
-
if ((0,
|
|
88
|
+
if ((0, definition_ts_1.isAbstractType)(typeB)) {
|
|
89
89
|
// Determine if the former type is a possible concrete type of the latter.
|
|
90
90
|
return schema.isSubType(typeB, typeA);
|
|
91
91
|
}
|