1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Digia\GraphQL\Validation; |
4
|
|
|
|
5
|
|
|
use Digia\GraphQL\Util\TypeComparator; |
6
|
|
|
use Digia\GraphQL\Validation\Rule\ExecutableDefinitionsRule; |
7
|
|
|
use Digia\GraphQL\Validation\Rule\FieldOnCorrectTypeRule; |
8
|
|
|
use Digia\GraphQL\Validation\Rule\FragmentsOnCompositeTypesRule; |
9
|
|
|
use Digia\GraphQL\Validation\Rule\KnownArgumentNamesRule; |
10
|
|
|
use Digia\GraphQL\Validation\Rule\KnownDirectivesRule; |
11
|
|
|
use Digia\GraphQL\Validation\Rule\KnownFragmentNamesRule; |
12
|
|
|
use Digia\GraphQL\Validation\Rule\KnownTypeNamesRule; |
13
|
|
|
use Digia\GraphQL\Validation\Rule\LoneAnonymousOperationRule; |
14
|
|
|
use Digia\GraphQL\Validation\Rule\NoFragmentCyclesRule; |
15
|
|
|
use Digia\GraphQL\Validation\Rule\NoUndefinedVariablesRule; |
16
|
|
|
use Digia\GraphQL\Validation\Rule\NoUnusedFragmentsRule; |
17
|
|
|
use Digia\GraphQL\Validation\Rule\NoUnusedVariablesRule; |
18
|
|
|
use Digia\GraphQL\Validation\Rule\OverlappingFieldsCanBeMergedRule; |
19
|
|
|
use Digia\GraphQL\Validation\Rule\PossibleFragmentSpreadsRule; |
20
|
|
|
use Digia\GraphQL\Validation\Rule\ProvidedNonNullArgumentsRule; |
21
|
|
|
use Digia\GraphQL\Validation\Rule\ScalarLeafsRule; |
22
|
|
|
use Digia\GraphQL\Validation\Rule\SingleFieldSubscriptionsRule; |
23
|
|
|
use Digia\GraphQL\Validation\Rule\UniqueArgumentNamesRule; |
24
|
|
|
use Digia\GraphQL\Validation\Rule\UniqueDirectivesPerLocationRule; |
25
|
|
|
use Digia\GraphQL\Validation\Rule\UniqueFragmentNamesRule; |
26
|
|
|
use Digia\GraphQL\Validation\Rule\UniqueInputFieldNamesRule; |
27
|
|
|
use Digia\GraphQL\Validation\Rule\UniqueOperationNamesRule; |
28
|
|
|
use Digia\GraphQL\Validation\Rule\UniqueVariableNamesRule; |
29
|
|
|
use Digia\GraphQL\Validation\Rule\ValuesOfCorrectTypeRule; |
30
|
|
|
use Digia\GraphQL\Validation\Rule\VariablesAreInputTypesRule; |
31
|
|
|
use Digia\GraphQL\Validation\Rule\VariablesDefaultValueAllowedRule; |
32
|
|
|
use Digia\GraphQL\Validation\Rule\VariablesInAllowedPositionRule; |
33
|
|
|
use League\Container\ServiceProvider\AbstractServiceProvider; |
34
|
|
|
|
35
|
|
|
class RulesProvider extends AbstractServiceProvider |
36
|
|
|
{ |
37
|
|
|
/** |
38
|
|
|
* @var array |
39
|
|
|
*/ |
40
|
|
|
protected $provides = [ |
41
|
|
|
ExecutableDefinitionsRule::class, |
42
|
|
|
FieldOnCorrectTypeRule::class, |
43
|
|
|
FragmentsOnCompositeTypesRule::class, |
44
|
|
|
KnownArgumentNamesRule::class, |
45
|
|
|
KnownDirectivesRule::class, |
46
|
|
|
KnownFragmentNamesRule::class, |
47
|
|
|
KnownTypeNamesRule::class, |
48
|
|
|
LoneAnonymousOperationRule::class, |
49
|
|
|
NoFragmentCyclesRule::class, |
50
|
|
|
NoUndefinedVariablesRule::class, |
51
|
|
|
NoUnusedFragmentsRule::class, |
52
|
|
|
NoUnusedVariablesRule::class, |
53
|
|
|
OverlappingFieldsCanBeMergedRule::class, |
54
|
|
|
PossibleFragmentSpreadsRule::class, |
55
|
|
|
ProvidedNonNullArgumentsRule::class, |
56
|
|
|
ScalarLeafsRule::class, |
57
|
|
|
SingleFieldSubscriptionsRule::class, |
58
|
|
|
UniqueArgumentNamesRule::class, |
59
|
|
|
UniqueDirectivesPerLocationRule::class, |
60
|
|
|
UniqueFragmentNamesRule::class, |
61
|
|
|
UniqueVariableNamesRule::class, |
62
|
|
|
ValuesOfCorrectTypeRule::class, |
63
|
|
|
VariablesAreInputTypesRule::class, |
64
|
|
|
VariablesDefaultValueAllowedRule::class, |
65
|
|
|
VariablesInAllowedPositionRule::class, |
66
|
|
|
]; |
67
|
|
|
|
68
|
|
|
/** |
69
|
|
|
* @inheritdoc |
70
|
|
|
*/ |
71
|
|
|
public function register() |
72
|
|
|
{ |
73
|
|
|
$this->container->add(ExecutableDefinitionsRule::class, ExecutableDefinitionsRule::class); |
74
|
|
|
$this->container->add(FieldOnCorrectTypeRule::class, FieldOnCorrectTypeRule::class); |
75
|
|
|
$this->container->add(FragmentsOnCompositeTypesRule::class, FragmentsOnCompositeTypesRule::class); |
76
|
|
|
$this->container->add(KnownArgumentNamesRule::class, KnownArgumentNamesRule::class); |
77
|
|
|
$this->container->add(KnownDirectivesRule::class, KnownDirectivesRule::class); |
78
|
|
|
$this->container->add(KnownFragmentNamesRule::class, KnownFragmentNamesRule::class); |
79
|
|
|
$this->container->add(KnownTypeNamesRule::class, KnownTypeNamesRule::class); |
80
|
|
|
$this->container->add(LoneAnonymousOperationRule::class, LoneAnonymousOperationRule::class); |
81
|
|
|
$this->container->add(NoFragmentCyclesRule::class, NoFragmentCyclesRule::class); |
82
|
|
|
$this->container->add(NoUndefinedVariablesRule::class, NoUndefinedVariablesRule::class); |
83
|
|
|
$this->container->add(NoUnusedFragmentsRule::class, NoUnusedFragmentsRule::class); |
84
|
|
|
$this->container->add(NoUnusedVariablesRule::class, NoUnusedVariablesRule::class); |
85
|
|
|
$this->container->add(OverlappingFieldsCanBeMergedRule::class, OverlappingFieldsCanBeMergedRule::class); |
86
|
|
|
$this->container->add(PossibleFragmentSpreadsRule::class, PossibleFragmentSpreadsRule::class) |
87
|
|
|
->withArgument(TypeComparator::class); |
88
|
|
|
$this->container->add(ProvidedNonNullArgumentsRule::class, ProvidedNonNullArgumentsRule::class); |
89
|
|
|
$this->container->add(ScalarLeafsRule::class, ScalarLeafsRule::class); |
90
|
|
|
$this->container->add(SingleFieldSubscriptionsRule::class, SingleFieldSubscriptionsRule::class); |
91
|
|
|
$this->container->add(UniqueArgumentNamesRule::class, UniqueArgumentNamesRule::class); |
92
|
|
|
$this->container->add(UniqueDirectivesPerLocationRule::class, UniqueDirectivesPerLocationRule::class); |
93
|
|
|
$this->container->add(UniqueFragmentNamesRule::class, UniqueFragmentNamesRule::class); |
94
|
|
|
$this->container->add(UniqueInputFieldNamesRule::class, UniqueInputFieldNamesRule::class); |
95
|
|
|
$this->container->add(UniqueOperationNamesRule::class, UniqueOperationNamesRule::class); |
96
|
|
|
$this->container->add(UniqueVariableNamesRule::class, UniqueVariableNamesRule::class); |
97
|
|
|
$this->container->add(ValuesOfCorrectTypeRule::class, ValuesOfCorrectTypeRule::class); |
98
|
|
|
$this->container->add(VariablesAreInputTypesRule::class, VariablesAreInputTypesRule::class); |
99
|
|
|
$this->container->add(VariablesDefaultValueAllowedRule::class, VariablesDefaultValueAllowedRule::class); |
100
|
|
|
$this->container->add(VariablesInAllowedPositionRule::class, VariablesInAllowedPositionRule::class) |
101
|
|
|
->withArgument(TypeComparator::class); |
102
|
|
|
} |
103
|
|
|
} |
104
|
|
|
|