private function makeSchemaDefFromConfig($def, array $config)
    {
        if (! $def) {
            throw new Error('def must be defined.');
        }
        switch ($def->kind) {
            case NodeKind::OBJECT_TYPE_DEFINITION:
                return new ObjectType($config);
            case NodeKind::INTERFACE_TYPE_DEFINITION:
                return new InterfaceType($config);
            case NodeKind::ENUM_TYPE_DEFINITION:
                return new EnumType($config);
            case NodeKind::UNION_TYPE_DEFINITION:
                return new UnionType($config);
            case NodeKind::SCALAR_TYPE_DEFINITION:
                return new CustomScalarType($config);
            case NodeKind::INPUT_OBJECT_TYPE_DEFINITION:
                return new InputObjectType($config);
            default:
                throw new Error(sprintf('Type kind of %s not supported.', $def->kind));
        }
    }
private function makeSchemaDefFromConfig($def, array $config)
    {
        if (! $def) {
            throw new Error('def must be defined.');
        }
        switch ($def->kind) {
            case NodeKind::OBJECT_TYPE_DEFINITION:
                return new ObjectType($config);
            case NodeKind::INTERFACE_TYPE_DEFINITION:
                return new InterfaceType($config);
            case NodeKind::ENUM_TYPE_DEFINITION:
                return new EnumType($config);
            case NodeKind::UNION_TYPE_DEFINITION:
                return new UnionType($config);
            case NodeKind::SCALAR_TYPE_DEFINITION:
                return new CustomScalarType($config);
            case NodeKind::INPUT_OBJECT_TYPE_DEFINITION:
                return new InputObjectType($config);
            default:
                throw new Error(sprintf('Type kind of %s not supported.', $def->kind));
        }
    }
private function makeSchemaDefFromConfig ( $ def , array $ config ) { if ( ! $ def ) { throw new Error ( 'def must be defined.' ) ; } switch ( $ def -> kind ) { case NodeKind :: OBJECT_TYPE_DEFINITION : return new ObjectType ( $ config ) ; case NodeKind :: INTERFACE_TYPE_DEFINITION : return new InterfaceType ( $ config ) ; case NodeKind :: ENUM_TYPE_DEFINITION : return new EnumType ( $ config ) ; case NodeKind :: UNION_TYPE_DEFINITION : return new UnionType ( $ config ) ; case NodeKind :: SCALAR_TYPE_DEFINITION : return new CustomScalarType ( $ config ) ; case NodeKind :: INPUT_OBJECT_TYPE_DEFINITION : return new InputObjectType ( $ config ) ; default : throw new Error ( sprintf ( 'Type kind of %s not supported.' , $ def -> kind ) ) ; } }
@param ObjectTypeDefinitionNode|InterfaceTypeDefinitionNode|EnumTypeExtensionNode|ScalarTypeDefinitionNode|InputObjectTypeDefinitionNode $def
@param mixed[]                                                                                                                           $config

@return CustomScalarType|EnumType|InputObjectType|InterfaceType|ObjectType|UnionType

@throws Error
@param ObjectTypeDefinitionNode|InterfaceTypeDefinitionNode|EnumTypeExtensionNode|ScalarTypeDefinitionNode|InputObjectTypeDefinitionNode $def @param mixed [] $config