@graphql-eslint/eslint-plugin 3.0.0-alpha-069461d.0 → 3.0.0-alpha-698204a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +19 -8
  2. package/configs/base.d.ts +5 -0
  3. package/configs/index.d.ts +59 -91
  4. package/configs/operations-all.d.ts +19 -0
  5. package/configs/{recommended.d.ts → operations-recommended.d.ts} +11 -30
  6. package/configs/schema-all.d.ts +23 -0
  7. package/configs/schema-recommended.d.ts +44 -0
  8. package/docs/README.md +9 -17
  9. package/docs/deprecated-rules.md +21 -0
  10. package/docs/rules/alphabetize.md +1 -1
  11. package/docs/rules/description-style.md +4 -2
  12. package/docs/rules/executable-definitions.md +2 -2
  13. package/docs/rules/fields-on-correct-type.md +2 -2
  14. package/docs/rules/fragments-on-composite-type.md +2 -2
  15. package/docs/rules/input-name.md +1 -1
  16. package/docs/rules/known-argument-names.md +2 -2
  17. package/docs/rules/known-directives.md +2 -2
  18. package/docs/rules/known-fragment-names.md +2 -2
  19. package/docs/rules/known-type-names.md +2 -2
  20. package/docs/rules/lone-anonymous-operation.md +2 -2
  21. package/docs/rules/lone-schema-definition.md +2 -2
  22. package/docs/rules/match-document-filename.md +6 -4
  23. package/docs/rules/naming-convention.md +26 -27
  24. package/docs/rules/no-anonymous-operations.md +2 -2
  25. package/docs/rules/no-case-insensitive-enum-values-duplicates.md +2 -2
  26. package/docs/rules/no-deprecated.md +3 -1
  27. package/docs/rules/{avoid-duplicate-fields.md → no-duplicate-fields.md} +10 -8
  28. package/docs/rules/no-fragment-cycles.md +2 -2
  29. package/docs/rules/no-hashtag-description.md +3 -1
  30. package/docs/rules/no-root-type.md +7 -1
  31. package/docs/rules/{avoid-scalar-result-type-on-mutation.md → no-scalar-result-type-on-mutation.md} +7 -7
  32. package/docs/rules/no-typename-prefix.md +37 -0
  33. package/docs/rules/no-undefined-variables.md +2 -2
  34. package/docs/rules/no-unreachable-types.md +3 -1
  35. package/docs/rules/no-unused-fields.md +1 -1
  36. package/docs/rules/no-unused-fragments.md +2 -2
  37. package/docs/rules/no-unused-variables.md +2 -2
  38. package/docs/rules/one-field-subscriptions.md +2 -2
  39. package/docs/rules/overlapping-fields-can-be-merged.md +2 -2
  40. package/docs/rules/possible-fragment-spread.md +2 -2
  41. package/docs/rules/possible-type-extension.md +2 -2
  42. package/docs/rules/provided-required-arguments.md +2 -2
  43. package/docs/rules/require-deprecation-date.md +1 -1
  44. package/docs/rules/require-deprecation-reason.md +2 -2
  45. package/docs/rules/require-description.md +36 -7
  46. package/docs/rules/require-field-of-type-query-in-mutation-result.md +1 -1
  47. package/docs/rules/require-id-when-available.md +3 -1
  48. package/docs/rules/scalar-leafs.md +2 -2
  49. package/docs/rules/selection-set-depth.md +9 -2
  50. package/docs/rules/strict-id-in-types.md +16 -10
  51. package/docs/rules/unique-argument-names.md +2 -2
  52. package/docs/rules/unique-directive-names-per-location.md +2 -2
  53. package/docs/rules/unique-directive-names.md +2 -2
  54. package/docs/rules/unique-enum-value-names.md +2 -2
  55. package/docs/rules/unique-field-definition-names.md +2 -2
  56. package/docs/rules/unique-fragment-name.md +1 -1
  57. package/docs/rules/unique-input-field-names.md +2 -2
  58. package/docs/rules/unique-operation-name.md +1 -1
  59. package/docs/rules/unique-operation-types.md +2 -2
  60. package/docs/rules/unique-type-names.md +2 -2
  61. package/docs/rules/unique-variable-names.md +2 -2
  62. package/docs/rules/value-literals-of-correct-type.md +2 -2
  63. package/docs/rules/variables-are-input-types.md +2 -2
  64. package/docs/rules/variables-in-allowed-position.md +2 -2
  65. package/index.js +566 -599
  66. package/index.mjs +567 -600
  67. package/package.json +1 -1
  68. package/rules/alphabetize.d.ts +8 -10
  69. package/rules/description-style.d.ts +4 -6
  70. package/rules/index.d.ts +18 -8
  71. package/rules/input-name.d.ts +1 -1
  72. package/rules/match-document-filename.d.ts +8 -10
  73. package/rules/naming-convention.d.ts +1 -1
  74. package/rules/{avoid-duplicate-fields.d.ts → no-duplicate-fields.d.ts} +0 -0
  75. package/rules/{avoid-scalar-result-type-on-mutation.d.ts → no-scalar-result-type-on-mutation.d.ts} +0 -0
  76. package/rules/{avoid-typename-prefix.d.ts → no-typename-prefix.d.ts} +0 -0
  77. package/rules/require-description.d.ts +10 -6
  78. package/rules/require-id-when-available.d.ts +3 -3
  79. package/rules/selection-set-depth.d.ts +3 -3
  80. package/rules/strict-id-in-types.d.ts +6 -8
  81. package/types.d.ts +9 -5
  82. package/utils.d.ts +1 -1
  83. package/configs/all.d.ts +0 -99
  84. package/docs/rules/avoid-operation-name-prefix.md +0 -50
  85. package/docs/rules/avoid-typename-prefix.md +0 -37
  86. package/docs/rules/no-operation-name-suffix.md +0 -38
  87. package/rules/avoid-operation-name-prefix.d.ts +0 -9
  88. package/rules/no-operation-name-suffix.d.ts +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-eslint/eslint-plugin",
