public function assertValid()
    {
        $errors = $this->validate();

        if ($errors) {
            throw new InvariantViolation(implode("\n\n", $this->validationErrors));
        }

        $internalTypes = Type::getStandardTypes() + Introspection::getTypes();
        foreach ($this->getTypeMap() as $name => $type) {
            if (isset($internalTypes[$name])) {
                continue;
            }

            $type->assertValid();

            // Make sure type loader returns the same instance as registered in other places of schema
            if (! $this->config->typeLoader) {
                continue;
            }

            Utils::invariant(
                $this->loadType($name) === $type,
                sprintf(
                    'Type loader returns different instance for %s than field/argument definitions. Make sure you always return the same instance for the same type name.',
                    $name
                )
            );
        }
    }
public function assertValid()
    {
        $errors = $this->validate();

        if ($errors) {
            throw new InvariantViolation(implode("\n\n", $this->validationErrors));
        }

        $internalTypes = Type::getStandardTypes() + Introspection::getTypes();
        foreach ($this->getTypeMap() as $name => $type) {
            if (isset($internalTypes[$name])) {
                continue;
            }

            $type->assertValid();

            
            if (! $this->config->typeLoader) {
                continue;
            }

            Utils::invariant(
                $this->loadType($name) === $type,
                sprintf(
                    'Type loader returns different instance for %s than field/argument definitions. Make sure you always return the same instance for the same type name.',
                    $name
                )
            );
        }
    }
public function assertValid ( ) { $ errors = $ this -> validate ( ) ; if ( $ errors ) { throw new InvariantViolation ( implode ( "\n\n" , $ this -> validationErrors ) ) ; } $ internalTypes = Type :: getStandardTypes ( ) + Introspection :: getTypes ( ) ; foreach ( $ this -> getTypeMap ( ) as $ name => $ type ) { if ( isset ( $ internalTypes [ $ name ] ) ) { continue ; } $ type -> assertValid ( ) ; // Make sure type loader returns the same instance as registered in other places of schema if ( ! $ this -> config -> typeLoader ) { continue ; } Utils :: invariant ( $ this -> loadType ( $ name ) === $ type , sprintf ( 'Type loader returns different instance for %s than field/argument definitions. Make sure you always return the same instance for the same type name.' , $ name ) ) ; } }
Validates schema.

This operation requires full schema scan. Do not use in production environment.

@throws InvariantViolation

@api
Validates schema .