Issues (158)

src/SchemaBuilderFactory.php (1 issue)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Jerowork\GraphqlAttributeSchema;
6
7
use Jerowork\GraphqlAttributeSchema\Resolver\BuiltTypesRegistry;
8
use Jerowork\GraphqlAttributeSchema\Resolver\RootTypeResolver;
9
use Jerowork\GraphqlAttributeSchema\Resolver\Type\Argument\ArgumentNodeResolver;
10
use Jerowork\GraphqlAttributeSchema\Resolver\Type\BuiltInScalarTypeResolver;
11
use Jerowork\GraphqlAttributeSchema\Resolver\Type\BuiltTypesRegistryTypeResolverDecorator;
12
use Jerowork\GraphqlAttributeSchema\Resolver\Type\Connection\EdgeTypeResolver;
13
use Jerowork\GraphqlAttributeSchema\Resolver\Type\Connection\PageInfoTypeResolver;
14
use Jerowork\GraphqlAttributeSchema\Resolver\Type\ConnectionTypeResolver;
15
use Jerowork\GraphqlAttributeSchema\Resolver\Type\CustomScalarTypeResolver;
16
use Jerowork\GraphqlAttributeSchema\Resolver\Type\Deferred\DeferredTypeRegistryFactory;
17
use Jerowork\GraphqlAttributeSchema\Resolver\Type\Deferred\DeferredTypeResolver;
18
use Jerowork\GraphqlAttributeSchema\Resolver\Type\EnumTypeResolver;
19
use Jerowork\GraphqlAttributeSchema\Resolver\Type\Field\FieldResolver;
20
use Jerowork\GraphqlAttributeSchema\Resolver\Type\InputObjectTypeResolver;
21
use Jerowork\GraphqlAttributeSchema\Resolver\Type\InterfaceTypeResolver;
22
use Jerowork\GraphqlAttributeSchema\Resolver\Type\ListAndNullableTypeResolverDecorator;
23
use Jerowork\GraphqlAttributeSchema\Resolver\Type\ObjectTypeResolver;
24
use Jerowork\GraphqlAttributeSchema\Resolver\Type\TypeResolverSelector;
25
use Jerowork\GraphqlAttributeSchema\Resolver\Type\UnionTypeResolver;
26
use Psr\Container\ContainerInterface;
27
28
final readonly class SchemaBuilderFactory
0 ignored issues
show
A parse error occurred: Syntax error, unexpected T_READONLY, expecting T_CLASS on line 28 at column 6
Loading history...
29
{
30 3
    public function create(
31
        ContainerInterface $container,
32
    ): SchemaBuilder {
33 3
        $astContainer = new AstContainer();
34 3
        $builtTypesRegistry = new BuiltTypesRegistry();
35 3
        $deferredTypeResolver = new DeferredTypeResolver($container, new DeferredTypeRegistryFactory());
36 3
        $argumentNodeResolver = new ArgumentNodeResolver($container);
37
38 3
        $fieldResolver = new FieldResolver($deferredTypeResolver, $argumentNodeResolver);
39 3
        $typeResolverSelector = new TypeResolverSelector([
40 3
            new ListAndNullableTypeResolverDecorator(
41 3
                new BuiltInScalarTypeResolver(),
42 3
            ),
43 3
            new ListAndNullableTypeResolverDecorator(new BuiltTypesRegistryTypeResolverDecorator(
44 3
                $astContainer,
45 3
                new CustomScalarTypeResolver($astContainer),
46 3
                $builtTypesRegistry,
47 3
            )),
48 3
            new ListAndNullableTypeResolverDecorator(new BuiltTypesRegistryTypeResolverDecorator(
49 3
                $astContainer,
50 3
                new EnumTypeResolver($astContainer),
51 3
                $builtTypesRegistry,
52 3
            )),
53 3
            new ListAndNullableTypeResolverDecorator(new BuiltTypesRegistryTypeResolverDecorator(
54 3
                $astContainer,
55 3
                new InputObjectTypeResolver($astContainer, $fieldResolver),
56 3
                $builtTypesRegistry,
57 3
            )),
58 3
            new ListAndNullableTypeResolverDecorator(new BuiltTypesRegistryTypeResolverDecorator(
59 3
                $astContainer,
60 3
                new ObjectTypeResolver($astContainer, $fieldResolver),
61 3
                $builtTypesRegistry,
62 3
            )),
63 3
            new ListAndNullableTypeResolverDecorator(new BuiltTypesRegistryTypeResolverDecorator(
64 3
                $astContainer,
65 3
                new InterfaceTypeResolver($astContainer, $builtTypesRegistry, $fieldResolver),
66 3
                $builtTypesRegistry,
67 3
            )),
68 3
            new ListAndNullableTypeResolverDecorator(new BuiltTypesRegistryTypeResolverDecorator(
69 3
                $astContainer,
70 3
                new UnionTypeResolver($builtTypesRegistry),
71 3
                $builtTypesRegistry,
72 3
            )),
73 3
            new ListAndNullableTypeResolverDecorator(
74 3
                new ConnectionTypeResolver(
75 3
                    $astContainer,
76 3
                    $builtTypesRegistry,
77 3
                    new PageInfoTypeResolver($builtTypesRegistry),
78 3
                    new EdgeTypeResolver($astContainer, $builtTypesRegistry, $fieldResolver),
79 3
                ),
80 3
            ),
81 3
        ]);
82
83 3
        return new SchemaBuilder(
84 3
            $astContainer,
85 3
            $builtTypesRegistry,
86 3
            $typeResolverSelector,
87 3
            new RootTypeResolver(
88 3
                $typeResolverSelector,
89 3
                $container,
90 3
                $fieldResolver,
91 3
                $deferredTypeResolver,
92 3
                $argumentNodeResolver,
93 3
            ),
94 3
        );
95
    }
96
}
97