Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules

NoUnusedVariables::getVisitorpublicWC 1.0

Method of the class: NoUnusedVariables{}

No Hooks.

Returns

null. Nothing (null).

Usage

$NoUnusedVariables = new NoUnusedVariables();
$NoUnusedVariables->getVisitor( $context ): array;
$context(QueryValidationContext) (required)
.

NoUnusedVariables::getVisitor() code WC 10.9.1

public function getVisitor(QueryValidationContext $context): array
{
    $this->variableDefs = [];

    return [
        NodeKind::OPERATION_DEFINITION => [
            'enter' => function (): void {
                $this->variableDefs = [];
            },
            'leave' => function (OperationDefinitionNode $operation) use ($context): void {
                $variableNameUsed = [];
                $usages = $context->getRecursiveVariableUsages($operation);
                $opName = $operation->name !== null
                    ? $operation->name->value
                    : null;

                foreach ($usages as $usage) {
                    $node = $usage['node'];
                    $variableNameUsed[$node->name->value] = true;
                }

                foreach ($this->variableDefs as $variableDef) {
                    $variableName = $variableDef->variable->name->value;

                    if (! isset($variableNameUsed[$variableName])) {
                        $context->reportError(new Error(
                            static::unusedVariableMessage($variableName, $opName),
                            [$variableDef]
                        ));
                    }
                }
            },
        ],
        NodeKind::VARIABLE_DEFINITION => function ($def): void {
            $this->variableDefs[] = $def;
        },
    ];
}