3
- "version": "3.0.0-alpha-069461d.0",
3
+ "version": "3.0.0-alpha-698204a.0",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
@@ -4,14 +4,12 @@ declare const valuesEnum: ['EnumTypeDefinition'];
4
4
  declare const selectionsEnum: ('OperationDefinition' | 'FragmentDefinition')[];
5
5
  declare const variablesEnum: ['OperationDefinition'];
6
6
  declare const argumentsEnum: ('FieldDefinition' | 'Field' | 'DirectiveDefinition' | 'Directive')[];
7
- declare type AlphabetizeConfig = [
8
- {
9
- fields?: typeof fieldsEnum;
10
- values?: typeof valuesEnum;
11
- selections?: typeof selectionsEnum;
12
- variables?: typeof variablesEnum;
13
- arguments?: typeof argumentsEnum;
14
- }
15
- ];
16
- declare const rule: GraphQLESLintRule<AlphabetizeConfig>;
7
+ declare type AlphabetizeConfig = {
8
+ fields?: typeof fieldsEnum;
9
+ values?: typeof valuesEnum;
10
+ selections?: typeof selectionsEnum;
11
+ variables?: typeof variablesEnum;
12
+ arguments?: typeof argumentsEnum;
13
+ };
14
+ declare const rule: GraphQLESLintRule<[AlphabetizeConfig]>;
17
15
  export default rule;
@@ -1,8 +1,6 @@
1
1
  import { GraphQLESLintRule } from '../types';
2
- declare type DescriptionStyleRuleConfig = [
3
- {
4
- style: 'inline' | 'block';
5
- }
6
- ];
7
- declare const rule: GraphQLESLintRule<DescriptionStyleRuleConfig>;
2
+ declare type DescriptionStyleRuleConfig = {
3
+ style: 'inline' | 'block';
4
+ };
5
+ declare const rule: GraphQLESLintRule<[DescriptionStyleRuleConfig]>;
8
6
  export default rule;
package/rules/index.d.ts CHANGED
@@ -6,19 +6,15 @@ export declare const rules: {
6
6
  variables?: ["OperationDefinition"];
7
7
  arguments?: ("Field" | "Directive" | "FieldDefinition" | "DirectiveDefinition")[];
8
8
  }], false>;
