1 | <?php |
||
2 | |||
3 | declare(strict_types=1); |
||
4 | |||
5 | namespace Jerowork\GraphqlAttributeSchema; |
||
6 | |||
7 | use Jerowork\GraphqlAttributeSchema\NodeParser\ChainedNodeParser; |
||
8 | use Jerowork\GraphqlAttributeSchema\NodeParser\Child\ArgNodeParser; |
||
9 | use Jerowork\GraphqlAttributeSchema\NodeParser\Child\AutowireNodeParser; |
||
10 | use Jerowork\GraphqlAttributeSchema\NodeParser\Child\ClassFieldsNodeParser; |
||
11 | use Jerowork\GraphqlAttributeSchema\NodeParser\Child\CursorNodeParser; |
||
12 | use Jerowork\GraphqlAttributeSchema\NodeParser\Child\EdgeArgsNodeParser; |
||
13 | use Jerowork\GraphqlAttributeSchema\NodeParser\Child\MethodArgumentsNodeParser; |
||
14 | use Jerowork\GraphqlAttributeSchema\NodeParser\EnumNodeParser; |
||
15 | use Jerowork\GraphqlAttributeSchema\NodeParser\InputTypeNodeParser; |
||
16 | use Jerowork\GraphqlAttributeSchema\NodeParser\InterfaceTypeNodeParser; |
||
17 | use Jerowork\GraphqlAttributeSchema\NodeParser\MutationNodeParser; |
||
18 | use Jerowork\GraphqlAttributeSchema\NodeParser\QueryNodeParser; |
||
19 | use Jerowork\GraphqlAttributeSchema\NodeParser\ScalarNodeParser; |
||
20 | use Jerowork\GraphqlAttributeSchema\NodeParser\TypeNodeParser; |
||
21 | use Jerowork\GraphqlAttributeSchema\NodeParser\TypeReferenceDecider; |
||
22 | use Jerowork\GraphqlAttributeSchema\Type\DateTimeType; |
||
23 | use Jerowork\GraphqlAttributeSchema\Util\Finder\Native\NativeFinder; |
||
24 | use Jerowork\GraphqlAttributeSchema\Util\Reflector\Native\NativeReflector; |
||
25 | |||
26 | final readonly class ParserFactory |
||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||
27 | { |
||
28 | /** |
||
29 | * @param list<class-string> $customTypes |
||
30 | */ |
||
31 | 4 | public function create( |
|
32 | array $customTypes = [ |
||
33 | DateTimeType::class, |
||
34 | ], |
||
35 | ): Parser { |
||
36 | 4 | $typeReferenceDecider = new TypeReferenceDecider(); |
|
37 | |||
38 | 4 | $methodArgNodesParser = new MethodArgumentsNodeParser( |
|
39 | 4 | new AutowireNodeParser(), |
|
40 | 4 | new EdgeArgsNodeParser(), |
|
41 | 4 | new ArgNodeParser($typeReferenceDecider), |
|
42 | 4 | ); |
|
43 | 4 | $classFieldNodesParser = new ClassFieldsNodeParser( |
|
44 | 4 | $typeReferenceDecider, |
|
45 | 4 | $methodArgNodesParser, |
|
46 | 4 | ); |
|
47 | 4 | $cursorNodeParser = new CursorNodeParser($typeReferenceDecider); |
|
48 | |||
49 | 4 | return new Parser( |
|
50 | 4 | new NativeFinder(), |
|
51 | 4 | new NativeReflector(), |
|
52 | 4 | new ChainedNodeParser([ |
|
53 | 4 | new EnumNodeParser(), |
|
54 | 4 | new InputTypeNodeParser($classFieldNodesParser), |
|
55 | 4 | new TypeNodeParser($classFieldNodesParser, $cursorNodeParser), |
|
56 | 4 | new InterfaceTypeNodeParser($classFieldNodesParser, $cursorNodeParser), |
|
57 | 4 | new ScalarNodeParser(), |
|
58 | 4 | new MutationNodeParser($typeReferenceDecider, $methodArgNodesParser), |
|
59 | 4 | new QueryNodeParser($typeReferenceDecider, $methodArgNodesParser), |
|
60 | 4 | ]), |
|
61 | 4 | $customTypes, |
|
62 | 4 | ); |
|
63 | } |
||
64 | } |
||
65 |