Automattic\WooCommerce\Vendor\GraphQL\Executor

ExecutionContext{}WC 1.0

Data that must be available at all points during query execution.

Namely, schema of the type system that is currently executing, and the fragments defined in the query document.

No Hooks.

Usage

$ExecutionContext = new ExecutionContext();
// use class methods

Methods

  1. public __construct(
  2. public addError(Error $error)

ExecutionContext{} code WC 10.9.1

class ExecutionContext
{
    public Schema $schema;

    /** @var array<string, FragmentDefinitionNode> */
    public array $fragments;

    /** @var mixed */
    public $rootValue;

    /** @var mixed */
    public $contextValue;

    public OperationDefinitionNode $operation;

    /** @var array<string, mixed> */
    public array $variableValues;

    /**
     * @var callable
     *
     * @phpstan-var FieldResolver
     */
    public $fieldResolver;

    /**
     * @var callable
     *
     * @phpstan-var ArgsMapper
     */
    public $argsMapper;

    /** @var list<Error> */
    public array $errors;

    public PromiseAdapter $promiseAdapter;

    /**
     * @param array<string, FragmentDefinitionNode> $fragments
     * @param mixed $rootValue
     * @param mixed $contextValue
     * @param array<string, mixed> $variableValues
     * @param list<Error> $errors
     *
     * @phpstan-param FieldResolver $fieldResolver
     */
    public function __construct(
        Schema $schema,
        array $fragments,
        $rootValue,
        $contextValue,
        OperationDefinitionNode $operation,
        array $variableValues,
        array $errors,
        callable $fieldResolver,
        callable $argsMapper,
        PromiseAdapter $promiseAdapter
    ) {
        $this->schema = $schema;
        $this->fragments = $fragments;
        $this->rootValue = $rootValue;
        $this->contextValue = $contextValue;
        $this->operation = $operation;
        $this->variableValues = $variableValues;
        $this->errors = $errors;
        $this->fieldResolver = $fieldResolver;
        $this->argsMapper = $argsMapper;
        $this->promiseAdapter = $promiseAdapter;
    }

    public function addError(Error $error): void
    {
        $this->errors[] = $error;
    }
}