graphql_tools/validation/rules/
defaults.rs1use crate::validation::validate::ValidationPlan;
2
3use super::{
4 FieldsOnCorrectType, FragmentsOnCompositeTypes, KnownArgumentNames, KnownDirectives,
5 KnownFragmentNames, KnownTypeNames, LeafFieldSelections, LoneAnonymousOperation,
6 NoFragmentsCycle, NoUndefinedVariables, NoUnusedFragments, NoUnusedVariables,
7 OverlappingFieldsCanBeMerged, PossibleFragmentSpreads, ProvidedRequiredArguments,
8 SingleFieldSubscriptions, UniqueArgumentNames, UniqueDirectivesPerLocation,
9 UniqueFragmentNames, UniqueOperationNames, UniqueVariableNames, ValuesOfCorrectType,
10 VariablesAreInputTypes, VariablesInAllowedPosition,
11};
12
13pub fn default_rules_validation_plan() -> ValidationPlan {
14 let mut plan = ValidationPlan { rules: vec![] };
15
16 plan.add_rule(Box::new(UniqueOperationNames::new()));
17 plan.add_rule(Box::new(LoneAnonymousOperation::new()));
18 plan.add_rule(Box::new(SingleFieldSubscriptions::new()));
19 plan.add_rule(Box::new(KnownTypeNames::new()));
20 plan.add_rule(Box::new(FragmentsOnCompositeTypes::new()));
21 plan.add_rule(Box::new(VariablesAreInputTypes::new()));
22 plan.add_rule(Box::new(LeafFieldSelections::new()));
23 plan.add_rule(Box::new(FieldsOnCorrectType::new()));
24 plan.add_rule(Box::new(UniqueFragmentNames::new()));
25 plan.add_rule(Box::new(KnownFragmentNames::new()));
26 plan.add_rule(Box::new(NoUnusedFragments::new()));
27 plan.add_rule(Box::new(OverlappingFieldsCanBeMerged::new()));
28 plan.add_rule(Box::new(NoFragmentsCycle::new()));
29 plan.add_rule(Box::new(PossibleFragmentSpreads::new()));
30 plan.add_rule(Box::new(NoUnusedVariables::new()));
31 plan.add_rule(Box::new(NoUndefinedVariables::new()));
32 plan.add_rule(Box::new(KnownArgumentNames::new()));
33 plan.add_rule(Box::new(UniqueArgumentNames::new()));
34 plan.add_rule(Box::new(UniqueVariableNames::new()));
35 plan.add_rule(Box::new(ProvidedRequiredArguments::new()));
36 plan.add_rule(Box::new(KnownDirectives::new()));
37 plan.add_rule(Box::new(VariablesInAllowedPosition::new()));
38 plan.add_rule(Box::new(ValuesOfCorrectType::new()));
39 plan.add_rule(Box::new(UniqueDirectivesPerLocation::new()));
40
41 plan
42}