@graphql-eslint/eslint-plugin 4.4.0-alpha-20241210124724-37546942474e54378c2b293d843e141891961747 → 4.4.0-alpha-20241210140320-e9caf71d9b9cfbe349d93078518003a6bd1f6128
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.
- package/{programmatic.js → browser.js} +73 -104
- package/cjs/graphql-config.d.cts +2 -1
- package/cjs/index.d.cts +2 -1
- package/cjs/meta.js +1 -1
- package/cjs/parser.d.cts +2 -1
- package/cjs/rules/alphabetize/index.d.cts +1 -1
- package/cjs/rules/alphabetize/index.js +1 -2
- package/cjs/rules/description-style/index.d.cts +1 -1
- package/cjs/rules/description-style/index.js +1 -3
- package/cjs/rules/graphql-js-validation.d.cts +2 -1
- package/cjs/rules/graphql-js-validation.js +30 -31
- package/cjs/rules/index.d.cts +2 -1
- package/cjs/rules/input-name/index.d.cts +1 -1
- package/cjs/rules/input-name/index.js +1 -3
- package/cjs/rules/lone-executable-definition/index.d.cts +1 -1
- package/cjs/rules/lone-executable-definition/index.js +1 -2
- package/cjs/rules/match-document-filename/index.d.cts +1 -1
- package/cjs/rules/match-document-filename/index.js +1 -2
- package/cjs/rules/naming-convention/index.d.cts +1 -1
- package/cjs/rules/naming-convention/index.js +1 -3
- package/cjs/rules/no-anonymous-operations/index.d.cts +2 -1
- package/cjs/rules/no-anonymous-operations/index.js +1 -2
- package/cjs/rules/no-deprecated/index.d.cts +2 -1
- package/cjs/rules/no-deprecated/index.js +1 -2
- package/cjs/rules/no-duplicate-fields/index.d.cts +2 -1
- package/cjs/rules/no-duplicate-fields/index.js +1 -2
- package/cjs/rules/no-hashtag-description/index.d.cts +2 -1
- package/cjs/rules/no-hashtag-description/index.js +1 -2
- package/cjs/rules/no-one-place-fragments/index.d.cts +2 -1
- package/cjs/rules/no-one-place-fragments/index.js +1 -1
- package/cjs/rules/no-root-type/index.d.cts +1 -1
- package/cjs/rules/no-root-type/index.js +1 -3
- package/cjs/rules/no-scalar-result-type-on-mutation/index.d.cts +2 -1
- package/cjs/rules/no-scalar-result-type-on-mutation/index.js +1 -2
- package/cjs/rules/no-typename-prefix/index.d.cts +2 -1
- package/cjs/rules/no-typename-prefix/index.js +1 -2
- package/cjs/rules/no-unreachable-types/index.d.cts +2 -1
- package/cjs/rules/no-unreachable-types/index.js +1 -2
- package/cjs/rules/no-unused-fields/index.d.cts +1 -1
- package/cjs/rules/no-unused-fields/index.js +1 -2
- package/cjs/rules/relay-arguments/index.d.cts +1 -1
- package/cjs/rules/relay-arguments/index.js +1 -1
- package/cjs/rules/relay-connection-types/index.d.cts +2 -1
- package/cjs/rules/relay-connection-types/index.js +1 -1
- package/cjs/rules/relay-edge-types/index.d.cts +1 -1
- package/cjs/rules/relay-edge-types/index.js +1 -1
- package/cjs/rules/relay-page-info/index.d.cts +2 -1
- package/cjs/rules/relay-page-info/index.js +1 -1
- package/cjs/rules/require-deprecation-date/index.d.cts +1 -1
- package/cjs/rules/require-deprecation-date/index.js +1 -2
- package/cjs/rules/require-deprecation-reason/index.d.cts +2 -1
- package/cjs/rules/require-deprecation-reason/index.js +1 -1
- package/cjs/rules/require-description/index.d.cts +1 -1
- package/cjs/rules/require-description/index.js +1 -2
- package/cjs/rules/require-field-of-type-query-in-mutation-result/index.d.cts +2 -1
- package/cjs/rules/require-field-of-type-query-in-mutation-result/index.js +1 -1
- package/cjs/rules/require-import-fragment/index.d.cts +2 -1
- package/cjs/rules/require-import-fragment/index.js +1 -2
- package/cjs/rules/require-nullable-fields-with-oneof/index.d.cts +2 -1
- package/cjs/rules/require-nullable-fields-with-oneof/index.js +1 -1
- package/cjs/rules/require-nullable-result-in-root/index.d.cts +2 -1
- package/cjs/rules/require-nullable-result-in-root/index.js +1 -2
- package/cjs/rules/require-selections/index.d.cts +1 -1
- package/cjs/rules/require-selections/index.js +4 -8
- package/cjs/rules/require-type-pattern-with-oneof/index.d.cts +2 -1
- package/cjs/rules/require-type-pattern-with-oneof/index.js +1 -1
- package/cjs/rules/selection-set-depth/index.d.cts +1 -1
- package/cjs/rules/selection-set-depth/index.js +1 -3
- package/cjs/rules/strict-id-in-types/index.d.cts +1 -1
- package/cjs/rules/strict-id-in-types/index.js +5 -5
- package/cjs/rules/unique-enum-value-names/index.d.cts +2 -1
- package/cjs/rules/unique-enum-value-names/index.js +1 -2
- package/cjs/rules/unique-fragment-name/index.d.cts +1 -0
- package/cjs/rules/unique-fragment-name/index.js +2 -1
- package/cjs/rules/unique-operation-name/index.d.cts +2 -1
- package/cjs/rules/unique-operation-name/index.js +1 -1
- package/cjs/schema.d.cts +2 -1
- package/cjs/types.d.cts +17 -7
- package/cjs/utils.d.cts +2 -2
- package/cjs/utils.js +1 -5
- package/esm/graphql-config.d.ts +2 -1
- package/esm/index.d.ts +1 -0
- package/esm/meta.js +1 -1
- package/esm/parser.d.ts +2 -1
- package/esm/rules/alphabetize/index.d.ts +1 -1
- package/esm/rules/alphabetize/index.js +1 -2
- package/esm/rules/description-style/index.d.ts +1 -1
- package/esm/rules/description-style/index.js +1 -3
- package/esm/rules/graphql-js-validation.d.ts +2 -1
- package/esm/rules/graphql-js-validation.js +30 -31
- package/esm/rules/index.d.ts +1 -0
- package/esm/rules/input-name/index.d.ts +1 -1
- package/esm/rules/input-name/index.js +1 -3
- package/esm/rules/lone-executable-definition/index.d.ts +1 -1
- package/esm/rules/lone-executable-definition/index.js +1 -2
- package/esm/rules/match-document-filename/index.d.ts +1 -1
- package/esm/rules/match-document-filename/index.js +1 -2
- package/esm/rules/naming-convention/index.d.ts +1 -1
- package/esm/rules/naming-convention/index.js +1 -3
- package/esm/rules/no-anonymous-operations/index.d.ts +2 -1
- package/esm/rules/no-anonymous-operations/index.js +1 -2
- package/esm/rules/no-deprecated/index.d.ts +2 -1
- package/esm/rules/no-deprecated/index.js +1 -2
- package/esm/rules/no-duplicate-fields/index.d.ts +2 -1
- package/esm/rules/no-duplicate-fields/index.js +1 -2
- package/esm/rules/no-hashtag-description/index.d.ts +2 -1
- package/esm/rules/no-hashtag-description/index.js +1 -2
- package/esm/rules/no-one-place-fragments/index.d.ts +2 -1
- package/esm/rules/no-one-place-fragments/index.js +1 -1
- package/esm/rules/no-root-type/index.d.ts +1 -1
- package/esm/rules/no-root-type/index.js +1 -3
- package/esm/rules/no-scalar-result-type-on-mutation/index.d.ts +2 -1
- package/esm/rules/no-scalar-result-type-on-mutation/index.js +1 -2
- package/esm/rules/no-typename-prefix/index.d.ts +2 -1
- package/esm/rules/no-typename-prefix/index.js +1 -2
- package/esm/rules/no-unreachable-types/index.d.ts +2 -1
- package/esm/rules/no-unreachable-types/index.js +1 -2
- package/esm/rules/no-unused-fields/index.d.ts +1 -1
- package/esm/rules/no-unused-fields/index.js +1 -2
- package/esm/rules/relay-arguments/index.d.ts +1 -1
- package/esm/rules/relay-arguments/index.js +1 -1
- package/esm/rules/relay-connection-types/index.d.ts +2 -1
- package/esm/rules/relay-connection-types/index.js +1 -1
- package/esm/rules/relay-edge-types/index.d.ts +1 -1
- package/esm/rules/relay-edge-types/index.js +1 -1
- package/esm/rules/relay-page-info/index.d.ts +2 -1
- package/esm/rules/relay-page-info/index.js +1 -1
- package/esm/rules/require-deprecation-date/index.d.ts +1 -1
- package/esm/rules/require-deprecation-date/index.js +1 -2
- package/esm/rules/require-deprecation-reason/index.d.ts +2 -1
- package/esm/rules/require-deprecation-reason/index.js +1 -1
- package/esm/rules/require-description/index.d.ts +1 -1
- package/esm/rules/require-description/index.js +1 -2
- package/esm/rules/require-field-of-type-query-in-mutation-result/index.d.ts +2 -1
- package/esm/rules/require-field-of-type-query-in-mutation-result/index.js +1 -1
- package/esm/rules/require-import-fragment/index.d.ts +2 -1
- package/esm/rules/require-import-fragment/index.js +1 -2
- package/esm/rules/require-nullable-fields-with-oneof/index.d.ts +2 -1
- package/esm/rules/require-nullable-fields-with-oneof/index.js +1 -1
- package/esm/rules/require-nullable-result-in-root/index.d.ts +2 -1
- package/esm/rules/require-nullable-result-in-root/index.js +1 -2
- package/esm/rules/require-selections/index.d.ts +1 -1
- package/esm/rules/require-selections/index.js +4 -8
- package/esm/rules/require-type-pattern-with-oneof/index.d.ts +2 -1
- package/esm/rules/require-type-pattern-with-oneof/index.js +1 -1
- package/esm/rules/selection-set-depth/index.d.ts +1 -1
- package/esm/rules/selection-set-depth/index.js +1 -3
- package/esm/rules/strict-id-in-types/index.d.ts +1 -1
- package/esm/rules/strict-id-in-types/index.js +5 -5
- package/esm/rules/unique-enum-value-names/index.d.ts +2 -1
- package/esm/rules/unique-enum-value-names/index.js +1 -2
- package/esm/rules/unique-fragment-name/index.d.ts +1 -0
- package/esm/rules/unique-fragment-name/index.js +2 -1
- package/esm/rules/unique-operation-name/index.d.ts +2 -1
- package/esm/rules/unique-operation-name/index.js +1 -1
- package/esm/schema.d.ts +2 -1
- package/esm/types.d.ts +17 -7
- package/esm/utils.d.ts +2 -2
- package/esm/utils.js +0 -4
- package/package.json +10 -4
- package/programmatic.d.ts +0 -1323
package/cjs/graphql-config.d.cts
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
import { GraphQLConfig } from 'graphql-config';
|
2
2
|
import { ParserOptions } from './types.cjs';
|
3
3
|
import 'eslint';
|
4
|
+
import 'estree';
|
4
5
|
import 'graphql';
|
6
|
+
import 'json-schema-to-ts';
|
5
7
|
import './estree-converter/types.cjs';
|
6
|
-
import 'estree';
|
7
8
|
import './siblings.cjs';
|
8
9
|
import '@graphql-tools/utils';
|
9
10
|
|
package/cjs/index.d.cts
CHANGED
@@ -15,6 +15,7 @@ export { GraphQLESTreeNode } from './estree-converter/types.cjs';
|
|
15
15
|
import 'estree';
|
16
16
|
import './siblings.cjs';
|
17
17
|
import '@graphql-tools/utils';
|
18
|
+
import 'json-schema-to-ts';
|
18
19
|
|
19
20
|
declare const processors: {
|
20
21
|
graphql: {
|
@@ -47,10 +48,10 @@ declare const _default: {
|
|
47
48
|
};
|
48
49
|
rules: {
|
49
50
|
alphabetize: GraphQLESLintRule<{
|
50
|
-
values?: boolean | undefined;
|
51
51
|
definitions?: boolean | undefined;
|
52
52
|
selections?: ("OperationDefinition" | "FragmentDefinition")[] | undefined;
|
53
53
|
arguments?: ("Field" | "Directive" | "FieldDefinition" | "DirectiveDefinition")[] | undefined;
|
54
|
+
values?: boolean | undefined;
|
54
55
|
fields?: ("ObjectTypeDefinition" | "InterfaceTypeDefinition" | "InputObjectTypeDefinition")[] | undefined;
|
55
56
|
variables?: boolean | undefined;
|
56
57
|
groups?: string[] | undefined;
|
package/cjs/meta.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});const version = "4.4.0-alpha-
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});const version = "4.4.0-alpha-20241210140320-e9caf71d9b9cfbe349d93078518003a6bd1f6128";
|
2
2
|
|
3
3
|
|
4
4
|
exports.version = version;
|
package/cjs/parser.d.cts
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
import { ParserOptions, GraphQLESLintParseResult } from './types.cjs';
|
2
2
|
import 'eslint';
|
3
|
+
import 'estree';
|
3
4
|
import 'graphql';
|
4
5
|
import 'graphql-config';
|
6
|
+
import 'json-schema-to-ts';
|
5
7
|
import './estree-converter/types.cjs';
|
6
|
-
import 'estree';
|
7
8
|
import './siblings.cjs';
|
8
9
|
import '@graphql-tools/utils';
|
9
10
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
2
2
|
import { GraphQLESLintRule } from '../../types.cjs';
|
3
3
|
import 'eslint';
|
4
|
+
import 'estree';
|
4
5
|
import 'graphql';
|
5
6
|
import 'graphql-config';
|
6
7
|
import '../../estree-converter/types.cjs';
|
7
|
-
import 'estree';
|
8
8
|
import '../../siblings.cjs';
|
9
9
|
import '@graphql-tools/utils';
|
10
10
|
|
@@ -80,7 +80,7 @@ const rule = {
|
|
80
80
|
type: "suggestion",
|
81
81
|
fixable: "code",
|
82
82
|
docs: {
|
83
|
-
category: "
|
83
|
+
category: ["Schema", "Operations"],
|
84
84
|
description: "Enforce arrange in alphabetical order for type fields, enum values, input object fields, operation selections and more.",
|
85
85
|
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
86
86
|
examples: [
|
@@ -278,7 +278,6 @@ const rule = {
|
|
278
278
|
currNode: _utilsjs.displayNodeName.call(void 0, currNode),
|
279
279
|
prevNode: prevName ? _utilsjs.displayNodeName.call(void 0, prevNode) : _lodashlowercase2.default.call(void 0, prevNode.kind)
|
280
280
|
},
|
281
|
-
// @ts-expect-error -- fixme
|
282
281
|
*fix(fixer) {
|
283
282
|
const prevRange = getRangeWithComments(prevNode);
|
284
283
|
const currRange = getRangeWithComments(currNode);
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
2
2
|
import { GraphQLESLintRule } from '../../types.cjs';
|
3
3
|
import 'eslint';
|
4
|
+
import 'estree';
|
4
5
|
import 'graphql';
|
5
6
|
import 'graphql-config';
|
6
7
|
import '../../estree-converter/types.cjs';
|
7
|
-
import 'estree';
|
8
8
|
import '../../siblings.cjs';
|
9
9
|
import '@graphql-tools/utils';
|
10
10
|
|
@@ -48,11 +48,10 @@ const rule = {
|
|
48
48
|
}
|
49
49
|
],
|
50
50
|
description: "Require all comments to follow the same style (either block or inline).",
|
51
|
-
category: "
|
51
|
+
category: "Schema",
|
52
52
|
url: "https://the-guild.dev/graphql/eslint/rules/description-style",
|
53
53
|
recommended: true
|
54
54
|
},
|
55
|
-
// @ts-expect-error -- fixme
|
56
55
|
schema
|
57
56
|
},
|
58
57
|
create(context) {
|
@@ -68,7 +67,6 @@ const rule = {
|
|
68
67
|
suggest: [
|
69
68
|
{
|
70
69
|
desc: `Change to ${isBlock ? "block" : "inline"} style description`,
|
71
|
-
// @ts-expect-error -- fixme
|
72
70
|
fix(fixer) {
|
73
71
|
const sourceCode = context.getSourceCode();
|
74
72
|
const originalText = sourceCode.getText(node);
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import { GraphQLESLintRule } from '../types.cjs';
|
2
2
|
import 'eslint';
|
3
|
+
import 'estree';
|
3
4
|
import 'graphql';
|
4
5
|
import 'graphql-config';
|
6
|
+
import 'json-schema-to-ts';
|
5
7
|
import '../estree-converter/types.cjs';
|
6
|
-
import 'estree';
|
7
8
|
import '../siblings.cjs';
|
8
9
|
import '@graphql-tools/utils';
|
9
10
|
|
@@ -78,7 +78,6 @@ function validateDocument({
|
|
78
78
|
const { name } = match.groups;
|
79
79
|
return {
|
80
80
|
desc: `Rename to \`${name}\``,
|
81
|
-
// @ts-expect-error -- fixme
|
82
81
|
fix: (fixer) => fixer.replaceText(token, name)
|
83
82
|
};
|
84
83
|
}) : []
|
@@ -180,7 +179,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
180
179
|
rule: _indexjs.ExecutableDefinitionsRule
|
181
180
|
},
|
182
181
|
{
|
183
|
-
category: "
|
182
|
+
category: "Operations",
|
184
183
|
description: "A GraphQL document is only valid for execution if all definitions are either operation or fragment definitions.",
|
185
184
|
requiresSchema: true
|
186
185
|
}
|
@@ -192,7 +191,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
192
191
|
hasDidYouMeanSuggestions: true
|
193
192
|
},
|
194
193
|
{
|
195
|
-
category: "
|
194
|
+
category: "Operations",
|
196
195
|
description: "A GraphQL document is only valid if all fields selected are defined by the parent type, or are an allowed meta field such as `__typename`.",
|
197
196
|
requiresSchema: true
|
198
197
|
}
|
@@ -203,7 +202,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
203
202
|
rule: _indexjs.FragmentsOnCompositeTypesRule
|
204
203
|
},
|
205
204
|
{
|
206
|
-
category: "
|
205
|
+
category: "Operations",
|
207
206
|
description: "Fragments use a type condition to determine if they apply, since fragments can only be spread into a composite type (object, interface, or union), the type condition must also be a composite type.",
|
208
207
|
requiresSchema: true
|
209
208
|
}
|
@@ -215,7 +214,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
215
214
|
hasDidYouMeanSuggestions: true
|
216
215
|
},
|
217
216
|
{
|
218
|
-
category: "
|
217
|
+
category: ["Schema", "Operations"],
|
219
218
|
description: "A GraphQL field is only valid if all supplied arguments are defined by that field.",
|
220
219
|
requiresSchema: true
|
221
220
|
}
|
@@ -254,7 +253,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
254
253
|
}
|
255
254
|
},
|
256
255
|
{
|
257
|
-
category: "
|
256
|
+
category: ["Schema", "Operations"],
|
258
257
|
description: "A GraphQL document is only valid if all `@directive`s are known by the schema and legally positioned.",
|
259
258
|
requiresSchema: true,
|
260
259
|
examples: [
|
@@ -282,7 +281,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
282
281
|
getDocumentNode: handleMissingFragments
|
283
282
|
},
|
284
283
|
{
|
285
|
-
category: "
|
284
|
+
category: "Operations",
|
286
285
|
description: "A GraphQL document is only valid if all `...Fragment` fragment spreads refer to fragments defined in the same document.",
|
287
286
|
requiresSchema: true,
|
288
287
|
requiresSiblings: true,
|
@@ -350,7 +349,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
350
349
|
hasDidYouMeanSuggestions: true
|
351
350
|
},
|
352
351
|
{
|
353
|
-
category: "
|
352
|
+
category: ["Schema", "Operations"],
|
354
353
|
description: "A GraphQL document is only valid if referenced types (specifically variable definitions and fragment conditions) are defined by the type schema.",
|
355
354
|
requiresSchema: true
|
356
355
|
}
|
@@ -361,7 +360,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
361
360
|
rule: _indexjs.LoneAnonymousOperationRule
|
362
361
|
},
|
363
362
|
{
|
364
|
-
category: "
|
363
|
+
category: "Operations",
|
365
364
|
description: "A GraphQL document that contains an anonymous operation (the `query` short-hand) is only valid if it contains only that one operation definition.",
|
366
365
|
requiresSchema: true
|
367
366
|
}
|
@@ -372,7 +371,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
372
371
|
rule: _indexjs.LoneSchemaDefinitionRule
|
373
372
|
},
|
374
373
|
{
|
375
|
-
category: "
|
374
|
+
category: "Schema",
|
376
375
|
description: "A GraphQL document is only valid if it contains only one schema definition."
|
377
376
|
}
|
378
377
|
),
|
@@ -382,7 +381,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
382
381
|
rule: _indexjs.NoFragmentCyclesRule
|
383
382
|
},
|
384
383
|
{
|
385
|
-
category: "
|
384
|
+
category: "Operations",
|
386
385
|
description: "A GraphQL fragment is only valid when it does not have cycles in fragments usage.",
|
387
386
|
requiresSchema: true
|
388
387
|
}
|
@@ -394,7 +393,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
394
393
|
getDocumentNode: handleMissingFragments
|
395
394
|
},
|
396
395
|
{
|
397
|
-
category: "
|
396
|
+
category: "Operations",
|
398
397
|
description: "A GraphQL operation is only valid if all variables encountered, both directly and via fragment spreads, are defined by that operation.",
|
399
398
|
requiresSchema: true,
|
400
399
|
requiresSiblings: true
|
@@ -441,7 +440,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
441
440
|
}
|
442
441
|
},
|
443
442
|
{
|
444
|
-
category: "
|
443
|
+
category: "Operations",
|
445
444
|
description: "A GraphQL document is only valid if all fragment definitions are spread within operations, or spread within other fragments spread within operations.",
|
446
445
|
requiresSchema: true,
|
447
446
|
requiresSiblings: true
|
@@ -454,7 +453,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
454
453
|
getDocumentNode: handleMissingFragments
|
455
454
|
},
|
456
455
|
{
|
457
|
-
category: "
|
456
|
+
category: "Operations",
|
458
457
|
description: "A GraphQL operation is only valid if all variables defined by an operation are used, either directly or within a spread fragment.",
|
459
458
|
requiresSchema: true,
|
460
459
|
requiresSiblings: true
|
@@ -466,7 +465,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
466
465
|
rule: _indexjs.OverlappingFieldsCanBeMergedRule
|
467
466
|
},
|
468
467
|
{
|
469
|
-
category: "
|
468
|
+
category: "Operations",
|
470
469
|
description: "A selection set is only valid if all fields (including spreading any fragments) either correspond to distinct response names or can be merged without ambiguity.",
|
471
470
|
requiresSchema: true
|
472
471
|
}
|
@@ -477,7 +476,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
477
476
|
rule: _indexjs.PossibleFragmentSpreadsRule
|
478
477
|
},
|
479
478
|
{
|
480
|
-
category: "
|
479
|
+
category: "Operations",
|
481
480
|
description: "A fragment spread is only valid if the type condition could ever possibly be true: if there is a non-empty intersection of the possible parent types, and possible types which pass the type condition.",
|
482
481
|
requiresSchema: true
|
483
482
|
}
|
@@ -489,7 +488,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
489
488
|
hasDidYouMeanSuggestions: true
|
490
489
|
},
|
491
490
|
{
|
492
|
-
category: "
|
491
|
+
category: "Schema",
|
493
492
|
description: "A type extension is only valid if the type is defined and has the same kind.",
|
494
493
|
recommended: true,
|
495
494
|
requiresSchema: true
|
@@ -501,7 +500,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
501
500
|
rule: _indexjs.ProvidedRequiredArgumentsRule
|
502
501
|
},
|
503
502
|
{
|
504
|
-
category: "
|
503
|
+
category: ["Schema", "Operations"],
|
505
504
|
description: "A field or directive is only valid if all required (non-null without a default value) field arguments have been provided.",
|
506
505
|
requiresSchema: true
|
507
506
|
}
|
@@ -513,7 +512,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
513
512
|
hasDidYouMeanSuggestions: true
|
514
513
|
},
|
515
514
|
{
|
516
|
-
category: "
|
515
|
+
category: "Operations",
|
517
516
|
description: "A GraphQL document is valid only if all leaf fields (fields without sub selections) are of scalar or enum types.",
|
518
517
|
requiresSchema: true
|
519
518
|
}
|
@@ -524,7 +523,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
524
523
|
rule: _indexjs.SingleFieldSubscriptionsRule
|
525
524
|
},
|
526
525
|
{
|
527
|
-
category: "
|
526
|
+
category: "Operations",
|
528
527
|
description: "A GraphQL subscription is valid only if it contains a single root field.",
|
529
528
|
requiresSchema: true
|
530
529
|
}
|
@@ -535,7 +534,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
535
534
|
rule: _indexjs.UniqueArgumentNamesRule
|
536
535
|
},
|
537
536
|
{
|
538
|
-
category: "
|
537
|
+
category: "Operations",
|
539
538
|
description: "A GraphQL field or directive is only valid if all supplied arguments are uniquely named.",
|
540
539
|
requiresSchema: true
|
541
540
|
}
|
@@ -546,7 +545,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
546
545
|
rule: _indexjs.UniqueDirectiveNamesRule
|
547
546
|
},
|
548
547
|
{
|
549
|
-
category: "
|
548
|
+
category: "Schema",
|
550
549
|
description: "A GraphQL document is only valid if all defined directives have unique names."
|
551
550
|
}
|
552
551
|
),
|
@@ -556,7 +555,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
556
555
|
rule: _indexjs.UniqueDirectivesPerLocationRule
|
557
556
|
},
|
558
557
|
{
|
559
|
-
category: "
|
558
|
+
category: ["Schema", "Operations"],
|
560
559
|
description: "A GraphQL document is only valid if all non-repeatable directives at a given location are uniquely named.",
|
561
560
|
requiresSchema: true
|
562
561
|
}
|
@@ -567,7 +566,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
567
566
|
rule: _indexjs.UniqueFieldDefinitionNamesRule
|
568
567
|
},
|
569
568
|
{
|
570
|
-
category: "
|
569
|
+
category: "Schema",
|
571
570
|
description: "A GraphQL complex type is only valid if all its fields are uniquely named."
|
572
571
|
}
|
573
572
|
),
|
@@ -577,7 +576,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
577
576
|
rule: _indexjs.UniqueInputFieldNamesRule
|
578
577
|
},
|
579
578
|
{
|
580
|
-
category: "
|
579
|
+
category: "Operations",
|
581
580
|
description: "A GraphQL input object value is only valid if all supplied fields are uniquely named."
|
582
581
|
}
|
583
582
|
),
|
@@ -587,7 +586,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
587
586
|
rule: _indexjs.UniqueOperationTypesRule
|
588
587
|
},
|
589
588
|
{
|
590
|
-
category: "
|
589
|
+
category: "Schema",
|
591
590
|
description: "A GraphQL document is only valid if it has only one type per operation."
|
592
591
|
}
|
593
592
|
),
|
@@ -597,7 +596,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
597
596
|
rule: _indexjs.UniqueTypeNamesRule
|
598
597
|
},
|
599
598
|
{
|
600
|
-
category: "
|
599
|
+
category: "Schema",
|
601
600
|
description: "A GraphQL document is only valid if all defined types have unique names."
|
602
601
|
}
|
603
602
|
),
|
@@ -607,7 +606,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
607
606
|
rule: _indexjs.UniqueVariableNamesRule
|
608
607
|
},
|
609
608
|
{
|
610
|
-
category: "
|
609
|
+
category: "Operations",
|
611
610
|
description: "A GraphQL operation is only valid if all its variables are uniquely named.",
|
612
611
|
requiresSchema: true
|
613
612
|
}
|
@@ -619,7 +618,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
619
618
|
hasDidYouMeanSuggestions: true
|
620
619
|
},
|
621
620
|
{
|
622
|
-
category: "
|
621
|
+
category: "Operations",
|
623
622
|
description: "A GraphQL document is only valid if all value literals are of the type expected at their position.",
|
624
623
|
requiresSchema: true
|
625
624
|
}
|
@@ -630,7 +629,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
630
629
|
rule: _indexjs.VariablesAreInputTypesRule
|
631
630
|
},
|
632
631
|
{
|
633
|
-
category: "
|
632
|
+
category: "Operations",
|
634
633
|
description: "A GraphQL operation is only valid if all the variables it defines are of input types (scalar, enum, or input object).",
|
635
634
|
requiresSchema: true
|
636
635
|
}
|
@@ -641,7 +640,7 @@ const GRAPHQL_JS_VALIDATIONS = Object.assign(
|
|
641
640
|
rule: _indexjs.VariablesInAllowedPositionRule
|
642
641
|
},
|
643
642
|
{
|
644
|
-
category: "
|
643
|
+
category: "Operations",
|
645
644
|
description: "Variables passed to field arguments conform to type.",
|
646
645
|
requiresSchema: true
|
647
646
|
}
|
package/cjs/rules/index.d.cts
CHANGED
@@ -7,13 +7,14 @@ import '../estree-converter/types.cjs';
|
|
7
7
|
import '../siblings.cjs';
|
8
8
|
import '@graphql-tools/utils';
|
9
9
|
import 'graphql-config';
|
10
|
+
import 'json-schema-to-ts';
|
10
11
|
|
11
12
|
declare const rules: {
|
12
13
|
alphabetize: GraphQLESLintRule<{
|
13
|
-
values?: boolean | undefined;
|
14
14
|
definitions?: boolean | undefined;
|
15
15
|
selections?: ("OperationDefinition" | "FragmentDefinition")[] | undefined;
|
16
16
|
arguments?: ("Field" | "Directive" | "FieldDefinition" | "DirectiveDefinition")[] | undefined;
|
17
|
+
values?: boolean | undefined;
|
17
18
|
fields?: ("ObjectTypeDefinition" | "InterfaceTypeDefinition" | "InputObjectTypeDefinition")[] | undefined;
|
18
19
|
variables?: boolean | undefined;
|
19
20
|
groups?: string[] | undefined;
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
2
2
|
import { GraphQLESLintRule } from '../../types.cjs';
|
3
3
|
import 'eslint';
|
4
|
+
import 'estree';
|
4
5
|
import 'graphql';
|
5
6
|
import 'graphql-config';
|
6
7
|
import '../../estree-converter/types.cjs';
|
7
|
-
import 'estree';
|
8
8
|
import '../../siblings.cjs';
|
9
9
|
import '@graphql-tools/utils';
|
10
10
|
|
@@ -43,7 +43,7 @@ const rule = {
|
|
43
43
|
hasSuggestions: true,
|
44
44
|
docs: {
|
45
45
|
description: 'Require mutation argument to be always called "input" and input type to be called Mutation name + "Input".\nUsing the same name for all input parameters will make your schemas easier to consume and more predictable. Using the same name as mutation for InputType will make it easier to find mutations that InputType belongs to.',
|
46
|
-
category: "
|
46
|
+
category: "Schema",
|
47
47
|
url: "https://the-guild.dev/graphql/eslint/rules/input-name",
|
48
48
|
examples: [
|
49
49
|
{
|
@@ -105,7 +105,6 @@ const rule = {
|
|
105
105
|
suggest: [
|
106
106
|
{
|
107
107
|
desc: "Rename to `input`",
|
108
|
-
// @ts-expect-error -- fixme
|
109
108
|
fix: (fixer) => fixer.replaceText(node, "input")
|
110
109
|
}
|
111
110
|
]
|
@@ -133,7 +132,6 @@ const rule = {
|
|
133
132
|
suggest: [
|
134
133
|
{
|
135
134
|
desc: `Rename to \`${mutationName}\``,
|
136
|
-
// @ts-expect-error -- fixme
|
137
135
|
fix: (fixer) => fixer.replaceText(node, mutationName)
|
138
136
|
}
|
139
137
|
]
|
@@ -2,9 +2,9 @@ import { OperationTypeNode } from 'graphql';
|
|
2
2
|
import { FromSchema } from 'json-schema-to-ts';
|
3
3
|
import { GraphQLESLintRule } from '../../types.cjs';
|
4
4
|
import 'eslint';
|
5
|
+
import 'estree';
|
5
6
|
import 'graphql-config';
|
6
7
|
import '../../estree-converter/types.cjs';
|
7
|
-
import 'estree';
|
8
8
|
import '../../siblings.cjs';
|
9
9
|
import '@graphql-tools/utils';
|
10
10
|
|
@@ -26,7 +26,7 @@ const rule = {
|
|
26
26
|
meta: {
|
27
27
|
type: "suggestion",
|
28
28
|
docs: {
|
29
|
-
category: "
|
29
|
+
category: "Operations",
|
30
30
|
description: "Require queries, mutations, subscriptions or fragments to be located in separate files.",
|
31
31
|
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
32
32
|
examples: [
|
@@ -60,7 +60,6 @@ const rule = {
|
|
60
60
|
messages: {
|
61
61
|
[RULE_ID]: "{{name}} should be in a separate file."
|
62
62
|
},
|
63
|
-
// @ts-expect-error -- fixme
|
64
63
|
schema
|
65
64
|
},
|
66
65
|
create(context) {
|
@@ -2,10 +2,10 @@ import { FromSchema } from 'json-schema-to-ts';
|
|
2
2
|
import { GraphQLESLintRule } from '../../types.cjs';
|
3
3
|
import { CaseStyle as CaseStyle$1 } from '../../utils.cjs';
|
4
4
|
import 'eslint';
|
5
|
+
import 'estree';
|
5
6
|
import 'graphql';
|
6
7
|
import 'graphql-config';
|
7
8
|
import '../../estree-converter/types.cjs';
|
8
|
-
import 'estree';
|
9
9
|
import '../../siblings.cjs';
|
10
10
|
import '@graphql-tools/utils';
|
11
11
|
|
@@ -56,7 +56,7 @@ const rule = {
|
|
56
56
|
meta: {
|
57
57
|
type: "suggestion",
|
58
58
|
docs: {
|
59
|
-
category: "
|
59
|
+
category: "Operations",
|
60
60
|
description: "This rule allows you to enforce that the file name should match the operation name.",
|
61
61
|
url: "https://the-guild.dev/graphql/eslint/rules/match-document-filename",
|
62
62
|
examples: [
|
@@ -187,7 +187,6 @@ const rule = {
|
|
187
187
|
[MATCH_EXTENSION]: `File extension "{{ fileExtension }}" don't match extension "{{ expectedFileExtension }}"`,
|
188
188
|
[MATCH_STYLE]: 'Unexpected filename "{{ filename }}". Rename it to "{{ expectedFilename }}"'
|
189
189
|
},
|
190
|
-
// @ts-expect-error -- fixme
|
191
190
|
schema
|
192
191
|
},
|
193
192
|
create(context) {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
2
2
|
import { GraphQLESLintRule } from '../../types.cjs';
|
3
3
|
import 'eslint';
|
4
|
+
import 'estree';
|
4
5
|
import 'graphql';
|
5
6
|
import 'graphql-config';
|
6
7
|
import '../../estree-converter/types.cjs';
|
7
|
-
import 'estree';
|
8
8
|
import '../../siblings.cjs';
|
9
9
|
import '@graphql-tools/utils';
|
10
10
|
|
@@ -135,7 +135,7 @@ const rule = {
|
|
135
135
|
type: "suggestion",
|
136
136
|
docs: {
|
137
137
|
description: "Require names to follow specified conventions.",
|
138
|
-
category: "
|
138
|
+
category: ["Schema", "Operations"],
|
139
139
|
recommended: true,
|
140
140
|
url: "https://the-guild.dev/graphql/eslint/rules/naming-convention",
|
141
141
|
examples: [
|
@@ -361,7 +361,6 @@ const rule = {
|
|
361
361
|
}
|
362
362
|
},
|
363
363
|
hasSuggestions: true,
|
364
|
-
// @ts-expect-error -- fixme
|
365
364
|
schema
|
366
365
|
},
|
367
366
|
create(context) {
|
@@ -378,7 +377,6 @@ const rule = {
|
|
378
377
|
message,
|
379
378
|
suggest: suggestedNames.map((suggestedName) => ({
|
380
379
|
desc: `Rename to \`${suggestedName}\``,
|
381
|
-
// @ts-expect-error -- fixme
|
382
380
|
fix: (fixer) => fixer.replaceText(node, suggestedName)
|
383
381
|
}))
|
384
382
|
});
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import { GraphQLESLintRule } from '../../types.cjs';
|
2
2
|
import 'eslint';
|
3
|
+
import 'estree';
|
3
4
|
import 'graphql';
|
4
5
|
import 'graphql-config';
|
6
|
+
import 'json-schema-to-ts';
|
5
7
|
import '../../estree-converter/types.cjs';
|
6
|
-
import 'estree';
|
7
8
|
import '../../siblings.cjs';
|
8
9
|
import '@graphql-tools/utils';
|
9
10
|
|
@@ -6,7 +6,7 @@ const rule = {
|
|
6
6
|
type: "suggestion",
|
7
7
|
hasSuggestions: true,
|
8
8
|
docs: {
|
9
|
-
category: "
|
9
|
+
category: "Operations",
|
10
10
|
description: "Require name for your GraphQL operations. This is useful since most GraphQL client libraries are using the operation name for caching purposes.",
|
11
11
|
recommended: true,
|
12
12
|
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
@@ -54,7 +54,6 @@ const rule = {
|
|
54
54
|
suggest: [
|
55
55
|
{
|
56
56
|
desc: `Rename to \`${suggestedName}\``,
|
57
|
-
// @ts-expect-error -- fixme
|
58
57
|
fix(fixer) {
|
59
58
|
const sourceCode = context.getSourceCode();
|
60
59
|
const hasQueryKeyword = sourceCode.getText({ range: [node.range[0], node.range[0] + 1] }) !== "{";
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import { GraphQLESLintRule } from '../../types.cjs';
|
2
2
|
import 'eslint';
|
3
|
+
import 'estree';
|
3
4
|
import 'graphql';
|
4
5
|
import 'graphql-config';
|
6
|
+
import 'json-schema-to-ts';
|
5
7
|
import '../../estree-converter/types.cjs';
|
6
|
-
import 'estree';
|
7
8
|
import '../../siblings.cjs';
|
8
9
|
import '@graphql-tools/utils';
|
9
10
|
|
@@ -5,7 +5,7 @@ const rule = {
|
|
5
5
|
type: "suggestion",
|
6
6
|
hasSuggestions: true,
|
7
7
|
docs: {
|
8
|
-
category: "
|
8
|
+
category: "Operations",
|
9
9
|
description: "Enforce that deprecated fields or enum values are not in use by operations.",
|
10
10
|
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
11
11
|
requiresSchema: true,
|
@@ -101,7 +101,6 @@ const rule = {
|
|
101
101
|
suggest: [
|
102
102
|
{
|
103
103
|
desc: `Remove ${nodeType}`,
|
104
|
-
// @ts-expect-error -- fixme
|
105
104
|
fix: (fixer) => fixer.remove(node)
|
106
105
|
}
|
107
106
|
]
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import { GraphQLESLintRule } from '../../types.cjs';
|
2
2
|
import 'eslint';
|
3
|
+
import 'estree';
|
3
4
|
import 'graphql';
|
4
5
|
import 'graphql-config';
|
6
|
+
import 'json-schema-to-ts';
|
5
7
|
import '../../estree-converter/types.cjs';
|
6
|
-
import 'estree';
|
7
8
|
import '../../siblings.cjs';
|
8
9
|
import '@graphql-tools/utils';
|
9
10
|
|
@@ -6,7 +6,7 @@ const rule = {
|
|
6
6
|
hasSuggestions: true,
|
7
7
|
docs: {
|
8
8
|
description: "Checks for duplicate fields in selection set, variables in operation definition, or in arguments set of a field.",
|
9
|
-
category: "
|
9
|
+
category: "Operations",
|
10
10
|
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
11
11
|
recommended: true,
|
12
12
|
examples: [
|
@@ -81,7 +81,6 @@ const rule = {
|
|
81
81
|
suggest: [
|
82
82
|
{
|
83
83
|
desc: `Remove \`${fieldName}\` ${parent.type.toLowerCase()}`,
|
84
|
-
// @ts-expect-error -- fixme
|
85
84
|
fix(fixer) {
|
86
85
|
return fixer.remove(
|
87
86
|
parent.type === _graphql.Kind.VARIABLE ? parent.parent : parent
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import { GraphQLESLintRule } from '../../types.cjs';
|
2
2
|
import 'eslint';
|
3
|
+
import 'estree';
|
3
4
|
import 'graphql';
|
4
5
|
import 'graphql-config';
|
6
|
+
import 'json-schema-to-ts';
|
5
7
|
import '../../estree-converter/types.cjs';
|
6
|
-
import 'estree';
|
7
8
|
import '../../siblings.cjs';
|
8
9
|
import '@graphql-tools/utils';
|
9
10
|
|