This repository has been archived by the owner on Jul 16, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 258
/
rules_factory.dart
145 lines (142 loc) · 8.86 KB
/
rules_factory.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import 'models/rule.dart';
import 'rules_list/always_remove_listener/always_remove_listener_rule.dart';
import 'rules_list/avoid_border_all/avoid_border_all_rule.dart';
import 'rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule.dart';
import 'rules_list/avoid_dynamic/avoid_dynamic_rule.dart';
import 'rules_list/avoid_global_state/avoid_global_state_rule.dart';
import 'rules_list/avoid_ignoring_return_values/avoid_ignoring_return_values_rule.dart';
import 'rules_list/avoid_late_keyword/avoid_late_keyword_rule.dart';
import 'rules_list/avoid_missing_enum_constant_in_map/avoid_missing_enum_constant_in_map_rule.dart';
import 'rules_list/avoid_nested_conditional_expressions/avoid_nested_conditional_expressions_rule.dart';
import 'rules_list/avoid_non_ascii_symbols/avoid_non_ascii_symbols_rule.dart';
import 'rules_list/avoid_non_null_assertion/avoid_non_null_assertion_rule.dart';
import 'rules_list/avoid_preserve_whitespace_false/avoid_preserve_whitespace_false_rule.dart';
import 'rules_list/avoid_returning_widgets/avoid_returning_widgets_rule.dart';
import 'rules_list/avoid_throw_in_catch_block/avoid_throw_in_catch_block_rule.dart';
import 'rules_list/avoid_unnecessary_setstate/avoid_unnecessary_setstate_rule.dart';
import 'rules_list/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule.dart';
import 'rules_list/avoid_unnecessary_type_casts/avoid_unnecessary_type_casts_rule.dart';
import 'rules_list/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule.dart';
import 'rules_list/avoid_unused_parameters/avoid_unused_parameters_rule.dart';
import 'rules_list/avoid_wrapping_in_padding/avoid_wrapping_in_padding_rule.dart';
import 'rules_list/ban_name/ban_name_rule.dart';
import 'rules_list/binary_expression_operand_order/binary_expression_operand_order_rule.dart';
import 'rules_list/component_annotation_arguments_ordering/component_annotation_arguments_ordering_rule.dart';
import 'rules_list/double_literal_format/double_literal_format_rule.dart';
import 'rules_list/format_comment/format_comment_rule.dart';
import 'rules_list/member_ordering/member_ordering_rule.dart';
import 'rules_list/member_ordering_extended/member_ordering_extended_rule.dart';
import 'rules_list/newline_before_return/newline_before_return_rule.dart';
import 'rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart';
import 'rules_list/no_empty_block/no_empty_block_rule.dart';
import 'rules_list/no_equal_arguments/no_equal_arguments_rule.dart';
import 'rules_list/no_equal_then_else/no_equal_then_else_rule.dart';
import 'rules_list/no_magic_number/no_magic_number_rule.dart';
import 'rules_list/no_object_declaration/no_object_declaration_rule.dart';
import 'rules_list/prefer_async_await/prefer_async_await_rule.dart';
import 'rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores.dart';
import 'rules_list/prefer_conditional_expressions/prefer_conditional_expressions_rule.dart';
import 'rules_list/prefer_const_border_radius/prefer_const_border_radius_rule.dart';
import 'rules_list/prefer_correct_identifier_length/prefer_correct_identifier_length_rule.dart';
import 'rules_list/prefer_correct_type_name/prefer_correct_type_name_rule.dart';
import 'rules_list/prefer_extracting_callbacks/prefer_extracting_callbacks_rule.dart';
import 'rules_list/prefer_first/prefer_first_rule.dart';
import 'rules_list/prefer_immediate_return/prefer_immediate_return_rule.dart';
import 'rules_list/prefer_intl_name/prefer_intl_name_rule.dart';
import 'rules_list/prefer_last/prefer_last_rule.dart';
import 'rules_list/prefer_match_file_name/prefer_match_file_name_rule.dart';
import 'rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule.dart';
import 'rules_list/prefer_on_push_cd_strategy/prefer_on_push_cd_strategy_rule.dart';
import 'rules_list/prefer_single_widget_per_file/prefer_single_widget_per_file_rule.dart';
import 'rules_list/prefer_trailing_comma/prefer_trailing_comma_rule.dart';
import 'rules_list/provide_correct_intl_args/provide_correct_intl_args_rule.dart';
import 'rules_list/tag_name/tag_name_rule.dart';
final _implementedRules = <String, Rule Function(Map<String, Object>)>{
AlwaysRemoveListenerRule.ruleId: (config) => AlwaysRemoveListenerRule(config),
AvoidBorderAllRule.ruleId: (config) => AvoidBorderAllRule(config),
AvoidCollectionMethodsWithUnrelatedTypesRule.ruleId: (config) =>
AvoidCollectionMethodsWithUnrelatedTypesRule(config),
AvoidDynamicRule.ruleId: (config) => AvoidDynamicRule(config),
AvoidGlobalStateRule.ruleId: (config) => AvoidGlobalStateRule(config),
AvoidIgnoringReturnValuesRule.ruleId: (config) =>
AvoidIgnoringReturnValuesRule(config),
AvoidLateKeywordRule.ruleId: (config) => AvoidLateKeywordRule(config),
AvoidMissingEnumConstantInMapRule.ruleId: (config) =>
AvoidMissingEnumConstantInMapRule(config),
AvoidNestedConditionalExpressionsRule.ruleId: (config) =>
AvoidNestedConditionalExpressionsRule(config),
AvoidNonAsciiSymbolsRule.ruleId: (config) => AvoidNonAsciiSymbolsRule(config),
AvoidNonNullAssertionRule.ruleId: (config) =>
AvoidNonNullAssertionRule(config),
AvoidPreserveWhitespaceFalseRule.ruleId: (config) =>
AvoidPreserveWhitespaceFalseRule(config),
AvoidReturningWidgetsRule.ruleId: (config) =>
AvoidReturningWidgetsRule(config),
AvoidThrowInCatchBlockRule.ruleId: (config) =>
AvoidThrowInCatchBlockRule(config),
AvoidUnnecessarySetStateRule.ruleId: (config) =>
AvoidUnnecessarySetStateRule(config),
AvoidUnnecessaryTypeAssertionsRule.ruleId: (config) =>
AvoidUnnecessaryTypeAssertionsRule(config),
AvoidUnnecessaryTypeCastsRule.ruleId: (config) =>
AvoidUnnecessaryTypeCastsRule(config),
AvoidUnrelatedTypeAssertionsRule.ruleId: (config) =>
AvoidUnrelatedTypeAssertionsRule(config),
AvoidUnusedParametersRule.ruleId: (config) =>
AvoidUnusedParametersRule(config),
AvoidWrappingInPaddingRule.ruleId: (config) =>
AvoidWrappingInPaddingRule(config),
BanNameRule.ruleId: (config) => BanNameRule(config),
BinaryExpressionOperandOrderRule.ruleId: (config) =>
BinaryExpressionOperandOrderRule(config),
ComponentAnnotationArgumentsOrderingRule.ruleId: (config) =>
ComponentAnnotationArgumentsOrderingRule(config),
DoubleLiteralFormatRule.ruleId: (config) => DoubleLiteralFormatRule(config),
FormatCommentRule.ruleId: (config) => FormatCommentRule(config),
MemberOrderingRule.ruleId: (config) => MemberOrderingRule(config),
MemberOrderingExtendedRule.ruleId: (config) =>
MemberOrderingExtendedRule(config),
NewlineBeforeReturnRule.ruleId: (config) => NewlineBeforeReturnRule(config),
NoBooleanLiteralCompareRule.ruleId: (config) =>
NoBooleanLiteralCompareRule(config),
NoEmptyBlockRule.ruleId: (config) => NoEmptyBlockRule(config),
NoEqualArgumentsRule.ruleId: (config) => NoEqualArgumentsRule(config),
NoEqualThenElseRule.ruleId: (config) => NoEqualThenElseRule(config),
NoMagicNumberRule.ruleId: (config) => NoMagicNumberRule(config),
NoObjectDeclarationRule.ruleId: (config) => NoObjectDeclarationRule(config),
PreferAsyncAwaitRule.ruleId: (config) => PreferAsyncAwaitRule(config),
PreferCommentingAnalyzerIgnores.ruleId: (config) =>
PreferCommentingAnalyzerIgnores(config),
PreferConditionalExpressionsRule.ruleId: (config) =>
PreferConditionalExpressionsRule(config),
PreferConstBorderRadiusRule.ruleId: (config) =>
PreferConstBorderRadiusRule(config),
PreferCorrectIdentifierLengthRule.ruleId: (config) =>
PreferCorrectIdentifierLengthRule(config),
PreferCorrectTypeNameRule.ruleId: (config) =>
PreferCorrectTypeNameRule(config),
PreferExtractingCallbacksRule.ruleId: (config) =>
PreferExtractingCallbacksRule(config),
PreferFirstRule.ruleId: (config) => PreferFirstRule(config),
PreferImmediateReturnRule.ruleId: (config) =>
PreferImmediateReturnRule(config),
PreferIntlNameRule.ruleId: (config) => PreferIntlNameRule(config),
PreferLastRule.ruleId: (config) => PreferLastRule(config),
PreferMatchFileNameRule.ruleId: (config) => PreferMatchFileNameRule(config),
PreferMovingToVariableRule.ruleId: (config) =>
PreferMovingToVariableRule(config),
PreferOnPushCdStrategyRule.ruleId: (config) =>
PreferOnPushCdStrategyRule(config),
PreferSingleWidgetPerFileRule.ruleId: (config) =>
PreferSingleWidgetPerFileRule(config),
PreferTrailingCommaRule.ruleId: (config) => PreferTrailingCommaRule(config),
ProvideCorrectIntlArgsRule.ruleId: (config) =>
ProvideCorrectIntlArgsRule(config),
TagNameRule.ruleId: (config) => TagNameRule(config),
};
Iterable<Rule> get allRules =>
_implementedRules.keys.map((id) => _implementedRules[id]!({}));
Iterable<Rule> getRulesById(Map<String, Map<String, Object>> rulesConfig) =>
List.unmodifiable(_implementedRules.keys
.where((id) => rulesConfig.keys.contains(id))
.map<Rule>((id) => _implementedRules[id]!(rulesConfig[id]!)));