@graphql-eslint/eslint-plugin 4.0.0-alpha.1 → 4.0.0-alpha.11
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 +186 -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/cjs/rules/{index.d.ts → index.d.cts} +17 -15
- 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 +34 -0
- package/cjs/rules/no-unused-fields/index.js +224 -0
- 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 +186 -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/esm/rules/{index.d.mts → index.d.ts} +11 -9
- 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 +34 -0
- package/esm/rules/no-unused-fields/index.js +224 -0
- 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} +352 -181
- 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/no-unused-fields.js +0 -132
- 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/no-unused-fields.js +0 -113
- 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
|
@@ -1,32 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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_description_exports = {};
|
|
17
|
-
__export(require_description_exports, {
|
|
18
|
-
RULE_ID: () => RULE_ID,
|
|
19
|
-
rule: () => rule
|
|
20
|
-
});
|
|
21
|
-
module.exports = __toCommonJS(require_description_exports);
|
|
22
|
-
var import_graphql = require("graphql"), import_utils = require("@graphql-tools/utils"), import_utils2 = require("../utils.js");
|
|
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 _utils = require('@graphql-tools/utils');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _utilsjs = require('../../utils.js');
|
|
23
10
|
const RULE_ID = "require-description", ALLOWED_KINDS = [
|
|
24
|
-
...
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
11
|
+
..._utilsjs.TYPES_KINDS,
|
|
12
|
+
_graphql.Kind.DIRECTIVE_DEFINITION,
|
|
13
|
+
_graphql.Kind.FIELD_DEFINITION,
|
|
14
|
+
_graphql.Kind.INPUT_VALUE_DEFINITION,
|
|
15
|
+
_graphql.Kind.ENUM_VALUE_DEFINITION,
|
|
16
|
+
_graphql.Kind.OPERATION_DEFINITION
|
|
30
17
|
], schema = {
|
|
31
18
|
type: "array",
|
|
32
19
|
minItems: 1,
|
|
@@ -39,7 +26,7 @@ const RULE_ID = "require-description", ALLOWED_KINDS = [
|
|
|
39
26
|
types: {
|
|
40
27
|
type: "boolean",
|
|
41
28
|
description: `Includes:
|
|
42
|
-
${
|
|
29
|
+
${_utilsjs.TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
|
|
43
30
|
`)}`
|
|
44
31
|
},
|
|
45
32
|
rootField: {
|
|
@@ -49,12 +36,12 @@ ${import_utils2.TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
|
|
|
49
36
|
...Object.fromEntries(
|
|
50
37
|
[...ALLOWED_KINDS].sort().map((kind) => {
|
|
51
38
|
let description = `Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#${kind}).`;
|
|
52
|
-
return kind ===
|
|
39
|
+
return kind === _graphql.Kind.OPERATION_DEFINITION && (description += '\n> You must use only comment syntax `#` and not description syntax `"""` or `"`.'), [kind, { type: "boolean", description }];
|
|
53
40
|
})
|
|
54
41
|
)
|
|
55
42
|
}
|
|
56
43
|
}
|
|
57
|
-
}, rule = {
|
|
44
|
+
}, rule = exports.rule = {
|
|
58
45
|
meta: {
|
|
59
46
|
docs: {
|
|
60
47
|
category: "Schema",
|
|
@@ -125,7 +112,7 @@ ${import_utils2.TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
|
|
|
125
112
|
configOptions: [
|
|
126
113
|
{
|
|
127
114
|
types: !0,
|
|
128
|
-
[
|
|
115
|
+
[_graphql.Kind.DIRECTIVE_DEFINITION]: !0,
|
|
129
116
|
rootField: !0
|
|
130
117
|
}
|
|
131
118
|
],
|
|
@@ -138,11 +125,11 @@ ${import_utils2.TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
|
|
|
138
125
|
schema
|
|
139
126
|
},
|
|
140
127
|
create(context) {
|
|
141
|
-
const { types, rootField, ...restOptions } = context.options[0] || {}, kinds = new Set(types ?
|
|
128
|
+
const { types, rootField, ...restOptions } = context.options[0] || {}, kinds = new Set(types ? _utilsjs.TYPES_KINDS : []);
|
|
142
129
|
for (const [kind, isEnabled] of Object.entries(restOptions))
|
|
143
130
|
isEnabled ? kinds.add(kind) : kinds.delete(kind);
|
|
144
131
|
if (rootField) {
|
|
145
|
-
const schema2 = (0,
|
|
132
|
+
const schema2 = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), rootTypeNames = _utils.getRootTypeNames.call(void 0, schema2);
|
|
146
133
|
kinds.add(
|
|
147
134
|
`:matches(ObjectTypeDefinition, ObjectTypeExtension)[name.value=/^(${[
|
|
148
135
|
...rootTypeNames
|
|
@@ -152,28 +139,27 @@ ${import_utils2.TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
|
|
|
152
139
|
return {
|
|
153
140
|
[[...kinds].join(",")](node) {
|
|
154
141
|
let description = "";
|
|
155
|
-
const isOperation = node.kind ===
|
|
142
|
+
const isOperation = node.kind === _graphql.Kind.OPERATION_DEFINITION;
|
|
156
143
|
if (isOperation) {
|
|
157
144
|
const rawNode = node.rawNode(), { prev, line } = rawNode.loc.startToken;
|
|
158
|
-
if (prev
|
|
145
|
+
if (_optionalChain([prev, 'optionalAccess', _ => _.kind]) === _graphql.TokenKind.COMMENT) {
|
|
159
146
|
const value = prev.value.trim(), linesBefore = line - prev.line;
|
|
160
147
|
!value.startsWith("eslint") && linesBefore === 1 && (description = value);
|
|
161
148
|
}
|
|
162
149
|
} else
|
|
163
|
-
description = node.description
|
|
150
|
+
description = _optionalChain([node, 'access', _2 => _2.description, 'optionalAccess', _3 => _3.value, 'access', _4 => _4.trim, 'call', _5 => _5()]) || "";
|
|
164
151
|
description.length === 0 && context.report({
|
|
165
|
-
loc: isOperation ? (0,
|
|
152
|
+
loc: isOperation ? _utilsjs.getLocation.call(void 0, node.loc.start, node.operation) : node.name.loc,
|
|
166
153
|
messageId: RULE_ID,
|
|
167
154
|
data: {
|
|
168
|
-
nodeName: (0,
|
|
155
|
+
nodeName: _utilsjs.getNodeName.call(void 0, node)
|
|
169
156
|
}
|
|
170
157
|
});
|
|
171
158
|
}
|
|
172
159
|
};
|
|
173
160
|
}
|
|
174
161
|
};
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
});
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
exports.RULE_ID = RULE_ID; 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 };
|
|
@@ -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_field_of_type_query_in_mutation_result_exports = {};
|
|
17
|
-
__export(require_field_of_type_query_in_mutation_result_exports, {
|
|
18
|
-
rule: () => rule
|
|
19
|
-
});
|
|
20
|
-
module.exports = __toCommonJS(require_field_of_type_query_in_mutation_result_exports);
|
|
21
|
-
var import_graphql = require("graphql"), import_utils = require("../utils.js");
|
|
22
|
-
const RULE_ID = "require-field-of-type-query-in-mutation-result", 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-field-of-type-query-in-mutation-result", rule = exports.rule = {
|
|
23
5
|
meta: {
|
|
24
6
|
type: "suggestion",
|
|
25
7
|
docs: {
|
|
@@ -66,13 +48,13 @@ const RULE_ID = "require-field-of-type-query-in-mutation-result", rule = {
|
|
|
66
48
|
schema: []
|
|
67
49
|
},
|
|
68
50
|
create(context) {
|
|
69
|
-
const schema = (0,
|
|
51
|
+
const schema = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), mutationType = schema.getMutationType(), queryType = schema.getQueryType();
|
|
70
52
|
return !mutationType || !queryType ? {} : {
|
|
71
53
|
[`:matches(ObjectTypeDefinition, ObjectTypeExtension)[name.value=${mutationType.name}] > FieldDefinition > .gqlType Name`](node) {
|
|
72
54
|
const typeName = node.value, graphQLType = schema.getType(typeName);
|
|
73
|
-
if ((0,
|
|
55
|
+
if (_graphql.isObjectType.call(void 0, graphQLType)) {
|
|
74
56
|
const { fields } = graphQLType.astNode;
|
|
75
|
-
fields
|
|
57
|
+
_optionalChain([fields, 'optionalAccess', _ => _.some, 'call', _2 => _2((field) => _utilsjs.getTypeName.call(void 0, field) === queryType.name)]) || context.report({
|
|
76
58
|
node,
|
|
77
59
|
message: `Mutation result type "${graphQLType.name}" must contain field of type "${queryType.name}"`
|
|
78
60
|
});
|
|
@@ -81,7 +63,6 @@ const RULE_ID = "require-field-of-type-query-in-mutation-result", rule = {
|
|
|
81
63
|
};
|
|
82
64
|
}
|
|
83
65
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
});
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
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 };
|
|
@@ -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;
|