{"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/execution/Executor.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Execution */\n\nimport { inspect } from '../jsutils/inspect.ts';\nimport { invariant } from '../jsutils/invariant.ts';\nimport { isAsyncIterable } from '../jsutils/isAsyncIterable.ts';\nimport { isIterableObject } from '../jsutils/isIterableObject.ts';\nimport { isPromise, isPromiseLike } from '../jsutils/isPromise.ts';\nimport { memoize2 } from '../jsutils/memoize2.ts';\nimport { memoize3 } from '../jsutils/memoize3.ts';\nimport type { ObjMap } from '../jsutils/ObjMap.ts';\nimport type { Path } from '../jsutils/Path.ts';\nimport { addPath, pathToArray } from '../jsutils/Path.ts';\nimport { promiseForObject } from '../jsutils/promiseForObject.ts';\nimport type { PromiseOrValue } from '../jsutils/PromiseOrValue.ts';\nimport { promiseReduce } from '../jsutils/promiseReduce.ts';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.ts';\nimport type { GraphQLFormattedError } from '../error/GraphQLError.ts';\nimport { GraphQLError } from '../error/GraphQLError.ts';\nimport { locatedError } from '../error/locatedError.ts';\n\nimport type { FieldNode } from '../language/ast.ts';\nimport { OperationTypeNode } from '../language/ast.ts';\n\nimport type {\n  GraphQLAbstractType,\n  GraphQLLeafType,\n  GraphQLList,\n  GraphQLObjectType,\n  GraphQLOutputType,\n  GraphQLResolveInfo,\n  GraphQLResolveInfoHelpers,\n} from '../type/definition.ts';\nimport {\n  isAbstractType,\n  isLeafType,\n  isListType,\n  isNonNullType,\n  isObjectType,\n} from '../type/definition.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\nimport type {\n  GraphQLExecuteRootSelectionSetContext,\n  GraphQLResolveContext,\n  MinimalTracingChannel,\n} from '../diagnostics.ts';\nimport {\n  executeRootSelectionSetChannel,\n  resolveChannel,\n  shouldTrace,\n  traceMixed,\n} from '../diagnostics.ts';\n\nimport { AbortedGraphQLExecutionError } from './AbortedGraphQLExecutionError.ts';\nimport { buildResolveInfo } from './buildResolveInfo.ts';\nimport { withCancellation } from './cancellablePromise.ts';\nimport type {\n  DeferUsage,\n  FieldDetailsList,\n  GroupedFieldSet,\n} from './collectFields.ts';\nimport {\n  collectFields,\n  collectSubfields as _collectSubfields,\n} from './collectFields.ts';\nimport { collectIteratorPromises } from './collectIteratorPromises.ts';\nimport type { SharedExecutionContext } from './createSharedExecutionContext.ts';\nimport { createSharedExecutionContext } from './createSharedExecutionContext.ts';\nimport type { ValidatedExecutionArgs } from './ExecutionArgs.ts';\nimport type { StreamUsage } from './getStreamUsage.ts';\nimport { getStreamUsage as _getStreamUsage } from './getStreamUsage.ts';\nimport { runAsyncWorkFinishedHook } from './hooks.ts';\nimport { returnIteratorCatchingErrors } from './returnIteratorCatchingErrors.ts';\nimport { getArgumentValues } from './values.ts';\n\n/* eslint-disable max-params */\n// This file contains a lot of such errors but we plan to refactor it anyway\n// so just disable it for entire file.\n\n/**\n * Terminology\n *\n * \"Definitions\" are the generic name for top-level statements in the document.\n * Examples of this include:\n * 1) Operations (such as a query)\n * 2) Fragments\n *\n * \"Operations\" are a generic name for requests in the document.\n * Examples of this include:\n * 1) query,\n * 2) mutation\n *\n * \"Selections\" are the definitions that can appear legally and at\n * single level of the query. These include:\n * 1) field references e.g `a`\n * 2) fragment \"spreads\" e.g. `...c`\n * 3) inline fragment \"spreads\" e.g. `...on Type { a }`\n *\n * @internal\n */\n\n/**\n * A memoized collection of relevant subfields with regard to the return\n * type. Memoizing ensures the subfields are not repeatedly calculated, which\n * saves overhead when resolving lists of values.\n *\n * @internal\n */\nexport const collectSubfields: (\n  validatedExecutionArgs: ValidatedExecutionArgs,\n  returnType: GraphQLObjectType,\n  fieldDetailsList: FieldDetailsList,\n) => ReturnType<typeof _collectSubfields> = memoize3(\n  (\n    validatedExecutionArgs: ValidatedExecutionArgs,\n    returnType: GraphQLObjectType,\n    fieldDetailsList: FieldDetailsList,\n  ) => {\n    const { schema, fragments, variableValues, hideSuggestions } =\n      validatedExecutionArgs;\n    return _collectSubfields(\n      schema,\n      fragments,\n      variableValues,\n      returnType,\n      fieldDetailsList,\n      hideSuggestions,\n    );\n  },\n);\n\n/** @internal */\nexport const getStreamUsage: typeof _getStreamUsage = memoize2(\n  (\n    validatedExecutionArgs: ValidatedExecutionArgs,\n    fieldDetailsList: FieldDetailsList,\n  ) => _getStreamUsage(validatedExecutionArgs, fieldDetailsList),\n);\n\nclass CollectedErrors {\n  private _errorPositions: Set<Path | undefined>;\n  private _errors: Array<GraphQLError>;\n  constructor() {\n    this._errorPositions = new Set<Path | undefined>();\n    this._errors = [];\n  }\n\n  get errors(): ReadonlyArray<GraphQLError> {\n    return this._errors;\n  }\n\n  add(error: GraphQLError, path: Path | undefined): void {\n    // Do not modify errors list if the execution position for this error or\n    // any of its ancestors has already been nulled via error propagation.\n    // This check should be unnecessary for implementations able to implement\n    // actual cancellation.\n    if (this.hasNulledPosition(path)) {\n      return;\n    }\n    this._errorPositions.add(path);\n    this._errors.push(error);\n  }\n\n  hasNulledPosition(startPath: Path | undefined): boolean {\n    let path = startPath;\n    while (path !== undefined) {\n      if (this._errorPositions.has(path)) {\n        return true;\n      }\n      path = path.prev;\n    }\n    return this._errorPositions.has(undefined);\n  }\n}\n\n/**\n * Represents the response produced by executing a GraphQL operation.\n * @typeParam TData - Shape of the execution data payload.\n * @typeParam TExtensions - Shape of the extensions payload.\n */\nexport interface ExecutionResult<\n  TData = ObjMap<unknown>,\n  TExtensions = ObjMap<unknown>,\n> {\n  /** Errors raised while parsing, validating, or executing the operation. */\n  errors?: ReadonlyArray<GraphQLError>;\n  /** Data returned by execution, or null when execution could not produce data. */\n  data?: TData | null;\n  /** Additional non-standard metadata included in the execution result. */\n  extensions?: TExtensions;\n}\n\n/**\n * A JSON-serializable GraphQL execution result.\n * @typeParam TData - Shape of the formatted data payload.\n * @typeParam TExtensions - Shape of the formatted extensions payload.\n */\nexport interface FormattedExecutionResult<\n  TData = ObjMap<unknown>,\n  TExtensions = ObjMap<unknown>,\n> {\n  /** Errors raised while parsing, validating, or executing the operation. */\n  errors?: ReadonlyArray<GraphQLFormattedError>;\n  /** Data returned by execution, or null when execution could not produce data. */\n  data?: TData | null;\n  /** Additional non-standard metadata included in the formatted result. */\n  extensions?: TExtensions;\n}\n\nconst defaultAbortReason = new Error('This operation was aborted');\n\n/** @internal */\nexport class Executor<\n  TPositionContext = undefined, // No position context by default\n  TAlternativeInitialResponse = ExecutionResult, // No alternative by default\n> {\n  validatedExecutionArgs: ValidatedExecutionArgs;\n  aborted: boolean;\n  abortReason: unknown;\n  sharedExecutionContext: SharedExecutionContext;\n  collectedErrors: CollectedErrors;\n  abortResultPromise: (() => void) | undefined;\n  resolverAbortController: AbortController | undefined;\n  getAbortSignal: () => AbortSignal | undefined;\n  getAsyncHelpers: () => GraphQLResolveInfoHelpers;\n  promiseAll: <T>(\n    values: ReadonlyArray<PromiseOrValue<T>>,\n  ) => Promise<Array<T>>;\n\n  constructor(\n    validatedExecutionArgs: ValidatedExecutionArgs,\n    sharedExecutionContext?: SharedExecutionContext,\n  ) {\n    this.validatedExecutionArgs = validatedExecutionArgs;\n    this.aborted = false;\n    this.abortReason = defaultAbortReason;\n    this.collectedErrors = new CollectedErrors();\n\n    if (sharedExecutionContext === undefined) {\n      this.resolverAbortController = new AbortController();\n      this.sharedExecutionContext = createSharedExecutionContext(\n        this.resolverAbortController.signal,\n      );\n    } else {\n      this.sharedExecutionContext = sharedExecutionContext;\n    }\n    const { getAbortSignal, getAsyncHelpers, promiseAll } =\n      this.sharedExecutionContext;\n    this.getAbortSignal = getAbortSignal;\n    this.getAsyncHelpers = getAsyncHelpers;\n    this.promiseAll = promiseAll;\n  }\n\n  executeRootSelectionSet(\n    serially?: boolean,\n  ): PromiseOrValue<ExecutionResult | TAlternativeInitialResponse> {\n    if (!shouldTrace(executeRootSelectionSetChannel)) {\n      return this.executeRootSelectionSetImpl(serially);\n    }\n    return traceMixed(\n      executeRootSelectionSetChannel,\n      this.buildExecuteContextFromValidatedArgs(this.validatedExecutionArgs),\n      () => this.executeRootSelectionSetImpl(serially),\n    );\n  }\n\n  /**\n   * Build a root-selection-set tracing context from validated execution\n   * arguments. The operation has already been selected during argument\n   * validation.\n   * @internal\n   */\n  buildExecuteContextFromValidatedArgs(\n    args: ValidatedExecutionArgs,\n  ): GraphQLExecuteRootSelectionSetContext {\n    return {\n      schema: args.schema,\n      document: args.document,\n      operation: args.operation,\n      rawVariableValues: args.rawVariableValues,\n      operationName: args.operation.name?.value,\n      operationType: args.operation.operation,\n    };\n  }\n\n  executeRootSelectionSetImpl(\n    serially?: boolean,\n  ): PromiseOrValue<ExecutionResult | TAlternativeInitialResponse> {\n    const externalAbortSignal = this.validatedExecutionArgs.externalAbortSignal;\n    let removeExternalAbortListener: (() => void) | undefined;\n    if (externalAbortSignal) {\n      externalAbortSignal.throwIfAborted();\n      const onExternalAbort = () => {\n        this.abort(externalAbortSignal.reason);\n      };\n      removeExternalAbortListener = () =>\n        externalAbortSignal.removeEventListener('abort', onExternalAbort);\n      externalAbortSignal.addEventListener('abort', onExternalAbort);\n    }\n\n    const maybeRemoveExternalAbortListener = () => {\n      removeExternalAbortListener?.();\n    };\n\n    let result: PromiseOrValue<ObjMap<unknown>>;\n    try {\n      const {\n        schema,\n        fragments,\n        rootValue,\n        operation,\n        variableValues,\n        hideSuggestions,\n      } = this.validatedExecutionArgs;\n\n      const { operation: operationType, selectionSet } = operation;\n\n      const rootType = schema.getRootType(operationType);\n      if (rootType == null) {\n        throw new GraphQLError(\n          `Schema is not configured to execute ${operationType} operation.`,\n          { nodes: operation },\n        );\n      }\n\n      const { groupedFieldSet, newDeferUsages } = collectFields(\n        schema,\n        fragments,\n        variableValues,\n        rootType,\n        selectionSet,\n        hideSuggestions,\n      );\n\n      result = this.executeCollectedRootFields(\n        rootType,\n        rootValue,\n        groupedFieldSet,\n        serially ?? operationType === OperationTypeNode.MUTATION,\n        newDeferUsages,\n      );\n\n      if (isPromise(result)) {\n        const promise = result.then(\n          (data) => {\n            maybeRemoveExternalAbortListener();\n            return this.buildResponse(data);\n          },\n          (error: unknown) => {\n            maybeRemoveExternalAbortListener();\n            this.collectedErrors.add(ensureGraphQLError(error), undefined);\n            return this.buildResponse(null);\n          },\n        );\n        this.sharedExecutionContext.asyncWorkTracker.add(promise);\n        const { promise: cancellablePromise, abort: abortResultPromise } =\n          withCancellation(promise.then((resolved) => this.finish(resolved)));\n        this.abortResultPromise = () => {\n          abortResultPromise(this.createAbortedExecutionError(promise));\n        };\n        if (this.aborted) {\n          this.abortResultPromise();\n        }\n        return cancellablePromise;\n      }\n      maybeRemoveExternalAbortListener();\n    } catch (error) {\n      maybeRemoveExternalAbortListener();\n      this.collectedErrors.add(ensureGraphQLError(error), undefined);\n      return this.finish(this.buildResponse(null));\n    }\n    return this.finish(this.buildResponse(result));\n  }\n\n  abort(reason?: unknown): void {\n    if (this.aborted) {\n      return;\n    }\n    this.aborted = true;\n    if (reason !== undefined) {\n      this.abortReason = reason;\n    }\n    this.abortResultPromise?.();\n    this.resolverAbortController?.abort(this.abortReason);\n  }\n\n  finish<T>(result: T): T {\n    if (this.aborted) {\n      throw this.createAbortedExecutionError(result);\n    }\n    this.aborted = true;\n    return result;\n  }\n\n  createAbortedExecutionError<T>(\n    result: PromiseOrValue<T>,\n  ): AbortedGraphQLExecutionError<T> {\n    return new AbortedGraphQLExecutionError(this.abortReason, result);\n  }\n\n  getFinishSharedExecution(): () => void {\n    const resolverAbortController = this.resolverAbortController;\n    const asyncWorkFinishedHook =\n      this.validatedExecutionArgs.hooks?.asyncWorkFinished;\n    if (asyncWorkFinishedHook === undefined) {\n      return () => resolverAbortController?.abort();\n    }\n\n    const validatedExecutionArgs = this.validatedExecutionArgs;\n    const sharedExecutionContext = this.sharedExecutionContext;\n    return () => {\n      resolverAbortController?.abort();\n      runAsyncWorkFinishedHook(\n        validatedExecutionArgs,\n        sharedExecutionContext,\n        asyncWorkFinishedHook,\n      );\n    };\n  }\n\n  /**\n   * Given a completed execution context and data, build the `{ errors, data }`\n   * response defined by the \"Response\" section of the GraphQL specification.\n   *\n   * @internal\n   */\n  buildResponse(\n    data: ObjMap<unknown> | null,\n  ): ExecutionResult | TAlternativeInitialResponse {\n    this.getFinishSharedExecution()();\n    const errors = this.collectedErrors.errors;\n    return errors.length ? { errors, data } : { data };\n  }\n\n  executeCollectedRootFields(\n    rootType: GraphQLObjectType,\n    rootValue: unknown,\n    originalGroupedFieldSet: GroupedFieldSet,\n    serially: boolean,\n    _newDeferUsages: ReadonlyArray<DeferUsage>,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    return this.executeRootGroupedFieldSet(\n      rootType,\n      rootValue,\n      originalGroupedFieldSet,\n      serially,\n      undefined,\n    );\n  }\n\n  executeRootGroupedFieldSet(\n    rootType: GraphQLObjectType,\n    rootValue: unknown,\n    groupedFieldSet: GroupedFieldSet,\n    serially: boolean,\n    positionContext?: TPositionContext,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    return serially\n      ? this.executeFieldsSerially(\n          rootType,\n          rootValue,\n          undefined,\n          groupedFieldSet,\n          positionContext,\n        )\n      : this.executeFields(\n          rootType,\n          rootValue,\n          undefined,\n          groupedFieldSet,\n          positionContext,\n        );\n  }\n\n  /**\n   * Implements the \"Executing selection sets\" section of the spec\n   * for fields that must be executed serially.\n   *\n   * @internal\n   */\n  executeFieldsSerially(\n    parentType: GraphQLObjectType,\n    sourceValue: unknown,\n    path: Path | undefined,\n    groupedFieldSet: GroupedFieldSet,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    let tracingChannel = shouldTrace(resolveChannel)\n      ? resolveChannel\n      : undefined;\n\n    return promiseReduce(\n      groupedFieldSet,\n      (results, [responseName, fieldDetailsList]) => {\n        if (this.aborted) {\n          throw new Error('Aborted!');\n        }\n        const fieldPath = addPath(path, responseName, parentType.name);\n        const result = this.executeField(\n          parentType,\n          sourceValue,\n          fieldDetailsList,\n          fieldPath,\n          positionContext,\n          tracingChannel,\n        );\n        if (result === undefined) {\n          return results;\n        }\n        if (isPromise(result)) {\n          return result.then((resolved) => {\n            results[responseName] = resolved;\n            tracingChannel = shouldTrace(resolveChannel)\n              ? resolveChannel\n              : undefined;\n            return results;\n          });\n        }\n        results[responseName] = result;\n        return results;\n      },\n      Object.create(null),\n    );\n  }\n\n  /**\n   * Implements the \"Executing selection sets\" section of the spec\n   * for fields that may be executed in parallel.\n   *\n   * @internal\n   */\n  executeFields(\n    parentType: GraphQLObjectType,\n    sourceValue: unknown,\n    path: Path | undefined,\n    groupedFieldSet: GroupedFieldSet,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    const results = Object.create(null);\n    let containsPromise = false;\n    const tracingChannel = shouldTrace(resolveChannel)\n      ? resolveChannel\n      : undefined;\n\n    try {\n      for (const [responseName, fieldDetailsList] of groupedFieldSet) {\n        const fieldPath = addPath(path, responseName, parentType.name);\n        const result = this.executeField(\n          parentType,\n          sourceValue,\n          fieldDetailsList,\n          fieldPath,\n          positionContext,\n          tracingChannel,\n        );\n\n        if (result !== undefined) {\n          results[responseName] = result;\n          if (isPromise(result)) {\n            containsPromise = true;\n          }\n        }\n      }\n    } catch (error) {\n      if (containsPromise) {\n        this.sharedExecutionContext.asyncWorkTracker.addValues(\n          Object.values(results),\n        );\n      }\n      throw error;\n    }\n\n    // If there are no promises, we can just return the object and any incrementalDataRecords\n    if (!containsPromise) {\n      return results;\n    }\n\n    // Otherwise, results is a map from field name to the result of resolving that\n    // field, which is possibly a promise. Return a promise that will return this\n    // same map, but with any promises replaced with the values they resolved to.\n    return promiseForObject(results, this.promiseAll);\n  }\n\n  /**\n   * Implements the \"Executing fields\" section of the spec\n   * In particular, this function figures out the value that the field returns by\n   * calling its resolve function, then calls completeValue to complete promises,\n   * coercing scalars, or execute the sub-selection-set for objects.\n   *\n   * @internal\n   */\n  executeField(\n    parentType: GraphQLObjectType,\n    source: unknown,\n    fieldDetailsList: FieldDetailsList,\n    path: Path,\n    positionContext: TPositionContext | undefined,\n    tracingChannel: MinimalTracingChannel<GraphQLResolveContext> | undefined,\n  ): PromiseOrValue<unknown> {\n    const validatedExecutionArgs = this.validatedExecutionArgs;\n    const { schema, contextValue, variableValues, hideSuggestions } =\n      validatedExecutionArgs;\n    const firstFieldDetails = fieldDetailsList[0];\n    const firstNode = firstFieldDetails.node;\n    const fieldName = firstNode.name.value;\n    const fieldDef = schema.getField(parentType, fieldName);\n    if (!fieldDef) {\n      return;\n    }\n\n    const returnType = fieldDef.type;\n    let resolveFn = fieldDef.resolve ?? validatedExecutionArgs.fieldResolver;\n\n    if (tracingChannel !== undefined) {\n      const originalResolveFn = resolveFn;\n      resolveFn = (s, args, c, info) =>\n        traceMixed(\n          tracingChannel,\n          this.buildResolveContext(args, info, fieldDef.resolve === undefined),\n          () => originalResolveFn(s, args, c, info),\n        );\n    }\n\n    const info = buildResolveInfo(\n      validatedExecutionArgs,\n      fieldDef,\n      toNodes(fieldDetailsList),\n      parentType,\n      path,\n      this.getAbortSignal,\n      this.getAsyncHelpers,\n    );\n\n    // Get the resolve function, regardless of if its result is normal or abrupt (error).\n    try {\n      // Build a JS object of arguments from the field.arguments AST, using the\n      // variables scope to fulfill any variable references.\n      // TODO: find a way to memoize, in case this field is within a List type.\n      const args = getArgumentValues(\n        fieldDef,\n        firstNode,\n        variableValues,\n        firstFieldDetails.fragmentVariableValues,\n        hideSuggestions,\n      );\n\n      // The resolve function's optional third argument is a context value that\n      // is provided to every resolve function within an execution. It is commonly\n      // used to represent an authenticated user, or request-specific caches.\n      const result = resolveFn(source, args, contextValue, info);\n\n      if (isPromiseLike(result)) {\n        return this.completePromisedValue(\n          returnType,\n          fieldDetailsList,\n          info,\n          path,\n          result,\n          positionContext,\n        );\n      }\n\n      const completed = this.completeValue(\n        returnType,\n        fieldDetailsList,\n        info,\n        path,\n        result,\n        positionContext,\n      );\n\n      if (isPromise(completed)) {\n        // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n        // to take a second callback for the error case.\n        return completed.then(undefined, (rawError: unknown) => {\n          this.handleFieldError(rawError, returnType, fieldDetailsList, path);\n          return null;\n        });\n      }\n      return completed;\n    } catch (rawError) {\n      this.handleFieldError(rawError, returnType, fieldDetailsList, path);\n      return null;\n    }\n  }\n\n  /**\n   * Build a graphql:resolve channel context for a single field invocation.\n   *\n   * `fieldPath` is exposed as a lazy getter because serializing the response\n   * path is O(depth) and APMs that depth-filter or skip default resolvers\n   * often never read it. `args` is passed through by reference.\n   * @internal\n   */\n  buildResolveContext(\n    args: ObjMap<unknown>,\n    info: GraphQLResolveInfo,\n    isDefaultResolver: boolean,\n  ): GraphQLResolveContext {\n    let cachedFieldPath: string | undefined;\n    return {\n      fieldName: info.fieldName,\n      alias: String(info.path.key),\n      parentType: info.parentType.name,\n      fieldType: String(info.returnType),\n      args,\n      isDefaultResolver,\n      get fieldPath() {\n        cachedFieldPath ??= pathToArray(info.path).join('.');\n        return cachedFieldPath;\n      },\n    };\n  }\n\n  handleFieldError(\n    rawError: unknown,\n    returnType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    path: Path,\n  ): void {\n    const error = locatedError(\n      rawError,\n      toNodes(fieldDetailsList),\n      pathToArray(path),\n    );\n\n    // If the field type is non-nullable, then it is resolved without any\n    // protection from errors, however it still properly locates the error.\n    if (\n      this.validatedExecutionArgs.errorPropagation &&\n      isNonNullType(returnType)\n    ) {\n      throw error;\n    }\n\n    // Otherwise, error protection is applied, logging the error and resolving\n    // a null value for this field if one is encountered.\n    this.collectedErrors.add(error, path);\n  }\n\n  /**\n   * Implements the instructions for completeValue as defined in the\n   * \"Value Completion\" section of the spec.\n   *\n   * If the field type is Non-Null, then this recursively completes the value\n   * for the inner type. It throws a field error if that completion returns null,\n   * as per the \"Nullability\" section of the spec.\n   *\n   * If the field type is a List, then this recursively completes the value\n   * for the inner type on each item in the list.\n   *\n   * If the field type is a Scalar or Enum, ensures the completed value is a legal\n   * value of the type by calling the `coerceOutputValue` method of GraphQL type\n   * definition.\n   *\n   * If the field is an abstract type, determine the runtime type of the value\n   * and then complete based on that type\n   *\n   * Otherwise, the field type expects a sub-selection set, and will complete the\n   * value by executing all sub-selections.\n   *\n   * @internal\n   */\n  completeValue(\n    returnType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    path: Path,\n    result: unknown,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<unknown> {\n    // If result is an Error, throw a located error.\n    if (result instanceof Error) {\n      throw result;\n    }\n\n    // If field type is NonNull, complete for inner type, and throw field error\n    // if result is null.\n    if (isNonNullType(returnType)) {\n      const completed = this.completeValue(\n        returnType.ofType,\n        fieldDetailsList,\n        info,\n        path,\n        result,\n        positionContext,\n      );\n      if (completed === null) {\n        throw new Error(\n          `Cannot return null for non-nullable field ${info.parentType}.${info.fieldName}.`,\n        );\n      }\n      return completed;\n    }\n\n    // If result value is null or undefined then return null.\n    if (result == null) {\n      return null;\n    }\n\n    // If field type is List, complete each item in the list with the inner type\n    if (isListType(returnType)) {\n      return this.completeListValue(\n        returnType,\n        fieldDetailsList,\n        info,\n        path,\n        result,\n        positionContext,\n      );\n    }\n\n    // If field type is a leaf type, Scalar or Enum, coerce to a valid value,\n    // returning null if coercion is not possible.\n    if (isLeafType(returnType)) {\n      return this.completeLeafValue(returnType, result);\n    }\n\n    // If field type is an abstract type, Interface or Union, determine the\n    // runtime Object type and complete for that type.\n    if (isAbstractType(returnType)) {\n      return this.completeAbstractValue(\n        returnType,\n        fieldDetailsList,\n        info,\n        path,\n        result,\n        positionContext,\n      );\n    }\n\n    // If field type is Object, execute and complete all sub-selections.\n    if (isObjectType(returnType)) {\n      return this.completeObjectValue(\n        returnType,\n        fieldDetailsList,\n        info,\n        path,\n        result,\n        positionContext,\n      );\n      /* node:coverage ignore next 7 */\n    }\n    // Not reachable, all possible output types have been considered.\n    invariant(\n      false,\n      'Cannot complete value of unexpected output type: ' + inspect(returnType),\n    );\n  }\n\n  async completePromisedValue(\n    returnType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    path: Path,\n    result: PromiseLike<unknown>,\n    positionContext: TPositionContext | undefined,\n  ): Promise<unknown> {\n    try {\n      const resolved = await result;\n      if (this.aborted) {\n        throw new Error('Aborted!');\n      }\n      let completed = this.completeValue(\n        returnType,\n        fieldDetailsList,\n        info,\n        path,\n        resolved,\n        positionContext,\n      );\n\n      if (isPromise(completed)) {\n        completed = await completed;\n      }\n      return completed;\n    } catch (rawError) {\n      this.handleFieldError(rawError, returnType, fieldDetailsList, path);\n      return null;\n    }\n  }\n\n  /**\n   * Complete a async iterator value by completing the result and calling\n   * recursively until all the results are completed.\n   *\n   * @internal\n   */\n  async completeAsyncIterableValue(\n    itemType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    path: Path,\n    items: AsyncIterable<unknown>,\n    positionContext: TPositionContext | undefined,\n  ): Promise<ReadonlyArray<unknown>> {\n    // do not stream inner lists of multi-dimensional lists\n    const streamUsage =\n      typeof path.key === 'number'\n        ? undefined\n        : getStreamUsage(this.validatedExecutionArgs, fieldDetailsList);\n\n    let containsPromise = false;\n    const completedResults: Array<unknown> = [];\n    const asyncIterator = items[Symbol.asyncIterator]();\n    let index = 0;\n    let iteration;\n    try {\n      while (true) {\n        if (\n          streamUsage?.initialCount === index &&\n          this.handleStream(\n            index,\n            path,\n            { handle: asyncIterator, isAsync: true },\n            streamUsage,\n            info,\n            itemType,\n          )\n        ) {\n          break;\n        }\n        const itemPath = addPath(path, index, undefined);\n        try {\n          // eslint-disable-next-line no-await-in-loop\n          iteration = await asyncIterator.next();\n        } catch (rawError) {\n          throw locatedError(\n            rawError,\n            toNodes(fieldDetailsList),\n            pathToArray(path),\n          );\n        }\n        if (this.aborted || iteration.done) {\n          break;\n        }\n        const item = iteration.value;\n        if (\n          this.completeMaybePromisedListItemValue(\n            item,\n            completedResults,\n            itemType,\n            fieldDetailsList,\n            info,\n            itemPath,\n            positionContext,\n          )\n        ) {\n          containsPromise = true;\n        }\n        index++;\n      }\n    } catch (error) {\n      this.sharedExecutionContext.asyncWorkTracker.add(\n        returnIteratorCatchingErrors(asyncIterator),\n      );\n      if (containsPromise) {\n        this.sharedExecutionContext.asyncWorkTracker.addValues(\n          completedResults,\n        );\n      }\n      throw error;\n    }\n\n    // Throwing on completion outside of the loop may allow engines to better optimize\n    if (this.aborted) {\n      if (!iteration?.done) {\n        this.sharedExecutionContext.asyncWorkTracker.add(\n          returnIteratorCatchingErrors(asyncIterator),\n        );\n      }\n      throw new Error('Aborted!');\n    }\n\n    return containsPromise\n      ? this.promiseAll(completedResults)\n      : completedResults;\n  }\n\n  /* node:coverage ignore next 12 */\n  handleStream(\n    _index: number,\n    _path: Path,\n    _iterator:\n      | { handle: Iterator<unknown>; isAsync?: never }\n      | { handle: AsyncIterator<unknown>; isAsync: true },\n    _streamUsage: StreamUsage,\n    _info: GraphQLResolveInfo,\n    _itemType: GraphQLOutputType,\n  ): boolean {\n    return false;\n  }\n\n  /**\n   * Complete a list value by completing each item in the list with the\n   * inner type\n   *\n   * @internal\n   */\n  completeListValue(\n    returnType: GraphQLList<GraphQLOutputType>,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    path: Path,\n    result: unknown,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ReadonlyArray<unknown>> {\n    const itemType = returnType.ofType;\n\n    if (isAsyncIterable(result)) {\n      return this.completeAsyncIterableValue(\n        itemType,\n        fieldDetailsList,\n        info,\n        path,\n        result,\n        positionContext,\n      );\n    }\n\n    if (!isIterableObject(result)) {\n      throw new GraphQLError(\n        `Expected Iterable, but did not find one for field \"${info.parentType}.${info.fieldName}\".`,\n      );\n    }\n\n    return this.completeIterableValue(\n      itemType,\n      fieldDetailsList,\n      info,\n      path,\n      result,\n      positionContext,\n    );\n  }\n\n  completeIterableValue(\n    itemType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    path: Path,\n    items: Iterable<unknown>,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ReadonlyArray<unknown>> {\n    // do not stream inner lists of multi-dimensional lists\n    const streamUsage =\n      typeof path.key === 'number'\n        ? undefined\n        : getStreamUsage(this.validatedExecutionArgs, fieldDetailsList);\n\n    // This is specified as a simple map, however we're optimizing the path\n    // where the list contains no Promises by avoiding creating another Promise.\n    let containsPromise = false;\n    const completedResults: Array<unknown> = [];\n    let index = 0;\n    const iterator = items[Symbol.iterator]();\n    try {\n      while (true) {\n        if (\n          streamUsage?.initialCount === index &&\n          this.handleStream(\n            index,\n            path,\n            { handle: iterator },\n            streamUsage,\n            info,\n            itemType,\n          )\n        ) {\n          break;\n        }\n        const iteration = iterator.next();\n        if (iteration.done) {\n          break;\n        }\n\n        const item = iteration.value;\n\n        // No need to modify the info object containing the path,\n        // since from here on it is not ever accessed by resolver functions.\n        const itemPath = addPath(path, index, undefined);\n\n        if (\n          this.completeMaybePromisedListItemValue(\n            item,\n            completedResults,\n            itemType,\n            fieldDetailsList,\n            info,\n            itemPath,\n            positionContext,\n          )\n        ) {\n          containsPromise = true;\n        }\n\n        index++;\n      }\n    } catch (error) {\n      const asyncWorkTracker = this.sharedExecutionContext.asyncWorkTracker;\n      if (containsPromise) {\n        asyncWorkTracker.addValues(completedResults);\n      }\n      asyncWorkTracker.addValues(collectIteratorPromises(iterator));\n      throw error;\n    }\n\n    return containsPromise\n      ? this.promiseAll(completedResults)\n      : completedResults;\n  }\n\n  completeMaybePromisedListItemValue(\n    item: unknown,\n    completedResults: Array<unknown>,\n    itemType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    itemPath: Path,\n    positionContext: TPositionContext | undefined,\n  ): boolean {\n    if (isPromiseLike(item)) {\n      completedResults.push(\n        this.completePromisedListItemValue(\n          item,\n          itemType,\n          fieldDetailsList,\n          info,\n          itemPath,\n          positionContext,\n        ),\n      );\n      return true;\n    } else if (\n      this.completeListItemValue(\n        item,\n        completedResults,\n        itemType,\n        fieldDetailsList,\n        info,\n        itemPath,\n        positionContext,\n      )\n    ) {\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Complete a list item value by adding it to the completed results.\n   *\n   * Returns true if the value is a Promise.\n   *\n   * @internal\n   */\n  completeListItemValue(\n    item: unknown,\n    completedResults: Array<unknown>,\n    itemType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    itemPath: Path,\n    positionContext: TPositionContext | undefined,\n  ): boolean {\n    try {\n      const completedItem = this.completeValue(\n        itemType,\n        fieldDetailsList,\n        info,\n        itemPath,\n        item,\n        positionContext,\n      );\n\n      if (isPromise(completedItem)) {\n        // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n        // to take a second callback for the error case.\n        completedResults.push(\n          completedItem.then(undefined, (rawError: unknown) => {\n            this.handleFieldError(\n              rawError,\n              itemType,\n              fieldDetailsList,\n              itemPath,\n            );\n            return null;\n          }),\n        );\n        return true;\n      }\n\n      completedResults.push(completedItem);\n    } catch (rawError) {\n      this.handleFieldError(rawError, itemType, fieldDetailsList, itemPath);\n      completedResults.push(null);\n    }\n    return false;\n  }\n\n  async completePromisedListItemValue(\n    item: PromiseLike<unknown>,\n    itemType: GraphQLOutputType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    itemPath: Path,\n    positionContext: TPositionContext | undefined,\n  ): Promise<unknown> {\n    try {\n      const resolved = await item;\n      if (this.aborted) {\n        throw new Error('Aborted!');\n      }\n      let completed = this.completeValue(\n        itemType,\n        fieldDetailsList,\n        info,\n        itemPath,\n        resolved,\n        positionContext,\n      );\n      if (isPromise(completed)) {\n        completed = await completed;\n      }\n      return completed;\n    } catch (rawError) {\n      this.handleFieldError(rawError, itemType, fieldDetailsList, itemPath);\n      return null;\n    }\n  }\n\n  /**\n   * Complete a Scalar or Enum by serializing to a valid value, returning\n   * null if serialization is not possible.\n   *\n   * @internal\n   */\n  completeLeafValue(returnType: GraphQLLeafType, result: unknown): unknown {\n    const coerced = returnType.coerceOutputValue(result);\n    if (coerced == null) {\n      throw new Error(\n        `Expected \\`${inspect(returnType)}.coerceOutputValue(${inspect(result)})\\` to ` +\n          `return non-nullable value, returned: ${inspect(coerced)}`,\n      );\n    }\n    return coerced;\n  }\n\n  /**\n   * Complete a value of an abstract type by determining the runtime object type\n   * of that value, then complete the value for that type.\n   *\n   * @internal\n   */\n  completeAbstractValue(\n    returnType: GraphQLAbstractType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    path: Path,\n    result: unknown,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    const validatedExecutionArgs = this.validatedExecutionArgs;\n    const { schema, contextValue } = validatedExecutionArgs;\n    const resolveTypeFn =\n      returnType.resolveType ?? validatedExecutionArgs.typeResolver;\n    const runtimeType = resolveTypeFn(result, contextValue, info, returnType);\n\n    if (isPromiseLike(runtimeType)) {\n      return runtimeType.then((resolvedRuntimeType) => {\n        if (this.aborted) {\n          throw new Error('Aborted!');\n        }\n        return this.completeObjectValue(\n          this.ensureValidRuntimeType(\n            resolvedRuntimeType,\n            schema,\n            returnType,\n            fieldDetailsList,\n            info,\n            result,\n          ),\n          fieldDetailsList,\n          info,\n          path,\n          result,\n          positionContext,\n        );\n      });\n    }\n\n    return this.completeObjectValue(\n      this.ensureValidRuntimeType(\n        runtimeType,\n        schema,\n        returnType,\n        fieldDetailsList,\n        info,\n        result,\n      ),\n      fieldDetailsList,\n      info,\n      path,\n      result,\n      positionContext,\n    );\n  }\n\n  ensureValidRuntimeType(\n    runtimeTypeName: unknown,\n    schema: GraphQLSchema,\n    returnType: GraphQLAbstractType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    result: unknown,\n  ): GraphQLObjectType {\n    if (runtimeTypeName == null) {\n      throw new GraphQLError(\n        `Abstract type \"${returnType}\" must resolve to an Object type at runtime for field \"${info.parentType}.${info.fieldName}\". Either the \"${returnType}\" type should provide a \"resolveType\" function or each possible type should provide an \"isTypeOf\" function.`,\n        { nodes: toNodes(fieldDetailsList) },\n      );\n    }\n\n    if (typeof runtimeTypeName !== 'string') {\n      throw new GraphQLError(\n        `Abstract type \"${returnType}\" must resolve to an Object type at runtime for field \"${info.parentType}.${info.fieldName}\" with ` +\n          `value ${inspect(result)}, received \"${inspect(\n            runtimeTypeName,\n          )}\", which is not a valid Object type name.`,\n      );\n    }\n\n    const runtimeType = schema.getType(runtimeTypeName);\n    if (runtimeType == null) {\n      throw new GraphQLError(\n        `Abstract type \"${returnType}\" was resolved to a type \"${runtimeTypeName}\" that does not exist inside the schema.`,\n        { nodes: toNodes(fieldDetailsList) },\n      );\n    }\n\n    if (!isObjectType(runtimeType)) {\n      throw new GraphQLError(\n        `Abstract type \"${returnType}\" was resolved to a non-object type \"${runtimeTypeName}\".`,\n        { nodes: toNodes(fieldDetailsList) },\n      );\n    }\n\n    if (!schema.isSubType(returnType, runtimeType)) {\n      throw new GraphQLError(\n        `Runtime Object type \"${runtimeType}\" is not a possible type for \"${returnType}\".`,\n        { nodes: toNodes(fieldDetailsList) },\n      );\n    }\n\n    return runtimeType;\n  }\n\n  /**\n   * Complete an Object value by executing all sub-selections.\n   *\n   * @internal\n   */\n  completeObjectValue(\n    returnType: GraphQLObjectType,\n    fieldDetailsList: FieldDetailsList,\n    info: GraphQLResolveInfo,\n    path: Path,\n    result: unknown,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    // If there is an isTypeOf predicate function, call it with the\n    // current result. If isTypeOf returns false, then raise an error rather\n    // than continuing execution.\n    if (returnType.isTypeOf) {\n      const isTypeOf = returnType.isTypeOf(\n        result,\n        this.validatedExecutionArgs.contextValue,\n        info,\n      );\n\n      if (isPromiseLike(isTypeOf)) {\n        return isTypeOf.then((resolvedIsTypeOf) => {\n          if (this.aborted) {\n            throw new Error('Aborted!');\n          }\n          if (!resolvedIsTypeOf) {\n            throw this.invalidReturnTypeError(\n              returnType,\n              result,\n              fieldDetailsList,\n            );\n          }\n          return this.collectAndExecuteSubfields(\n            returnType,\n            fieldDetailsList,\n            path,\n            result,\n            positionContext,\n          );\n        });\n      }\n\n      if (!isTypeOf) {\n        throw this.invalidReturnTypeError(returnType, result, fieldDetailsList);\n      }\n    }\n\n    return this.collectAndExecuteSubfields(\n      returnType,\n      fieldDetailsList,\n      path,\n      result,\n      positionContext,\n    );\n  }\n\n  invalidReturnTypeError(\n    returnType: GraphQLObjectType,\n    result: unknown,\n    fieldDetailsList: FieldDetailsList,\n  ): GraphQLError {\n    return new GraphQLError(\n      `Expected value of type \"${returnType}\" but got: ${inspect(result)}.`,\n      { nodes: toNodes(fieldDetailsList) },\n    );\n  }\n\n  collectAndExecuteSubfields(\n    returnType: GraphQLObjectType,\n    fieldDetailsList: FieldDetailsList,\n    path: Path,\n    result: unknown,\n    positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    // Collect sub-fields to execute to complete this value.\n    const { groupedFieldSet, newDeferUsages } = collectSubfields(\n      this.validatedExecutionArgs,\n      returnType,\n      fieldDetailsList,\n    );\n\n    return this.executeCollectedSubfields(\n      returnType,\n      result,\n      path,\n      groupedFieldSet,\n      newDeferUsages,\n      positionContext,\n    );\n  }\n\n  executeCollectedSubfields(\n    parentType: GraphQLObjectType,\n    sourceValue: unknown,\n    path: Path | undefined,\n    originalGroupedFieldSet: GroupedFieldSet,\n    _newDeferUsages: ReadonlyArray<DeferUsage>,\n    _positionContext: TPositionContext | undefined,\n  ): PromiseOrValue<ObjMap<unknown>> {\n    return this.executeFields(\n      parentType,\n      sourceValue,\n      path,\n      originalGroupedFieldSet,\n      undefined,\n    );\n  }\n}\n\nfunction toNodes(fieldDetailsList: FieldDetailsList): ReadonlyArray<FieldNode> {\n  return fieldDetailsList.map((fieldDetails) => fieldDetails.node);\n}\n"]}