Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules

LoneSchemaDefinition::getSDLVisitorpublicWC 1.0

Method of the class: LoneSchemaDefinition{}

No Hooks.

Returns

null. Nothing (null).

Usage

$LoneSchemaDefinition = new LoneSchemaDefinition();
$LoneSchemaDefinition->getSDLVisitor( $context ): array;
$context(SDLValidationContext) (required)
.

LoneSchemaDefinition::getSDLVisitor() code WC 10.9.1

public function getSDLVisitor(SDLValidationContext $context): array
{
    $oldSchema = $context->getSchema();
    $alreadyDefined = $oldSchema === null
        ? false
        : (
            $oldSchema->astNode !== null
            || $oldSchema->getQueryType() !== null
            || $oldSchema->getMutationType() !== null
            || $oldSchema->getSubscriptionType() !== null
        );

    $schemaDefinitionsCount = 0;

    return [
        NodeKind::SCHEMA_DEFINITION => static function (SchemaDefinitionNode $node) use ($alreadyDefined, $context, &$schemaDefinitionsCount): void {
            if ($alreadyDefined) {
                $context->reportError(new Error(static::canNotDefineSchemaWithinExtensionMessage(), $node));

                return;
            }

            if ($schemaDefinitionsCount > 0) {
                $context->reportError(new Error(static::schemaDefinitionNotAloneMessage(), $node));
            }

            ++$schemaDefinitionsCount;
        },
    ];
}