@graphql-eslint/eslint-plugin 4.0.0-alpha.1 → 4.0.0-alpha.10
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/README.md +2 -0
- package/{esm/cache.d.mts → cjs/cache.d.cts} +1 -1
- package/cjs/cache.js +8 -36
- package/cjs/chunk-UIAXBAMD.js +8 -0
- package/cjs/configs/index.d.cts +24 -0
- package/cjs/configs/index.js +35 -38
- package/cjs/configs/operations-all.js +33 -26
- package/cjs/configs/operations-recommended.js +59 -52
- package/cjs/configs/schema-all.js +29 -22
- package/cjs/configs/schema-recommended.js +73 -66
- package/cjs/configs/schema-relay.js +17 -10
- package/cjs/documents.js +18 -38
- package/{esm/estree-converter/converter.d.mts → cjs/estree-converter/converter.d.cts} +1 -1
- package/cjs/estree-converter/converter.js +16 -30
- package/cjs/estree-converter/index.d.cts +8 -0
- package/cjs/estree-converter/index.js +3 -23
- package/cjs/estree-converter/types.js +1 -14
- package/{esm/estree-converter/utils.d.mts → cjs/estree-converter/utils.d.cts} +3 -3
- package/cjs/estree-converter/utils.js +22 -40
- package/{esm/graphql-config.d.mts → cjs/graphql-config.d.cts} +3 -3
- package/cjs/graphql-config.js +16 -42
- package/cjs/index.d.cts +184 -0
- package/cjs/index.js +24 -41
- package/cjs/meta.d.cts +3 -0
- package/cjs/meta.js +5 -0
- package/cjs/package.json +1 -0
- package/{esm/parser.d.mts → cjs/parser.d.cts} +11 -4
- package/cjs/parser.js +35 -46
- package/{esm/processor.d.mts → cjs/processor.d.cts} +4 -0
- package/cjs/processor.js +25 -34
- package/{esm/rules/alphabetize.d.mts → cjs/rules/alphabetize/index.d.cts} +4 -4
- package/cjs/rules/{alphabetize.js → alphabetize/index.js} +69 -77
- package/{esm/rules/description-style.d.mts → cjs/rules/description-style/index.d.cts} +3 -3
- package/cjs/rules/{description-style.js → description-style/index.js} +7 -27
- package/{esm/rules/graphql-js-validation.d.mts → cjs/rules/graphql-js-validation.d.cts} +3 -3
- package/cjs/rules/graphql-js-validation.js +93 -70
- package/{esm/rules/index.d.mts → cjs/rules/index.d.cts} +8 -8
- package/cjs/rules/index.js +74 -60
- package/cjs/rules/{input-name.d.ts → input-name/index.d.cts} +6 -4
- package/cjs/rules/{input-name.js → input-name/index.js} +10 -28
- package/cjs/rules/{lone-executable-definition.d.ts → lone-executable-definition/index.d.cts} +3 -3
- package/cjs/rules/{lone-executable-definition.js → lone-executable-definition/index.js} +13 -32
- package/cjs/rules/{match-document-filename.d.ts → match-document-filename/index.d.cts} +4 -4
- package/cjs/rules/{match-document-filename.js → match-document-filename/index.js} +21 -35
- package/{esm/rules/naming-convention.d.mts → cjs/rules/naming-convention/index.d.cts} +6 -4
- package/cjs/rules/{naming-convention.js → naming-convention/index.js} +41 -54
- package/cjs/rules/no-anonymous-operations/index.d.cts +13 -0
- package/cjs/rules/{no-anonymous-operations.js → no-anonymous-operations/index.js} +9 -28
- package/{esm/rules/no-deprecated.d.mts → cjs/rules/no-deprecated/index.d.cts} +3 -3
- package/cjs/rules/{no-deprecated.js → no-deprecated/index.js} +11 -30
- package/cjs/rules/no-duplicate-fields/index.d.cts +13 -0
- package/cjs/rules/{no-duplicate-fields.js → no-duplicate-fields/index.js} +8 -28
- package/cjs/rules/{no-hashtag-description.d.ts → no-hashtag-description/index.d.cts} +3 -3
- package/cjs/rules/{no-hashtag-description.js → no-hashtag-description/index.js} +11 -31
- package/cjs/rules/no-one-place-fragments/index.d.cts +13 -0
- package/cjs/rules/{no-one-place-fragments.js → no-one-place-fragments/index.js} +11 -29
- package/cjs/rules/{no-root-type.d.ts → no-root-type/index.d.cts} +3 -3
- package/cjs/rules/{no-root-type.js → no-root-type/index.js} +9 -29
- package/cjs/rules/no-scalar-result-type-on-mutation/index.d.cts +13 -0
- package/cjs/rules/no-scalar-result-type-on-mutation/index.js +69 -0
- package/cjs/rules/no-typename-prefix/index.d.cts +13 -0
- package/cjs/rules/{no-typename-prefix.js → no-typename-prefix/index.js} +5 -25
- package/cjs/rules/no-unreachable-types/index.d.cts +13 -0
- package/cjs/rules/no-unreachable-types/index.js +155 -0
- package/cjs/rules/no-unused-fields/index.d.cts +13 -0
- package/cjs/rules/{no-unused-fields.js → no-unused-fields/index.js} +16 -34
- package/{esm/rules/relay-arguments.d.mts → cjs/rules/relay-arguments/index.d.cts} +3 -3
- package/cjs/rules/{relay-arguments.js → relay-arguments/index.js} +11 -30
- package/{esm/rules/relay-connection-types.d.mts → cjs/rules/relay-connection-types/index.d.cts} +3 -3
- package/cjs/rules/{relay-connection-types.js → relay-connection-types/index.js} +19 -40
- package/cjs/rules/{relay-edge-types.d.ts → relay-edge-types/index.d.cts} +6 -4
- package/cjs/rules/{relay-edge-types.js → relay-edge-types/index.js} +31 -44
- package/cjs/rules/relay-page-info/index.d.cts +13 -0
- package/cjs/rules/{relay-page-info.js → relay-page-info/index.js} +13 -31
- package/{esm/rules/require-deprecation-date.d.mts → cjs/rules/require-deprecation-date/index.d.cts} +3 -3
- package/cjs/rules/{require-deprecation-date.js → require-deprecation-date/index.js} +13 -32
- package/cjs/rules/require-deprecation-reason/index.d.cts +13 -0
- package/cjs/rules/require-deprecation-reason/index.js +66 -0
- package/{esm/rules/require-description.d.mts → cjs/rules/require-description/index.d.cts} +3 -3
- package/cjs/rules/{require-description.js → require-description/index.js} +30 -44
- package/cjs/rules/require-field-of-type-query-in-mutation-result/index.d.cts +13 -0
- package/cjs/rules/{require-field-of-type-query-in-mutation-result.js → require-field-of-type-query-in-mutation-result/index.js} +10 -29
- package/cjs/rules/require-import-fragment/index.d.cts +13 -0
- package/cjs/rules/{require-import-fragment.js → require-import-fragment/index.js} +16 -38
- package/cjs/rules/require-nullable-fields-with-oneof/index.d.cts +13 -0
- package/cjs/rules/require-nullable-fields-with-oneof/index.js +62 -0
- package/cjs/rules/require-nullable-result-in-root/index.d.cts +13 -0
- package/cjs/rules/{require-nullable-result-in-root.js → require-nullable-result-in-root/index.js} +12 -31
- package/{esm/rules/require-selections.d.mts → cjs/rules/require-selections/index.d.cts} +3 -3
- package/cjs/rules/{require-selections.js → require-selections/index.js} +47 -45
- package/cjs/rules/require-type-pattern-with-oneof/index.d.cts +13 -0
- package/cjs/rules/require-type-pattern-with-oneof/index.js +63 -0
- package/{esm/rules/selection-set-depth.d.mts → cjs/rules/selection-set-depth/index.d.cts} +3 -3
- package/cjs/rules/{selection-set-depth.js → selection-set-depth/index.js} +16 -42
- package/cjs/rules/{strict-id-in-types.d.ts → strict-id-in-types/index.d.cts} +6 -4
- package/cjs/rules/{strict-id-in-types.js → strict-id-in-types/index.js} +26 -39
- package/cjs/rules/unique-enum-value-names/index.d.cts +13 -0
- package/cjs/rules/{unique-enum-value-names.js → unique-enum-value-names/index.js} +10 -29
- package/{esm/rules/unique-fragment-name.d.mts → cjs/rules/unique-fragment-name/index.d.cts} +3 -3
- package/cjs/rules/unique-fragment-name/index.js +87 -0
- package/cjs/rules/unique-operation-name/index.d.cts +13 -0
- package/cjs/rules/{unique-operation-name.js → unique-operation-name/index.js} +7 -27
- package/{esm/schema.d.mts → cjs/schema.d.cts} +3 -3
- package/cjs/schema.js +11 -36
- package/cjs/siblings.js +17 -33
- package/{esm/types.d.mts → cjs/types.d.cts} +2 -2
- package/cjs/types.js +1 -14
- package/{esm/utils.d.mts → cjs/utils.d.cts} +5 -5
- package/cjs/utils.js +94 -115
- package/{cjs → esm}/cache.d.ts +1 -1
- package/esm/configs/index.d.ts +24 -0
- package/esm/configs/index.js +22 -1
- package/esm/configs/operations-all.js +1 -1
- package/esm/documents.js +8 -3
- package/{cjs → esm}/estree-converter/index.d.ts +2 -2
- package/{cjs → esm}/estree-converter/utils.d.ts +3 -3
- package/esm/graphql-config.js +1 -1
- package/esm/index.d.ts +184 -0
- package/esm/index.js +10 -4
- package/esm/meta.d.ts +3 -0
- package/esm/meta.js +5 -0
- package/{cjs → esm}/parser.d.ts +8 -1
- package/esm/parser.js +10 -1
- package/{cjs → esm}/processor.d.ts +4 -0
- package/esm/processor.js +5 -0
- package/{cjs/rules/alphabetize.d.ts → esm/rules/alphabetize/index.d.ts} +5 -5
- package/esm/rules/{alphabetize.js → alphabetize/index.js} +26 -10
- package/{cjs/rules/description-style.d.ts → esm/rules/description-style/index.d.ts} +3 -3
- package/esm/rules/{description-style.js → description-style/index.js} +2 -2
- package/{cjs → esm}/rules/index.d.ts +10 -10
- package/esm/rules/index.js +34 -34
- package/esm/rules/{input-name.d.mts → input-name/index.d.ts} +6 -4
- package/esm/rules/{input-name.js → input-name/index.js} +1 -1
- package/esm/rules/{lone-executable-definition.d.mts → lone-executable-definition/index.d.ts} +3 -3
- package/esm/rules/{lone-executable-definition.js → lone-executable-definition/index.js} +2 -2
- package/esm/rules/{match-document-filename.d.mts → match-document-filename/index.d.ts} +4 -4
- package/esm/rules/{match-document-filename.js → match-document-filename/index.js} +4 -4
- package/{cjs/rules/naming-convention.d.ts → esm/rules/naming-convention/index.d.ts} +6 -4
- package/esm/rules/{naming-convention.js → naming-convention/index.js} +2 -2
- package/{cjs/rules/no-one-place-fragments.d.ts → esm/rules/no-anonymous-operations/index.d.ts} +3 -3
- package/esm/rules/{no-anonymous-operations.js → no-anonymous-operations/index.js} +2 -2
- package/{cjs/rules/no-deprecated.d.ts → esm/rules/no-deprecated/index.d.ts} +3 -3
- package/esm/rules/{no-deprecated.js → no-deprecated/index.js} +2 -2
- package/{cjs/rules/no-scalar-result-type-on-mutation.d.ts → esm/rules/no-duplicate-fields/index.d.ts} +3 -3
- package/esm/rules/{no-duplicate-fields.js → no-duplicate-fields/index.js} +1 -1
- package/esm/rules/{no-hashtag-description.d.mts → no-hashtag-description/index.d.ts} +3 -3
- package/esm/rules/{no-hashtag-description.js → no-hashtag-description/index.js} +2 -2
- package/{cjs/rules/no-anonymous-operations.d.ts → esm/rules/no-one-place-fragments/index.d.ts} +3 -3
- package/esm/rules/{no-one-place-fragments.js → no-one-place-fragments/index.js} +2 -2
- package/esm/rules/{no-root-type.d.mts → no-root-type/index.d.ts} +3 -3
- package/esm/rules/{no-root-type.js → no-root-type/index.js} +2 -2
- package/{cjs/rules/no-duplicate-fields.d.ts → esm/rules/no-scalar-result-type-on-mutation/index.d.ts} +3 -3
- package/esm/rules/{no-scalar-result-type-on-mutation.js → no-scalar-result-type-on-mutation/index.js} +2 -2
- package/esm/rules/no-typename-prefix/index.d.ts +13 -0
- package/esm/rules/{no-typename-prefix.js → no-typename-prefix/index.js} +1 -1
- package/esm/rules/no-unreachable-types/index.d.ts +13 -0
- package/esm/rules/{no-unreachable-types.js → no-unreachable-types/index.js} +8 -8
- package/esm/rules/no-unused-fields/index.d.ts +13 -0
- package/esm/rules/{no-unused-fields.js → no-unused-fields/index.js} +8 -7
- package/{cjs/rules/relay-arguments.d.ts → esm/rules/relay-arguments/index.d.ts} +3 -3
- package/esm/rules/{relay-arguments.js → relay-arguments/index.js} +2 -2
- package/{cjs/rules/relay-connection-types.d.ts → esm/rules/relay-connection-types/index.d.ts} +3 -3
- package/esm/rules/{relay-connection-types.js → relay-connection-types/index.js} +1 -1
- package/esm/rules/{relay-edge-types.d.mts → relay-edge-types/index.d.ts} +6 -4
- package/esm/rules/{relay-edge-types.js → relay-edge-types/index.js} +3 -3
- package/esm/rules/relay-page-info/index.d.ts +13 -0
- package/esm/rules/{relay-page-info.js → relay-page-info/index.js} +4 -4
- package/{cjs/rules/require-deprecation-date.d.ts → esm/rules/require-deprecation-date/index.d.ts} +3 -3
- package/esm/rules/{require-deprecation-date.js → require-deprecation-date/index.js} +3 -3
- package/esm/rules/require-deprecation-reason/index.d.ts +13 -0
- package/esm/rules/{require-deprecation-reason.js → require-deprecation-reason/index.js} +3 -3
- package/{cjs/rules/require-description.d.ts → esm/rules/require-description/index.d.ts} +3 -3
- package/esm/rules/{require-description.js → require-description/index.js} +2 -2
- package/esm/rules/require-field-of-type-query-in-mutation-result/index.d.ts +13 -0
- package/esm/rules/{require-field-of-type-query-in-mutation-result.js → require-field-of-type-query-in-mutation-result/index.js} +2 -2
- package/esm/rules/require-import-fragment/index.d.ts +13 -0
- package/esm/rules/{require-import-fragment.js → require-import-fragment/index.js} +9 -4
- package/esm/rules/require-nullable-fields-with-oneof/index.d.ts +13 -0
- package/esm/rules/{require-nullable-fields-with-oneof.js → require-nullable-fields-with-oneof/index.js} +2 -2
- package/esm/rules/require-nullable-result-in-root/index.d.ts +13 -0
- package/esm/rules/{require-nullable-result-in-root.js → require-nullable-result-in-root/index.js} +2 -2
- package/{cjs/rules/require-selections.d.ts → esm/rules/require-selections/index.d.ts} +3 -3
- package/esm/rules/{require-selections.js → require-selections/index.js} +13 -7
- package/esm/rules/require-type-pattern-with-oneof/index.d.ts +13 -0
- package/esm/rules/{require-type-pattern-with-oneof.js → require-type-pattern-with-oneof/index.js} +2 -2
- package/{cjs/rules/selection-set-depth.d.ts → esm/rules/selection-set-depth/index.d.ts} +3 -3
- package/esm/rules/{selection-set-depth.js → selection-set-depth/index.js} +3 -3
- package/esm/rules/{strict-id-in-types.d.mts → strict-id-in-types/index.d.ts} +6 -4
- package/esm/rules/{strict-id-in-types.js → strict-id-in-types/index.js} +2 -2
- package/esm/rules/unique-enum-value-names/index.d.ts +13 -0
- package/esm/rules/{unique-enum-value-names.js → unique-enum-value-names/index.js} +2 -2
- package/{cjs/rules/unique-fragment-name.d.ts → esm/rules/unique-fragment-name/index.d.ts} +3 -3
- package/esm/rules/{unique-fragment-name.js → unique-fragment-name/index.js} +3 -3
- package/esm/rules/unique-operation-name/index.d.ts +13 -0
- package/esm/rules/{unique-operation-name.js → unique-operation-name/index.js} +2 -2
- package/{cjs → esm}/utils.d.ts +2 -2
- package/esm/utils.js +39 -16
- package/{index.browser.mjs → index.browser.js} +171 -110
- package/package.json +7 -11
- package/cjs/configs/index.d.ts +0 -174
- package/cjs/flat-configs.d.ts +0 -307
- package/cjs/flat-configs.js +0 -55
- package/cjs/index.d.ts +0 -26
- package/cjs/rules/no-scalar-result-type-on-mutation.js +0 -88
- package/cjs/rules/no-typename-prefix.d.ts +0 -13
- package/cjs/rules/no-unreachable-types.d.ts +0 -13
- package/cjs/rules/no-unreachable-types.js +0 -176
- package/cjs/rules/no-unused-fields.d.ts +0 -13
- package/cjs/rules/relay-page-info.d.ts +0 -13
- package/cjs/rules/require-deprecation-reason.d.ts +0 -13
- package/cjs/rules/require-deprecation-reason.js +0 -85
- package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -13
- package/cjs/rules/require-import-fragment.d.ts +0 -13
- package/cjs/rules/require-nullable-fields-with-oneof.d.ts +0 -13
- package/cjs/rules/require-nullable-fields-with-oneof.js +0 -81
- package/cjs/rules/require-nullable-result-in-root.d.ts +0 -13
- package/cjs/rules/require-type-pattern-with-oneof.d.ts +0 -13
- package/cjs/rules/require-type-pattern-with-oneof.js +0 -83
- package/cjs/rules/unique-enum-value-names.d.ts +0 -13
- package/cjs/rules/unique-fragment-name.js +0 -106
- package/cjs/rules/unique-operation-name.d.ts +0 -13
- package/esm/configs/index.d.mts +0 -174
- package/esm/estree-converter/index.d.mts +0 -8
- package/esm/flat-configs.d.mts +0 -307
- package/esm/flat-configs.js +0 -36
- package/esm/index.d.mts +0 -26
- package/esm/package.json +0 -1
- package/esm/rules/no-anonymous-operations.d.mts +0 -13
- package/esm/rules/no-duplicate-fields.d.mts +0 -13
- package/esm/rules/no-one-place-fragments.d.mts +0 -13
- package/esm/rules/no-scalar-result-type-on-mutation.d.mts +0 -13
- package/esm/rules/no-typename-prefix.d.mts +0 -13
- package/esm/rules/no-unreachable-types.d.mts +0 -13
- package/esm/rules/no-unused-fields.d.mts +0 -13
- package/esm/rules/relay-page-info.d.mts +0 -13
- package/esm/rules/require-deprecation-reason.d.mts +0 -13
- package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +0 -13
- package/esm/rules/require-import-fragment.d.mts +0 -13
- package/esm/rules/require-nullable-fields-with-oneof.d.mts +0 -13
- package/esm/rules/require-nullable-result-in-root.d.mts +0 -13
- package/esm/rules/require-type-pattern-with-oneof.d.mts +0 -13
- package/esm/rules/unique-enum-value-names.d.mts +0 -13
- package/esm/rules/unique-operation-name.d.mts +0 -13
- /package/cjs/configs/{operations-all.d.ts → operations-all.d.cts} +0 -0
- /package/cjs/configs/{operations-recommended.d.ts → operations-recommended.d.cts} +0 -0
- /package/cjs/configs/{schema-all.d.ts → schema-all.d.cts} +0 -0
- /package/cjs/configs/{schema-recommended.d.ts → schema-recommended.d.cts} +0 -0
- /package/cjs/configs/{schema-relay.d.ts → schema-relay.d.cts} +0 -0
- /package/cjs/{documents.d.ts → documents.d.cts} +0 -0
- /package/cjs/estree-converter/{types.d.ts → types.d.cts} +0 -0
- /package/cjs/{siblings.d.ts → siblings.d.cts} +0 -0
- /package/esm/configs/{operations-all.d.mts → operations-all.d.ts} +0 -0
- /package/esm/configs/{operations-recommended.d.mts → operations-recommended.d.ts} +0 -0
- /package/esm/configs/{schema-all.d.mts → schema-all.d.ts} +0 -0
- /package/esm/configs/{schema-recommended.d.mts → schema-recommended.d.ts} +0 -0
- /package/esm/configs/{schema-relay.d.mts → schema-relay.d.ts} +0 -0
- /package/esm/{documents.d.mts → documents.d.ts} +0 -0
- /package/{cjs → esm}/estree-converter/converter.d.ts +0 -0
- /package/esm/estree-converter/{types.d.mts → types.d.ts} +0 -0
- /package/{cjs → esm}/graphql-config.d.ts +0 -0
- /package/{cjs → esm}/rules/graphql-js-validation.d.ts +0 -0
- /package/{cjs → esm}/schema.d.ts +0 -0
- /package/esm/{siblings.d.mts → siblings.d.ts} +0 -0
- /package/{cjs → esm}/types.d.ts +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GraphQLESLintRule } from '../../types.cjs';
|
|
2
|
+
import 'eslint';
|
|
3
|
+
import 'estree';
|
|
4
|
+
import 'graphql';
|
|
5
|
+
import 'graphql-config';
|
|
6
|
+
import 'json-schema-to-ts';
|
|
7
|
+
import '../../estree-converter/types.cjs';
|
|
8
|
+
import '../../siblings.cjs';
|
|
9
|
+
import '@graphql-tools/utils';
|
|
10
|
+
|
|
11
|
+
declare const rule: GraphQLESLintRule;
|
|
12
|
+
|
|
13
|
+
export { rule };
|
|
@@ -1,33 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
22
|
-
mod
|
|
23
|
-
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
24
|
-
var require_import_fragment_exports = {};
|
|
25
|
-
__export(require_import_fragment_exports, {
|
|
26
|
-
rule: () => rule
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(require_import_fragment_exports);
|
|
29
|
-
var import_node_path = __toESM(require("node:path")), import_utils = require("../utils.js");
|
|
30
|
-
const RULE_ID = "require-import-fragment", SUGGESTION_ID = "add-import-expression", rule = {
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../../chunk-UIAXBAMD.js');
|
|
2
|
+
var _nodepath = require('node:path'); var _nodepath2 = _interopRequireDefault(_nodepath);
|
|
3
|
+
var _utilsjs = require('../../utils.js');
|
|
4
|
+
const RULE_ID = "require-import-fragment", SUGGESTION_ID = "add-import-expression", rule = exports.rule = {
|
|
31
5
|
meta: {
|
|
32
6
|
type: "suggestion",
|
|
33
7
|
docs: {
|
|
@@ -101,7 +75,7 @@ const RULE_ID = "require-import-fragment", SUGGESTION_ID = "add-import-expressio
|
|
|
101
75
|
schema: []
|
|
102
76
|
},
|
|
103
77
|
create(context) {
|
|
104
|
-
const comments = context.getSourceCode().getAllComments(), siblings = (0,
|
|
78
|
+
const comments = context.getSourceCode().getAllComments(), siblings = _utilsjs.requireSiblingsOperations.call(void 0, RULE_ID, context), filePath = context.filename;
|
|
105
79
|
return {
|
|
106
80
|
"FragmentSpread > .name"(node) {
|
|
107
81
|
const fragmentName = node.value, fragmentsFromSiblings = siblings.getFragment(fragmentName);
|
|
@@ -109,9 +83,9 @@ const RULE_ID = "require-import-fragment", SUGGESTION_ID = "add-import-expressio
|
|
|
109
83
|
if (comment.type !== "Line" || !new RegExp(
|
|
110
84
|
`^\\s*import\\s+(${fragmentName}\\s+from\\s+)?['"]`
|
|
111
85
|
).test(comment.value)) continue;
|
|
112
|
-
const extractedImportPath = comment.value.match(/(["'])((?:\1|.)*?)\1/)
|
|
86
|
+
const extractedImportPath = _optionalChain([comment, 'access', _ => _.value, 'access', _2 => _2.match, 'call', _3 => _3(/(["'])((?:\1|.)*?)\1/), 'optionalAccess', _4 => _4[2]]);
|
|
113
87
|
if (!extractedImportPath) continue;
|
|
114
|
-
const importPath =
|
|
88
|
+
const importPath = _nodepath2.default.join(filePath, "..", extractedImportPath);
|
|
115
89
|
if (fragmentsFromSiblings.some(
|
|
116
90
|
(source) => source.filePath === importPath
|
|
117
91
|
)) return;
|
|
@@ -119,7 +93,12 @@ const RULE_ID = "require-import-fragment", SUGGESTION_ID = "add-import-expressio
|
|
|
119
93
|
if (fragmentsFromSiblings.some(
|
|
120
94
|
(source) => source.filePath === filePath
|
|
121
95
|
)) return;
|
|
122
|
-
const suggestedFilePaths = fragmentsFromSiblings.length ? fragmentsFromSiblings.map(
|
|
96
|
+
const suggestedFilePaths = fragmentsFromSiblings.length ? fragmentsFromSiblings.map(
|
|
97
|
+
(o) => (
|
|
98
|
+
// Use always forward slash for suggested import path
|
|
99
|
+
_utilsjs.slash.call(void 0, _nodepath2.default.relative(_nodepath2.default.dirname(filePath), o.filePath))
|
|
100
|
+
)
|
|
101
|
+
) : ["CHANGE_ME.graphql"];
|
|
123
102
|
context.report({
|
|
124
103
|
node,
|
|
125
104
|
messageId: RULE_ID,
|
|
@@ -138,7 +117,6 @@ const RULE_ID = "require-import-fragment", SUGGESTION_ID = "add-import-expressio
|
|
|
138
117
|
};
|
|
139
118
|
}
|
|
140
119
|
};
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
exports.rule = rule;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GraphQLESLintRule } from '../../types.cjs';
|
|
2
|
+
import 'eslint';
|
|
3
|
+
import 'estree';
|
|
4
|
+
import 'graphql';
|
|
5
|
+
import 'graphql-config';
|
|
6
|
+
import 'json-schema-to-ts';
|
|
7
|
+
import '../../estree-converter/types.cjs';
|
|
8
|
+
import '../../siblings.cjs';
|
|
9
|
+
import '@graphql-tools/utils';
|
|
10
|
+
|
|
11
|
+
declare const rule: GraphQLESLintRule;
|
|
12
|
+
|
|
13
|
+
export { rule };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-UIAXBAMD.js');
|
|
2
|
+
var _graphql = require('graphql');
|
|
3
|
+
var _utilsjs = require('../../utils.js');
|
|
4
|
+
const RULE_ID = "require-nullable-fields-with-oneof", rule = exports.rule = {
|
|
5
|
+
meta: {
|
|
6
|
+
type: "suggestion",
|
|
7
|
+
docs: {
|
|
8
|
+
category: "Schema",
|
|
9
|
+
description: "Require `input` or `type` fields to be non-nullable with `@oneOf` directive.",
|
|
10
|
+
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
|
11
|
+
examples: [
|
|
12
|
+
{
|
|
13
|
+
title: "Incorrect",
|
|
14
|
+
code: (
|
|
15
|
+
/* GraphQL */
|
|
16
|
+
`
|
|
17
|
+
input Input @oneOf {
|
|
18
|
+
foo: String!
|
|
19
|
+
b: Int
|
|
20
|
+
}
|
|
21
|
+
`
|
|
22
|
+
)
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
title: "Correct",
|
|
26
|
+
code: (
|
|
27
|
+
/* GraphQL */
|
|
28
|
+
`
|
|
29
|
+
input Input @oneOf {
|
|
30
|
+
foo: String
|
|
31
|
+
bar: Int
|
|
32
|
+
}
|
|
33
|
+
`
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
messages: {
|
|
39
|
+
[RULE_ID]: '{{ nodeName }} must be nullable when "@oneOf" is in use'
|
|
40
|
+
},
|
|
41
|
+
schema: []
|
|
42
|
+
},
|
|
43
|
+
create(context) {
|
|
44
|
+
return {
|
|
45
|
+
"Directive[name.value=oneOf]"({ parent }) {
|
|
46
|
+
if ([
|
|
47
|
+
_graphql.Kind.OBJECT_TYPE_DEFINITION,
|
|
48
|
+
_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION
|
|
49
|
+
].includes(parent.kind))
|
|
50
|
+
for (const field of parent.fields || [])
|
|
51
|
+
field.gqlType.kind === _graphql.Kind.NON_NULL_TYPE && context.report({
|
|
52
|
+
node: field.name,
|
|
53
|
+
messageId: RULE_ID,
|
|
54
|
+
data: { nodeName: _utilsjs.getNodeName.call(void 0, field) }
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
exports.rule = rule;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GraphQLESLintRule } from '../../types.cjs';
|
|
2
|
+
import 'eslint';
|
|
3
|
+
import 'estree';
|
|
4
|
+
import 'graphql';
|
|
5
|
+
import 'graphql-config';
|
|
6
|
+
import 'json-schema-to-ts';
|
|
7
|
+
import '../../estree-converter/types.cjs';
|
|
8
|
+
import '../../siblings.cjs';
|
|
9
|
+
import '@graphql-tools/utils';
|
|
10
|
+
|
|
11
|
+
declare const rule: GraphQLESLintRule;
|
|
12
|
+
|
|
13
|
+
export { rule };
|
package/cjs/rules/{require-nullable-result-in-root.js → require-nullable-result-in-root/index.js}
RENAMED
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
-
return to;
|
|
14
|
-
};
|
|
15
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
|
-
var require_nullable_result_in_root_exports = {};
|
|
17
|
-
__export(require_nullable_result_in_root_exports, {
|
|
18
|
-
rule: () => rule
|
|
19
|
-
});
|
|
20
|
-
module.exports = __toCommonJS(require_nullable_result_in_root_exports);
|
|
21
|
-
var import_graphql = require("graphql"), import_utils = require("../utils.js");
|
|
22
|
-
const RULE_ID = "require-nullable-result-in-root", rule = {
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../../chunk-UIAXBAMD.js');
|
|
2
|
+
var _graphql = require('graphql');
|
|
3
|
+
var _utilsjs = require('../../utils.js');
|
|
4
|
+
const RULE_ID = "require-nullable-result-in-root", rule = exports.rule = {
|
|
23
5
|
meta: {
|
|
24
6
|
type: "suggestion",
|
|
25
7
|
hasSuggestions: !0,
|
|
@@ -61,22 +43,22 @@ const RULE_ID = "require-nullable-result-in-root", rule = {
|
|
|
61
43
|
schema: []
|
|
62
44
|
},
|
|
63
45
|
create(context) {
|
|
64
|
-
const schema = (0,
|
|
65
|
-
[schema.getQueryType(), schema.getMutationType()].filter(
|
|
46
|
+
const schema = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), rootTypeNames = new Set(
|
|
47
|
+
[schema.getQueryType(), schema.getMutationType()].filter(_utilsjs.truthy).map((type) => type.name)
|
|
66
48
|
), sourceCode = context.getSourceCode();
|
|
67
49
|
return {
|
|
68
50
|
"ObjectTypeDefinition,ObjectTypeExtension"(node) {
|
|
69
51
|
if (rootTypeNames.has(node.name.value))
|
|
70
52
|
for (const field of node.fields || []) {
|
|
71
|
-
if (field.gqlType.type !==
|
|
53
|
+
if (field.gqlType.type !== _graphql.Kind.NON_NULL_TYPE || field.gqlType.gqlType.type !== _graphql.Kind.NAMED_TYPE)
|
|
72
54
|
continue;
|
|
73
|
-
const name = field.gqlType.gqlType.name.value, type = schema.getType(name), resultType = type
|
|
55
|
+
const name = field.gqlType.gqlType.name.value, type = schema.getType(name), resultType = _optionalChain([type, 'optionalAccess', _ => _.astNode]) ? _utilsjs.getNodeName.call(void 0, type.astNode) : _optionalChain([type, 'optionalAccess', _2 => _2.name]);
|
|
74
56
|
context.report({
|
|
75
57
|
node: field.gqlType,
|
|
76
58
|
messageId: RULE_ID,
|
|
77
59
|
data: {
|
|
78
60
|
resultType: resultType || "",
|
|
79
|
-
rootType: (0,
|
|
61
|
+
rootType: _utilsjs.getNodeName.call(void 0, node)
|
|
80
62
|
},
|
|
81
63
|
suggest: [
|
|
82
64
|
{
|
|
@@ -93,7 +75,6 @@ const RULE_ID = "require-nullable-result-in-root", rule = {
|
|
|
93
75
|
};
|
|
94
76
|
}
|
|
95
77
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
exports.rule = rule;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
|
2
|
-
import { GraphQLESLintRule } from '
|
|
2
|
+
import { GraphQLESLintRule } from '../../types.cjs';
|
|
3
3
|
import 'eslint';
|
|
4
4
|
import 'estree';
|
|
5
5
|
import 'graphql';
|
|
6
6
|
import 'graphql-config';
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
7
|
+
import '../../estree-converter/types.cjs';
|
|
8
|
+
import '../../siblings.cjs';
|
|
9
9
|
import '@graphql-tools/utils';
|
|
10
10
|
|
|
11
11
|
declare const schema: {
|
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
});
|
|
20
|
-
module.exports = __toCommonJS(require_selections_exports);
|
|
21
|
-
var import_graphql = require("graphql"), import_utils = require("@graphql-tools/utils"), import_estree_converter = require("../estree-converter/index.js"), import_utils2 = require("../utils.js");
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-UIAXBAMD.js');
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _graphql = require('graphql');
|
|
11
|
+
var _utils = require('@graphql-tools/utils');
|
|
12
|
+
var _indexjs = require('../../estree-converter/index.js');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _utilsjs = require('../../utils.js');
|
|
22
19
|
const RULE_ID = "require-selections", DEFAULT_ID_FIELD_NAME = "id", schema = {
|
|
23
20
|
definitions: {
|
|
24
21
|
asString: {
|
|
25
22
|
type: "string"
|
|
26
23
|
},
|
|
27
|
-
asArray:
|
|
24
|
+
asArray: _utilsjs.ARRAY_DEFAULT_OPTIONS
|
|
28
25
|
},
|
|
29
26
|
type: "array",
|
|
30
27
|
maxItems: 1,
|
|
@@ -38,7 +35,7 @@ const RULE_ID = "require-selections", DEFAULT_ID_FIELD_NAME = "id", schema = {
|
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
|
-
}, rule = {
|
|
38
|
+
}, rule = exports.rule = {
|
|
42
39
|
meta: {
|
|
43
40
|
type: "suggestion",
|
|
44
41
|
hasSuggestions: !0,
|
|
@@ -107,18 +104,18 @@ Include it in your selection set{{ addition }}.`
|
|
|
107
104
|
schema
|
|
108
105
|
},
|
|
109
106
|
create(context) {
|
|
110
|
-
const schema2 = (0,
|
|
107
|
+
const schema2 = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), siblings = _utilsjs.requireSiblingsOperations.call(void 0, RULE_ID, context), { fieldName = DEFAULT_ID_FIELD_NAME } = context.options[0] || {}, idNames = _utils.asArray.call(void 0, fieldName), selector = "OperationDefinition SelectionSet[parent.kind!=/(^OperationDefinition|InlineFragment)$/]", typeInfo = new (0, _graphql.TypeInfo)(schema2);
|
|
111
108
|
function checkFragments(node) {
|
|
112
109
|
for (const selection of node.selections) {
|
|
113
|
-
if (selection.kind !==
|
|
110
|
+
if (selection.kind !== _graphql.Kind.FRAGMENT_SPREAD)
|
|
114
111
|
continue;
|
|
115
112
|
const [foundSpread] = siblings.getFragment(selection.name.value);
|
|
116
113
|
if (!foundSpread)
|
|
117
114
|
continue;
|
|
118
|
-
const checkedFragmentSpreads = /* @__PURE__ */ new Set(), visitor = (0,
|
|
115
|
+
const checkedFragmentSpreads = /* @__PURE__ */ new Set(), visitor = _graphql.visitWithTypeInfo.call(void 0, typeInfo, {
|
|
119
116
|
SelectionSet(node2, key, _parent) {
|
|
120
117
|
const parent = _parent;
|
|
121
|
-
parent.kind ===
|
|
118
|
+
parent.kind === _graphql.Kind.FRAGMENT_DEFINITION ? checkedFragmentSpreads.add(parent.name.value) : parent.kind !== _graphql.Kind.INLINE_FRAGMENT && checkSelections(
|
|
122
119
|
node2,
|
|
123
120
|
typeInfo.getType(),
|
|
124
121
|
selection.loc.start,
|
|
@@ -127,31 +124,37 @@ Include it in your selection set{{ addition }}.`
|
|
|
127
124
|
);
|
|
128
125
|
}
|
|
129
126
|
});
|
|
130
|
-
(0,
|
|
127
|
+
_graphql.visit.call(void 0, foundSpread.document, visitor);
|
|
131
128
|
}
|
|
132
129
|
}
|
|
133
130
|
function checkSelections(node, type, loc, parent, checkedFragmentSpreads = /* @__PURE__ */ new Set()) {
|
|
134
|
-
const rawType = (0,
|
|
135
|
-
if (rawType instanceof
|
|
131
|
+
const rawType = _indexjs.getBaseType.call(void 0, type);
|
|
132
|
+
if (rawType instanceof _graphql.GraphQLObjectType || rawType instanceof _graphql.GraphQLInterfaceType)
|
|
136
133
|
checkFields(rawType);
|
|
137
|
-
else if (rawType instanceof
|
|
138
|
-
for (const selection of node.selections)
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
else if (rawType instanceof _graphql.GraphQLUnionType)
|
|
135
|
+
for (const selection of node.selections) {
|
|
136
|
+
const types = rawType.getTypes();
|
|
137
|
+
if (selection.kind === _graphql.Kind.INLINE_FRAGMENT) {
|
|
138
|
+
const t = types.find((t2) => t2.name === selection.typeCondition.name.value);
|
|
141
139
|
t && checkFields(t);
|
|
140
|
+
} else if (selection.kind === _graphql.Kind.FRAGMENT_SPREAD) {
|
|
141
|
+
const [foundSpread] = siblings.getFragment(selection.name.value);
|
|
142
|
+
if (!foundSpread) return;
|
|
143
|
+
const fragmentSpread = foundSpread.document, t = fragmentSpread.typeCondition.name.value === rawType.name ? rawType : types.find((t2) => t2.name === fragmentSpread.typeCondition.name.value);
|
|
144
|
+
checkedFragmentSpreads.add(fragmentSpread.name.value), checkSelections(fragmentSpread.selectionSet, t, loc, parent, checkedFragmentSpreads);
|
|
142
145
|
}
|
|
143
|
-
|
|
146
|
+
}
|
|
144
147
|
function checkFields(rawType2) {
|
|
145
148
|
const fields = rawType2.getFields();
|
|
146
149
|
if (!idNames.some((name) => fields[name]))
|
|
147
150
|
return;
|
|
148
151
|
function hasIdField({ selections }) {
|
|
149
152
|
return selections.some((selection) => {
|
|
150
|
-
if (selection.kind ===
|
|
153
|
+
if (selection.kind === _graphql.Kind.FIELD)
|
|
151
154
|
return selection.alias && idNames.includes(selection.alias.value) ? !0 : idNames.includes(selection.name.value);
|
|
152
|
-
if (selection.kind ===
|
|
155
|
+
if (selection.kind === _graphql.Kind.INLINE_FRAGMENT)
|
|
153
156
|
return hasIdField(selection.selectionSet);
|
|
154
|
-
if (selection.kind ===
|
|
157
|
+
if (selection.kind === _graphql.Kind.FRAGMENT_SPREAD) {
|
|
155
158
|
const [foundSpread] = siblings.getFragment(selection.name.value);
|
|
156
159
|
if (foundSpread) {
|
|
157
160
|
const fragmentSpread = foundSpread.document;
|
|
@@ -164,9 +167,9 @@ Include it in your selection set{{ addition }}.`
|
|
|
164
167
|
const hasId = hasIdField(node);
|
|
165
168
|
if (checkFragments(node), hasId)
|
|
166
169
|
return;
|
|
167
|
-
const pluralSuffix = idNames.length > 1 ? "s" : "", fieldName2 = (0,
|
|
170
|
+
const pluralSuffix = idNames.length > 1 ? "s" : "", fieldName2 = _utilsjs.englishJoinWords.call(void 0,
|
|
168
171
|
idNames.map((name) => `\`${(parent.alias || parent.name).value}.${name}\``)
|
|
169
|
-
), addition = checkedFragmentSpreads.size === 0 ? "" : ` or add to used fragment${checkedFragmentSpreads.size > 1 ? "s" : ""} ${(0,
|
|
172
|
+
), addition = checkedFragmentSpreads.size === 0 ? "" : ` or add to used fragment${checkedFragmentSpreads.size > 1 ? "s" : ""} ${_utilsjs.englishJoinWords.call(void 0, [...checkedFragmentSpreads].map((name) => `\`${name}\``))}`, problem = {
|
|
170
173
|
loc,
|
|
171
174
|
messageId: RULE_ID,
|
|
172
175
|
data: {
|
|
@@ -179,7 +182,7 @@ Include it in your selection set{{ addition }}.`
|
|
|
179
182
|
desc: `Add \`${idName}\` selection`,
|
|
180
183
|
fix: (fixer) => {
|
|
181
184
|
let insertNode = node.selections[0];
|
|
182
|
-
return insertNode = insertNode.kind ===
|
|
185
|
+
return insertNode = insertNode.kind === _graphql.Kind.INLINE_FRAGMENT ? insertNode.selectionSet.selections[0] : insertNode, fixer.insertTextBefore(insertNode, `${idName} `);
|
|
183
186
|
}
|
|
184
187
|
}))), context.report(problem);
|
|
185
188
|
}
|
|
@@ -192,7 +195,6 @@ Include it in your selection set{{ addition }}.`
|
|
|
192
195
|
};
|
|
193
196
|
}
|
|
194
197
|
};
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
});
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
exports.rule = rule;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GraphQLESLintRule } from '../../types.cjs';
|
|
2
|
+
import 'eslint';
|
|
3
|
+
import 'estree';
|
|
4
|
+
import 'graphql';
|
|
5
|
+
import 'graphql-config';
|
|
6
|
+
import 'json-schema-to-ts';
|
|
7
|
+
import '../../estree-converter/types.cjs';
|
|
8
|
+
import '../../siblings.cjs';
|
|
9
|
+
import '@graphql-tools/utils';
|
|
10
|
+
|
|
11
|
+
declare const rule: GraphQLESLintRule;
|
|
12
|
+
|
|
13
|
+
export { rule };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../../chunk-UIAXBAMD.js');
|
|
2
|
+
var _utilsjs = require('../../utils.js');
|
|
3
|
+
const RULE_ID = "require-type-pattern-with-oneof", rule = exports.rule = {
|
|
4
|
+
meta: {
|
|
5
|
+
type: "suggestion",
|
|
6
|
+
docs: {
|
|
7
|
+
category: "Schema",
|
|
8
|
+
description: "Enforce types with `@oneOf` directive have `error` and `ok` fields.",
|
|
9
|
+
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
|
10
|
+
examples: [
|
|
11
|
+
{
|
|
12
|
+
title: "Correct",
|
|
13
|
+
code: (
|
|
14
|
+
/* GraphQL */
|
|
15
|
+
`
|
|
16
|
+
type Mutation {
|
|
17
|
+
doSomething: DoSomethingMutationResult!
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface Error {
|
|
21
|
+
message: String!
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type DoSomethingMutationResult @oneOf {
|
|
25
|
+
ok: DoSomethingSuccess
|
|
26
|
+
error: Error
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
type DoSomethingSuccess {
|
|
30
|
+
# ...
|
|
31
|
+
}
|
|
32
|
+
`
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
messages: {
|
|
38
|
+
[RULE_ID]: '{{ nodeName }} is defined as output with "@oneOf" and must be defined with "{{ fieldName }}" field'
|
|
39
|
+
},
|
|
40
|
+
schema: []
|
|
41
|
+
},
|
|
42
|
+
create(context) {
|
|
43
|
+
return {
|
|
44
|
+
"Directive[name.value=oneOf][parent.kind=ObjectTypeDefinition]"({
|
|
45
|
+
parent
|
|
46
|
+
}) {
|
|
47
|
+
const requiredFields = ["error", "ok"];
|
|
48
|
+
for (const fieldName of requiredFields)
|
|
49
|
+
_optionalChain([parent, 'access', _ => _.fields, 'optionalAccess', _2 => _2.some, 'call', _3 => _3((field) => field.name.value === fieldName)]) || context.report({
|
|
50
|
+
node: parent.name,
|
|
51
|
+
messageId: RULE_ID,
|
|
52
|
+
data: {
|
|
53
|
+
nodeName: _utilsjs.displayNodeName.call(void 0, parent),
|
|
54
|
+
fieldName
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
exports.rule = rule;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
|
2
|
-
import { GraphQLESLintRule } from '
|
|
2
|
+
import { GraphQLESLintRule } from '../../types.cjs';
|
|
3
3
|
import 'eslint';
|
|
4
4
|
import 'estree';
|
|
5
5
|
import 'graphql';
|
|
6
6
|
import 'graphql-config';
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
7
|
+
import '../../estree-converter/types.cjs';
|
|
8
|
+
import '../../siblings.cjs';
|
|
9
9
|
import '@graphql-tools/utils';
|
|
10
10
|
|
|
11
11
|
declare const schema: {
|
|
@@ -1,32 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
22
|
-
mod
|
|
23
|
-
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
24
|
-
var selection_set_depth_exports = {};
|
|
25
|
-
__export(selection_set_depth_exports, {
|
|
26
|
-
rule: () => rule
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(selection_set_depth_exports);
|
|
29
|
-
var import_graphql = require("graphql"), import_graphql_depth_limit = __toESM(require("graphql-depth-limit")), import_utils = require("../utils.js");
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }require('../../chunk-UIAXBAMD.js');
|
|
2
|
+
var _graphql = require('graphql');
|
|
3
|
+
var _graphqldepthlimit = require('graphql-depth-limit'); var _graphqldepthlimit2 = _interopRequireDefault(_graphqldepthlimit);
|
|
4
|
+
var _utilsjs = require('../../utils.js');
|
|
30
5
|
const RULE_ID = "selection-set-depth", schema = {
|
|
31
6
|
type: "array",
|
|
32
7
|
minItems: 1,
|
|
@@ -39,10 +14,10 @@ const RULE_ID = "selection-set-depth", schema = {
|
|
|
39
14
|
maxDepth: {
|
|
40
15
|
type: "number"
|
|
41
16
|
},
|
|
42
|
-
ignore:
|
|
17
|
+
ignore: _utilsjs.ARRAY_DEFAULT_OPTIONS
|
|
43
18
|
}
|
|
44
19
|
}
|
|
45
|
-
}, rule = {
|
|
20
|
+
}, rule = exports.rule = {
|
|
46
21
|
meta: {
|
|
47
22
|
type: "suggestion",
|
|
48
23
|
hasSuggestions: !0,
|
|
@@ -100,24 +75,24 @@ const RULE_ID = "selection-set-depth", schema = {
|
|
|
100
75
|
create(context) {
|
|
101
76
|
let siblings = null;
|
|
102
77
|
try {
|
|
103
|
-
siblings = (0,
|
|
104
|
-
} catch {
|
|
105
|
-
|
|
78
|
+
siblings = _utilsjs.requireSiblingsOperations.call(void 0, RULE_ID, context);
|
|
79
|
+
} catch (e2) {
|
|
80
|
+
_utilsjs.logger.warn(
|
|
106
81
|
`Rule "${RULE_ID}" works best with siblings operations loaded. For more info: https://bit.ly/graphql-eslint-operations`
|
|
107
82
|
);
|
|
108
83
|
}
|
|
109
|
-
const { maxDepth, ignore = [] } = context.options[0], checkFn = (0,
|
|
84
|
+
const { maxDepth, ignore = [] } = context.options[0], checkFn = _graphqldepthlimit2.default.call(void 0, maxDepth, { ignore });
|
|
110
85
|
return {
|
|
111
86
|
"OperationDefinition, FragmentDefinition"(node) {
|
|
112
87
|
try {
|
|
113
88
|
const rawNode = node.rawNode(), fragmentsInUse = siblings ? siblings.getFragmentsInUse(rawNode) : [], document = {
|
|
114
|
-
kind:
|
|
89
|
+
kind: _graphql.Kind.DOCUMENT,
|
|
115
90
|
definitions: [rawNode, ...fragmentsInUse]
|
|
116
91
|
};
|
|
117
92
|
checkFn({
|
|
118
93
|
getDocument: () => document,
|
|
119
94
|
reportError(error) {
|
|
120
|
-
const { line, column } = error.locations[0], token = context.getAncestors()[0].tokens.find(
|
|
95
|
+
const { line, column } = error.locations[0], token = context.sourceCode.getAncestors(node)[0].tokens.find(
|
|
121
96
|
(token2) => token2.loc.start.line === line && token2.loc.start.column === column - 1
|
|
122
97
|
);
|
|
123
98
|
context.report({
|
|
@@ -144,7 +119,7 @@ const RULE_ID = "selection-set-depth", schema = {
|
|
|
144
119
|
}
|
|
145
120
|
});
|
|
146
121
|
} catch (e) {
|
|
147
|
-
|
|
122
|
+
_utilsjs.logger.warn(
|
|
148
123
|
`Rule "${RULE_ID}" check failed due to a missing siblings operations. For more info: https://bit.ly/graphql-eslint-operations`,
|
|
149
124
|
e
|
|
150
125
|
);
|
|
@@ -153,7 +128,6 @@ const RULE_ID = "selection-set-depth", schema = {
|
|
|
153
128
|
};
|
|
154
129
|
}
|
|
155
130
|
};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
});
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
exports.rule = rule;
|