9
- 'avoid-duplicate-fields': import("..").GraphQLESLintRule<any[], false>;
10
- 'avoid-operation-name-prefix': import("..").GraphQLESLintRule<import("./avoid-operation-name-prefix").AvoidOperationNamePrefixConfig, false>;
11
- 'avoid-scalar-result-type-on-mutation': import("..").GraphQLESLintRule<any[], false>;
12
- 'avoid-typename-prefix': import("..").GraphQLESLintRule<any[], false>;
13
9
  'description-style': import("..").GraphQLESLintRule<[{
14
10
  style: "block" | "inline";
15
11
  }], false>;
16
- 'input-name': import("..").GraphQLESLintRule<{
12
+ 'input-name': import("..").GraphQLESLintRule<[{
17
13
  checkInputType?: boolean;
18
14
  caseSensitiveInputType?: boolean;
19
15
  checkQueries?: boolean;
20
16
  checkMutations?: boolean;
21
- }[], false>;
17
+ }], false>;
22
18
  'match-document-filename': import("..").GraphQLESLintRule<[{
23
19
  fileExtension?: ".gql" | ".graphql";
24
20
  query?: import("../utils").CaseStyle | {
@@ -159,11 +155,13 @@ export declare const rules: {
159
155
  'no-anonymous-operations': import("..").GraphQLESLintRule<any[], false>;
160
156
  'no-case-insensitive-enum-values-duplicates': import("..").GraphQLESLintRule<any[], false>;
161
157
  'no-deprecated': import("..").GraphQLESLintRule<[], true>;
158
+ 'no-duplicate-fields': import("..").GraphQLESLintRule<any[], false>;
162
159
  'no-hashtag-description': import("..").GraphQLESLintRule<any[], false>;
163
- 'no-operation-name-suffix': import("..").GraphQLESLintRule<any[], false>;
164
160
  'no-root-type': import("..").GraphQLESLintRule<[{
165
161
  disallow: ("query" | "mutation" | "subscription")[];
166
162
  }], false>;
163
+ 'no-scalar-result-type-on-mutation': import("..").GraphQLESLintRule<any[], false>;
164
+ 'no-typename-prefix': import("..").GraphQLESLintRule<any[], false>;
167
165
  'no-unreachable-types': import("..").GraphQLESLintRule<any[], false>;
168
166
  'no-unused-fields': import("..").GraphQLESLintRule<any[], false>;
169
167
  'require-deprecation-date': import("..").GraphQLESLintRule<[{
@@ -171,7 +169,19 @@ export declare const rules: {
171
169
  }], false>;
172
170
  'require-deprecation-reason': import("..").GraphQLESLintRule<any[], false>;
173
171
  'require-description': import("..").GraphQLESLintRule<[{
174
- on: import("graphql").Kind[];
172
+ types?: boolean;
173
+ overrides?: {
174
+ ScalarTypeDefinition?: boolean;
175
+ ObjectTypeDefinition?: boolean;
176
+ FieldDefinition?: boolean;
177
+ InputValueDefinition?: boolean;
178
+ InterfaceTypeDefinition?: boolean;
179
+ UnionTypeDefinition?: boolean;
180
+ EnumTypeDefinition?: boolean;
181
+ EnumValueDefinition?: boolean;
182
+ InputObjectTypeDefinition?: boolean;
183
+ DirectiveDefinition?: boolean;
184
+ };
175
185
  }], false>;
176
186
  'require-field-of-type-query-in-mutation-result': import("..").GraphQLESLintRule<any[], false>;
177
187
  'require-id-when-available': import("..").GraphQLESLintRule<[{
@@ -5,5 +5,5 @@ declare type InputNameRuleConfig = {
5
5
  checkQueries?: boolean;
6
6
  checkMutations?: boolean;
7
7
  };
8
- declare const rule: GraphQLESLintRule<InputNameRuleConfig[]>;
8
+ declare const rule: GraphQLESLintRule<[InputNameRuleConfig]>;
9
9
  export default rule;
@@ -5,14 +5,12 @@ declare type PropertySchema = {
5
5
  style: CaseStyle;
6
6
  suffix: string;
7
7
  };
8
- declare type MatchDocumentFilenameRuleConfig = [
9
- {
10
- fileExtension?: typeof ACCEPTED_EXTENSIONS[number];
11
- query?: CaseStyle | PropertySchema;
12
- mutation?: CaseStyle | PropertySchema;
13
- subscription?: CaseStyle | PropertySchema;
14
- fragment?: CaseStyle | PropertySchema;
15
- }
16
- ];
17
- declare const rule: GraphQLESLintRule<MatchDocumentFilenameRuleConfig>;
8
+ declare type MatchDocumentFilenameRuleConfig = {
9
+ fileExtension?: typeof ACCEPTED_EXTENSIONS[number];
10
+ query?: CaseStyle | PropertySchema;
11
+ mutation?: CaseStyle | PropertySchema;
12
+ subscription?: CaseStyle | PropertySchema;
13
+ fragment?: CaseStyle | PropertySchema;
14
+ };
15
+ declare const rule: GraphQLESLintRule<[MatchDocumentFilenameRuleConfig]>;
18
16
  export default rule;
@@ -8,12 +8,12 @@ declare const KindToDisplayName: {
8
8
  UnionTypeDefinition: string;
9
9
  FieldDefinition: string;
10
10
  InputValueDefinition: string;
11
- VariableDefinition: string;
12
11
  Argument: string;
13
12
  DirectiveDefinition: string;
14
13
  EnumValueDefinition: string;
15
14
  OperationDefinition: string;
16
15
  FragmentDefinition: string;
16
+ VariableDefinition: string;
17
17
  };
18
18
  declare type AllowedKind = keyof typeof KindToDisplayName;
19
19
  declare type AllowedStyle = 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE';
@@ -1,8 +1,12 @@
1
- import { GraphQLESLintRule } from '../types';
2
1
  import { Kind } from 'graphql';
3
- declare const DESCRIBABLE_NODES: Kind[];
4
- declare type RequireDescriptionRuleConfig = [{
5
- on: typeof DESCRIBABLE_NODES;
6
- }];
7
- declare const rule: GraphQLESLintRule<RequireDescriptionRuleConfig>;
2
+ import { GraphQLESLintRule } from '../types';
3
+ declare const ALLOWED_KINDS: readonly [Kind.OBJECT_TYPE_DEFINITION, Kind.INTERFACE_TYPE_DEFINITION, Kind.ENUM_TYPE_DEFINITION, Kind.SCALAR_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.UNION_TYPE_DEFINITION, Kind.FIELD_DEFINITION, Kind.INPUT_VALUE_DEFINITION, Kind.ENUM_VALUE_DEFINITION, Kind.DIRECTIVE_DEFINITION];
4
+ declare type AllowedKind = typeof ALLOWED_KINDS[number];
5
+ declare type RequireDescriptionRuleConfig = {
6
+ types?: boolean;
7
+ overrides?: {
8
+ [key in AllowedKind]?: boolean;
9
+ };
10
+ };
11
+ declare const rule: GraphQLESLintRule<[RequireDescriptionRuleConfig]>;
8
12
  export default rule;
@@ -1,6 +1,6 @@
1
1
  import { GraphQLESLintRule } from '../types';
2
- declare type RequireIdWhenAvailableRuleConfig = [{
2
+ declare type RequireIdWhenAvailableRuleConfig = {
3
3
  fieldName: string;
4
- }];
5
- declare const rule: GraphQLESLintRule<RequireIdWhenAvailableRuleConfig, true>;
4
+ };
5
+ declare const rule: GraphQLESLintRule<[RequireIdWhenAvailableRuleConfig], true>;
6
6
  export default rule;
@@ -1,7 +1,7 @@
1
1
  import { GraphQLESLintRule } from '../types';
2
- declare type SelectionSetDepthRuleConfig = [{
2
+ declare type SelectionSetDepthRuleConfig = {
3
3
  maxDepth: number;
4
4
  ignore?: string[];
5
- }];
6
- declare const rule: GraphQLESLintRule<SelectionSetDepthRuleConfig>;
5
+ };
6
+ declare const rule: GraphQLESLintRule<[SelectionSetDepthRuleConfig]>;
7
7
  export default rule;
@@ -3,12 +3,10 @@ export interface ExceptionRule {
3
3
  types?: string[];
4
4
  suffixes?: string[];
5
5
  }
6
- declare type StrictIdInTypesRuleConfig = [
7
- {
8
- acceptedIdNames?: string[];
9
- acceptedIdTypes?: string[];
10
- exceptions?: ExceptionRule;
11
- }
12
- ];
13
- declare const rule: GraphQLESLintRule<StrictIdInTypesRuleConfig>;
6
+ declare type StrictIdInTypesRuleConfig = {
7
+ acceptedIdNames?: string[];
8
+ acceptedIdTypes?: string[];
9
+ exceptions?: ExceptionRule;
10
+ };
11
+ declare const rule: GraphQLESLintRule<[StrictIdInTypesRuleConfig]>;
14
12
  export default rule;
package/types.d.ts CHANGED
@@ -45,9 +45,10 @@ export declare type GraphQLESLintRuleContext<Options = any[]> = Omit<Rule.RuleCo
45
45
  })): void;
46
46
  parserServices?: ParserServices;
47
47
  };
48
- export declare type RuleDocsInfo<T> = Rule.RuleMetaData & {
49
- docs: {
50
- category: 'Best Practices' | 'Stylistic Issues' | 'Validation';
48
+ export declare type CategoryType = 'Schema' | 'Operations';
49
+ export declare type RuleDocsInfo<T> = {
50
+ docs: Omit<Rule.RuleMetaData['docs'], 'category'> & {
51
+ category: CategoryType | CategoryType[];
51
52
  requiresSchema?: boolean;
52
53
  requiresSiblings?: boolean;
53
54
  examples?: {
@@ -55,12 +56,15 @@ export declare type RuleDocsInfo<T> = Rule.RuleMetaData & {
55
56
  code: string;
56
57
  usage?: T;
57
58
  }[];
58
- optionsForConfig?: T;
59
+ configOptions?: T | {
60
+ schema?: T;
61
+ operations?: T;
62
+ };
59
63
  graphQLJSRuleName?: string;
60
64
  };
61
65
  };
62
66
  export declare type GraphQLESLintRule<Options = any[], WithTypeInfo extends boolean = false> = {
63
67
  create(context: GraphQLESLintRuleContext<Options>): GraphQLESLintRuleListener<WithTypeInfo>;
64
- meta: Rule.RuleMetaData & RuleDocsInfo<Options>;
68
+ meta: Omit<Rule.RuleMetaData, 'docs'> & RuleDocsInfo<Options>;
65
69
  };
66
70
  export declare type ValueOf<T> = T[keyof T];
package/utils.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare const normalizePath: (path: string) => string;
19
19
  export declare const getOnDiskFilepath: (filepath: string) => string;
20
20
  export declare const getTypeName: (node: any) => any;
21
21
  export declare const loaderCache: Record<string, LoaderSource[]>;
22
- export declare const TYPES_KINDS: Kind[];
22
+ export declare const TYPES_KINDS: readonly [Kind.OBJECT_TYPE_DEFINITION, Kind.INTERFACE_TYPE_DEFINITION, Kind.ENUM_TYPE_DEFINITION, Kind.SCALAR_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.UNION_TYPE_DEFINITION];
23
23
  export declare enum CaseStyle {
24
24
  camelCase = "camelCase",
25
25
  pascalCase = "PascalCase",
package/configs/all.d.ts DELETED
@@ -1,99 +0,0 @@
1
- export declare const allConfig: {
2
- rules: {
3
- '@graphql-eslint/alphabetize': (string | {
4
- fields: string[];
5
- values: string[];
6
- selections: string[];
7
- variables: string[];
8
- arguments: string[];
9
- })[];
10
- '@graphql-eslint/avoid-duplicate-fields': string;
11
- '@graphql-eslint/avoid-operation-name-prefix': string;
12
- '@graphql-eslint/avoid-scalar-result-type-on-mutation': string;
13
- '@graphql-eslint/description-style': string;
14
- '@graphql-eslint/input-name': string;
15
- '@graphql-eslint/match-document-filename': string;
16
- '@graphql-eslint/no-deprecated': string;
17
- '@graphql-eslint/no-hashtag-description': string;
18
- '@graphql-eslint/no-root-type': (string | {
19
- disallow: string[];
20
- })[];
21
- '@graphql-eslint/no-unreachable-types': string;
22
- '@graphql-eslint/no-unused-fields': string;
23
- '@graphql-eslint/require-deprecation-date': string;
24
- '@graphql-eslint/require-description': string;
25
- '@graphql-eslint/require-field-of-type-query-in-mutation-result': string;
26
- '@graphql-eslint/require-id-when-available': string;
27
- '@graphql-eslint/selection-set-depth': string;
28
- '@graphql-eslint/unique-fragment-name': string;
29
- '@graphql-eslint/unique-operation-name': string;
30
- '@graphql-eslint/avoid-typename-prefix': string;
31
- '@graphql-eslint/executable-definitions': string;
32
- '@graphql-eslint/fields-on-correct-type': string;
33
- '@graphql-eslint/fragments-on-composite-type': string;
34
- '@graphql-eslint/known-argument-names': string;
35
- '@graphql-eslint/known-directives': string;
36
- '@graphql-eslint/known-fragment-names': string;
37
- '@graphql-eslint/known-type-names': string;
38
- '@graphql-eslint/lone-anonymous-operation': string;
39
- '@graphql-eslint/lone-schema-definition': string;
40
- '@graphql-eslint/naming-convention': (string | {
41
- types: string;
42
- fields: string;
43
- overrides: {
44
- EnumValueDefinition: string;
45
- OperationDefinition: {
46
- style: string;
47
- forbiddenPrefixes: string[];
48
- forbiddenSuffixes: string[];
49
- };
50
- FragmentDefinition: {
51
- style: string;
52
- forbiddenPrefixes: string[];
53
- forbiddenSuffixes: string[];
54
- };
55
- 'FieldDefinition[parent.name.value=Query]': {
56
- forbiddenPrefixes: string[];
57
- forbiddenSuffixes: string[];
58
- };
59
- 'FieldDefinition[parent.name.value=Mutation]': {
60
- forbiddenPrefixes: string[];
61
- forbiddenSuffixes: string[];
62
- };
63
- 'FieldDefinition[parent.name.value=Subscription]': {
64
- forbiddenPrefixes: string[];
65
- forbiddenSuffixes: string[];
66
- };
67
- };
68
- })[];
69
- '@graphql-eslint/no-anonymous-operations': string;
70
- '@graphql-eslint/no-case-insensitive-enum-values-duplicates': string;
71
- '@graphql-eslint/no-fragment-cycles': string;
72
- '@graphql-eslint/no-operation-name-suffix': string;
73
- '@graphql-eslint/no-undefined-variables': string;
74
- '@graphql-eslint/no-unused-fragments': string;
75
- '@graphql-eslint/no-unused-variables': string;
76
- '@graphql-eslint/one-field-subscriptions': string;
77
- '@graphql-eslint/overlapping-fields-can-be-merged': string;
78
- '@graphql-eslint/possible-fragment-spread': string;
79
- '@graphql-eslint/possible-type-extension': string;
80
- '@graphql-eslint/provided-required-arguments': string;
81
- '@graphql-eslint/require-deprecation-reason': string;
82
- '@graphql-eslint/scalar-leafs': string;
83
- '@graphql-eslint/strict-id-in-types': string;
84
- '@graphql-eslint/unique-argument-names': string;
85
- '@graphql-eslint/unique-directive-names': string;
86
- '@graphql-eslint/unique-directive-names-per-location': string;
87
- '@graphql-eslint/unique-enum-value-names': string;
88
- '@graphql-eslint/unique-field-definition-names': string;
89
- '@graphql-eslint/unique-input-field-names': string;
90
- '@graphql-eslint/unique-operation-types': string;
91
- '@graphql-eslint/unique-type-names': string;
92
- '@graphql-eslint/unique-variable-names': string;
93
- '@graphql-eslint/value-literals-of-correct-type': string;
94
- '@graphql-eslint/variables-are-input-types': string;
95
- '@graphql-eslint/variables-in-allowed-position': string;
96
- };
97
- parser: string;
98
- plugins: string[];
99
- };
@@ -1,50 +0,0 @@
1
- # `avoid-operation-name-prefix`
2
-
3
- - Category: `Stylistic Issues`
4
- - Rule name: `@graphql-eslint/avoid-operation-name-prefix`
5
- - Requires GraphQL Schema: `false` [ℹ️](../../README.md#extended-linting-rules-with-graphql-schema)
6
- - Requires GraphQL Operations: `false` [ℹ️](../../README.md#extended-linting-rules-with-siblings-operations)
7
-
8
- Enforce/avoid operation name prefix, useful if you wish to avoid prefix in your root fields, or avoid using REST terminology in your schema.
9
-
10
- ## Usage Examples
11
-
12
- ### Incorrect
13
-
14
- ```graphql
15
- # eslint @graphql-eslint/avoid-operation-name-prefix: ['error', { keywords: ['get'] }]
16
-
17
- query getUserDetails {
18
- # ...
19
- }
20
- ```
21
-
22
- ### Correct
23
-
24
- ```graphql
25
- # eslint @graphql-eslint/avoid-operation-name-prefix: ['error', { keywords: ['get'] }]
26
-
27
- query userDetails {
28
- # ...
29
- }
30
- ```
31
-
32
- ## Config Schema
33
-
34
- The schema defines the following properties:
35
-
36
- ### `caseSensitive` (boolean)
37
-
38
- Default: `false`
39
-
40
- ### `keywords` (array, required)
41
-
42
- The object is an array with all elements of the type `string`.
43
-
44
- Additional restrictions:
45
-
46
- * Minimum items: `1`
47
-
48
- ## Resources
49
-
50
- - [Rule source](../../packages/plugin/src/rules/avoid-operation-name-prefix.ts)
@@ -1,37 +0,0 @@
1
- # `avoid-typename-prefix`
2
-
3
- ✅ The `"extends": "plugin:@graphql-eslint/recommended"` property in a configuration file enables this rule.
4
-
5
- - Category: `Best Practices`
6
- - Rule name: `@graphql-eslint/avoid-typename-prefix`
7
- - Requires GraphQL Schema: `false` [ℹ️](../../README.md#extended-linting-rules-with-graphql-schema)
8
- - Requires GraphQL Operations: `false` [ℹ️](../../README.md#extended-linting-rules-with-siblings-operations)
9
-
10
- Enforces users to avoid using the type name in a field name while defining your schema.
11
-
12
- ## Usage Examples
13
-
14
- ### Incorrect
15
-
16
- ```graphql
17
- # eslint @graphql-eslint/avoid-typename-prefix: 'error'
18
-
19
- type User {
20
- userId: ID!
21
- }
22
- ```
23
-
24
- ### Correct
25
-
26
- ```graphql
27
- # eslint @graphql-eslint/avoid-typename-prefix: 'error'
28
-
29
- type User {
30
- id: ID!
31
- }
32
- ```
33
-
34
- ## Resources
35
-
36
- - [Rule source](../../packages/plugin/src/rules/avoid-typename-prefix.ts)
37
- - [Test source](../../packages/plugin/tests/avoid-typename-prefix.spec.ts)
@@ -1,38 +0,0 @@
1
- # `no-operation-name-suffix`
2
-
3
- ✅ The `"extends": "plugin:@graphql-eslint/recommended"` property in a configuration file enables this rule.
4
-
5
- 🔧 The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#--fix) can automatically fix some of the problems reported by this rule.
6
-
7
- - Category: `Stylistic Issues`
8
- - Rule name: `@graphql-eslint/no-operation-name-suffix`
9
- - Requires GraphQL Schema: `false` [ℹ️](../../README.md#extended-linting-rules-with-graphql-schema)
10
- - Requires GraphQL Operations: `false` [ℹ️](../../README.md#extended-linting-rules-with-siblings-operations)
11
-
12
- Makes sure you are not adding the operation type to the name of the operation.
13
-
14
- ## Usage Examples
15
-
16
- ### Incorrect
17
-
18
- ```graphql
19
- # eslint @graphql-eslint/no-operation-name-suffix: 'error'
20
-
21
- query userQuery {
22
- # ...
23
- }
24
- ```
25
-
26
- ### Correct
27
-
28
- ```graphql
29
- # eslint @graphql-eslint/no-operation-name-suffix: 'error'
30
-
31
- query user {
32
- # ...
33
- }
34
- ```
35
-
36
- ## Resources
37
-
38
- - [Rule source](../../packages/plugin/src/rules/no-operation-name-suffix.ts)
@@ -1,9 +0,0 @@
1
- import { GraphQLESLintRule } from '../types';
2
- export declare type AvoidOperationNamePrefixConfig = [
3
- {
4
- keywords: string[];
5
- caseSensitive?: boolean;
6
- }
7
- ];
8
- declare const rule: GraphQLESLintRule<AvoidOperationNamePrefixConfig>;
9
- export default rule;
@@ -1,3 +0,0 @@
1
- import { GraphQLESLintRule } from '../types';
2
- declare const rule: GraphQLESLintRule;
3
- export default rule;