@graphql-eslint/eslint-plugin 4.0.0-alpha-20230801163310-8bc4340 → 4.0.0-alpha-20230810160036-304c2c0
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/cjs/cache.js +10 -19
- package/cjs/configs/index.d.ts +42 -16
- package/cjs/configs/index.js +10 -19
- package/cjs/configs/operations-all.d.ts +4 -3
- package/cjs/configs/operations-all.js +5 -4
- package/cjs/configs/operations-recommended.d.ts +3 -1
- package/cjs/configs/operations-recommended.js +3 -1
- package/cjs/configs/schema-all.d.ts +6 -1
- package/cjs/configs/schema-all.js +5 -2
- package/cjs/configs/schema-recommended.d.ts +19 -1
- package/cjs/configs/schema-recommended.js +22 -2
- package/cjs/documents.js +17 -32
- package/cjs/estree-converter/converter.js +14 -27
- package/cjs/estree-converter/index.js +4 -7
- package/cjs/estree-converter/types.js +3 -5
- package/cjs/estree-converter/utils.d.ts +2 -3
- package/cjs/estree-converter/utils.js +15 -45
- package/cjs/flat-configs.d.ts +59 -12
- package/cjs/flat-configs.js +9 -14
- package/cjs/graphql-config.d.ts +4 -3
- package/cjs/graphql-config.js +23 -44
- package/cjs/index.d.ts +10 -4
- package/cjs/index.js +8 -16
- package/cjs/parser.d.ts +4 -3
- package/cjs/parser.js +38 -45
- package/cjs/processor.d.ts +5 -1
- package/cjs/processor.js +25 -57
- package/cjs/rules/alphabetize.d.ts +6 -16
- package/cjs/rules/alphabetize.js +60 -132
- package/cjs/rules/description-style.d.ts +4 -3
- package/cjs/rules/description-style.js +11 -18
- package/cjs/rules/graphql-js-validation.d.ts +4 -3
- package/cjs/rules/graphql-js-validation.js +151 -225
- package/cjs/rules/index.d.ts +15 -13
- package/cjs/rules/index.js +8 -45
- package/cjs/rules/input-name.d.ts +4 -3
- package/cjs/rules/input-name.js +43 -59
- package/cjs/rules/lone-executable-definition.d.ts +6 -5
- package/cjs/rules/lone-executable-definition.js +14 -28
- package/cjs/rules/match-document-filename.d.ts +4 -3
- package/cjs/rules/match-document-filename.js +39 -70
- package/cjs/rules/naming-convention.d.ts +4 -3
- package/cjs/rules/naming-convention.js +56 -74
- package/cjs/rules/no-anonymous-operations.d.ts +4 -3
- package/cjs/rules/no-anonymous-operations.js +11 -18
- package/cjs/rules/no-deprecated.d.ts +4 -3
- package/cjs/rules/no-deprecated.js +15 -29
- package/cjs/rules/no-duplicate-fields.d.ts +4 -3
- package/cjs/rules/no-duplicate-fields.js +13 -23
- package/cjs/rules/no-hashtag-description.d.ts +4 -3
- package/cjs/rules/no-hashtag-description.js +16 -29
- package/cjs/rules/no-one-place-fragments.d.ts +4 -3
- package/cjs/rules/no-one-place-fragments.js +17 -29
- package/cjs/rules/no-root-type.d.ts +4 -3
- package/cjs/rules/no-root-type.js +15 -25
- package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +4 -3
- package/cjs/rules/no-scalar-result-type-on-mutation.js +18 -30
- package/cjs/rules/no-typename-prefix.d.ts +4 -3
- package/cjs/rules/no-typename-prefix.js +26 -33
- package/cjs/rules/no-unreachable-types.d.ts +4 -3
- package/cjs/rules/no-unreachable-types.js +25 -47
- package/cjs/rules/no-unused-fields.d.ts +4 -3
- package/cjs/rules/no-unused-fields.js +24 -49
- package/cjs/rules/relay-arguments.d.ts +4 -3
- package/cjs/rules/relay-arguments.js +20 -43
- package/cjs/rules/relay-connection-types.d.ts +4 -3
- package/cjs/rules/relay-connection-types.js +14 -45
- package/cjs/rules/relay-edge-types.d.ts +4 -3
- package/cjs/rules/relay-edge-types.js +48 -99
- package/cjs/rules/relay-page-info.d.ts +4 -3
- package/cjs/rules/relay-page-info.js +21 -44
- package/cjs/rules/require-deprecation-date.d.ts +4 -3
- package/cjs/rules/require-deprecation-date.js +15 -31
- package/cjs/rules/require-deprecation-reason.d.ts +4 -3
- package/cjs/rules/require-deprecation-reason.js +12 -20
- package/cjs/rules/require-description.d.ts +4 -3
- package/cjs/rules/require-description.js +39 -65
- package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +4 -3
- package/cjs/rules/require-field-of-type-query-in-mutation-result.js +16 -31
- package/cjs/rules/require-import-fragment.d.ts +4 -3
- package/cjs/rules/require-import-fragment.js +22 -40
- package/cjs/rules/require-nullable-fields-with-oneof.d.ts +4 -3
- package/cjs/rules/require-nullable-fields-with-oneof.js +11 -22
- package/cjs/rules/require-nullable-result-in-root.d.ts +4 -3
- package/cjs/rules/require-nullable-result-in-root.js +34 -44
- package/cjs/rules/{require-id-when-available.d.ts → require-selections.d.ts} +4 -3
- package/cjs/rules/require-selections.js +198 -0
- package/cjs/rules/require-type-pattern-with-oneof.d.ts +4 -3
- package/cjs/rules/require-type-pattern-with-oneof.js +15 -23
- package/cjs/rules/selection-set-depth.d.ts +4 -3
- package/cjs/rules/selection-set-depth.js +18 -34
- package/cjs/rules/strict-id-in-types.d.ts +4 -3
- package/cjs/rules/strict-id-in-types.js +25 -43
- package/cjs/rules/{no-case-insensitive-enum-values-duplicates.d.ts → unique-enum-value-names.d.ts} +4 -3
- package/cjs/rules/{no-case-insensitive-enum-values-duplicates.js → unique-enum-value-names.js} +16 -21
- package/cjs/rules/unique-fragment-name.d.ts +3 -2
- package/cjs/rules/unique-fragment-name.js +24 -36
- package/cjs/rules/unique-operation-name.d.ts +4 -3
- package/cjs/rules/unique-operation-name.js +10 -12
- package/cjs/schema.d.ts +4 -3
- package/cjs/schema.js +14 -27
- package/cjs/siblings.d.ts +24 -8
- package/cjs/siblings.js +42 -82
- package/cjs/types.d.ts +74 -7
- package/cjs/types.js +3 -5
- package/cjs/utils.d.ts +3 -2
- package/cjs/utils.js +27 -44
- package/esm/cache.js +4 -8
- package/esm/{chunk-BMTV3EA2.js → chunk-U3TKCM4X.js} +1 -1
- package/esm/configs/index.d.mts +42 -16
- package/esm/configs/index.js +4 -4
- package/esm/configs/operations-all.d.mts +4 -3
- package/esm/configs/operations-all.js +6 -5
- package/esm/configs/operations-recommended.d.mts +3 -1
- package/esm/configs/operations-recommended.js +4 -2
- package/esm/configs/schema-all.d.mts +6 -1
- package/esm/configs/schema-all.js +6 -3
- package/esm/configs/schema-recommended.d.mts +19 -1
- package/esm/configs/schema-recommended.js +23 -3
- package/esm/configs/{relay.js → schema-relay.js} +4 -4
- package/esm/documents.js +10 -17
- package/esm/estree-converter/converter.js +9 -18
- package/esm/estree-converter/utils.d.mts +2 -3
- package/esm/estree-converter/utils.js +11 -38
- package/esm/flat-configs.d.mts +59 -12
- package/esm/flat-configs.js +4 -5
- package/esm/graphql-config.d.mts +4 -3
- package/esm/graphql-config.js +18 -34
- package/esm/index.d.mts +10 -4
- package/esm/index.js +1 -1
- package/esm/parser.d.mts +4 -3
- package/esm/parser.js +33 -27
- package/esm/processor.d.mts +5 -1
- package/esm/processor.js +21 -46
- package/esm/rules/alphabetize.d.mts +6 -16
- package/esm/rules/alphabetize.js +53 -118
- package/esm/rules/description-style.d.mts +4 -3
- package/esm/rules/description-style.js +7 -11
- package/esm/rules/graphql-js-validation.d.mts +4 -3
- package/esm/rules/graphql-js-validation.js +178 -218
- package/esm/rules/index.d.mts +15 -13
- package/esm/rules/index.js +5 -5
- package/esm/rules/input-name.d.mts +4 -3
- package/esm/rules/input-name.js +39 -52
- package/esm/rules/lone-executable-definition.d.mts +6 -5
- package/esm/rules/lone-executable-definition.js +10 -20
- package/esm/rules/match-document-filename.d.mts +4 -3
- package/esm/rules/match-document-filename.js +35 -61
- package/esm/rules/naming-convention.d.mts +4 -3
- package/esm/rules/naming-convention.js +51 -65
- package/esm/rules/no-anonymous-operations.d.mts +4 -3
- package/esm/rules/no-anonymous-operations.js +6 -9
- package/esm/rules/no-deprecated.d.mts +4 -3
- package/esm/rules/no-deprecated.js +10 -20
- package/esm/rules/no-duplicate-fields.d.mts +4 -3
- package/esm/rules/no-duplicate-fields.js +9 -16
- package/esm/rules/no-hashtag-description.d.mts +4 -3
- package/esm/rules/no-hashtag-description.js +11 -20
- package/esm/rules/no-one-place-fragments.d.mts +4 -3
- package/esm/rules/no-one-place-fragments.js +12 -19
- package/esm/rules/no-root-type.d.mts +4 -3
- package/esm/rules/no-root-type.js +11 -18
- package/esm/rules/no-scalar-result-type-on-mutation.d.mts +4 -3
- package/esm/rules/no-scalar-result-type-on-mutation.js +13 -21
- package/esm/rules/no-typename-prefix.d.mts +4 -3
- package/esm/rules/no-typename-prefix.js +22 -26
- package/esm/rules/no-unreachable-types.d.mts +4 -3
- package/esm/rules/no-unreachable-types.js +18 -33
- package/esm/rules/no-unused-fields.d.mts +4 -3
- package/esm/rules/no-unused-fields.js +19 -40
- package/esm/rules/relay-arguments.d.mts +4 -3
- package/esm/rules/relay-arguments.js +15 -34
- package/esm/rules/relay-connection-types.d.mts +4 -3
- package/esm/rules/relay-connection-types.js +10 -38
- package/esm/rules/relay-edge-types.d.mts +4 -3
- package/esm/rules/relay-edge-types.js +43 -89
- package/esm/rules/relay-page-info.d.mts +4 -3
- package/esm/rules/relay-page-info.js +16 -34
- package/esm/rules/require-deprecation-date.d.mts +4 -3
- package/esm/rules/require-deprecation-date.js +10 -22
- package/esm/rules/require-deprecation-reason.d.mts +4 -3
- package/esm/rules/require-deprecation-reason.js +7 -11
- package/esm/rules/require-description.d.mts +4 -3
- package/esm/rules/require-description.js +34 -55
- package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +4 -3
- package/esm/rules/require-field-of-type-query-in-mutation-result.js +11 -22
- package/esm/rules/require-import-fragment.d.mts +4 -3
- package/esm/rules/require-import-fragment.js +14 -26
- package/esm/rules/require-nullable-fields-with-oneof.d.mts +4 -3
- package/esm/rules/require-nullable-fields-with-oneof.js +6 -13
- package/esm/rules/require-nullable-result-in-root.d.mts +4 -3
- package/esm/rules/require-nullable-result-in-root.js +29 -35
- package/esm/rules/{require-id-when-available.d.mts → require-selections.d.mts} +4 -3
- package/esm/rules/{require-id-when-available.js → require-selections.js} +43 -80
- package/esm/rules/require-type-pattern-with-oneof.d.mts +4 -3
- package/esm/rules/require-type-pattern-with-oneof.js +11 -16
- package/esm/rules/selection-set-depth.d.mts +4 -3
- package/esm/rules/selection-set-depth.js +11 -20
- package/esm/rules/strict-id-in-types.d.mts +4 -3
- package/esm/rules/strict-id-in-types.js +20 -34
- package/esm/rules/{no-case-insensitive-enum-values-duplicates.d.mts → unique-enum-value-names.d.mts} +4 -3
- package/esm/rules/{no-case-insensitive-enum-values-duplicates.js → unique-enum-value-names.js} +8 -9
- package/esm/rules/unique-fragment-name.d.mts +3 -2
- package/esm/rules/unique-fragment-name.js +20 -27
- package/esm/rules/unique-operation-name.d.mts +4 -3
- package/esm/rules/unique-operation-name.js +6 -5
- package/esm/schema.d.mts +4 -3
- package/esm/schema.js +7 -12
- package/esm/siblings.d.mts +24 -8
- package/esm/siblings.js +37 -73
- package/esm/types.d.mts +74 -7
- package/esm/utils.d.mts +3 -2
- package/esm/utils.js +20 -31
- package/index.browser.mjs +5323 -0
- package/package.json +8 -13
- package/cjs/rules/require-id-when-available.js +0 -241
- package/cjs/types-8d5f4ae0.d.ts +0 -107
- package/esm/types-ace77d86.d.ts +0 -107
- /package/cjs/configs/{relay.d.ts → schema-relay.d.ts} +0 -0
- /package/cjs/configs/{relay.js → schema-relay.js} +0 -0
- /package/esm/configs/{relay.d.mts → schema-relay.d.mts} +0 -0
@@ -0,0 +1,198 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
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_selections_exports = {};
|
17
|
+
__export(require_selections_exports, {
|
18
|
+
rule: () => rule
|
19
|
+
});
|
20
|
+
module.exports = __toCommonJS(require_selections_exports);
|
21
|
+
var import_utils = require("@graphql-tools/utils"), import_graphql = require("graphql"), import_estree_converter = require("../estree-converter/index.js"), import_utils2 = require("../utils.js");
|
22
|
+
const RULE_ID = "require-selections", DEFAULT_ID_FIELD_NAME = "id", schema = {
|
23
|
+
definitions: {
|
24
|
+
asString: {
|
25
|
+
type: "string"
|
26
|
+
},
|
27
|
+
asArray: import_utils2.ARRAY_DEFAULT_OPTIONS
|
28
|
+
},
|
29
|
+
type: "array",
|
30
|
+
maxItems: 1,
|
31
|
+
items: {
|
32
|
+
type: "object",
|
33
|
+
additionalProperties: !1,
|
34
|
+
properties: {
|
35
|
+
fieldName: {
|
36
|
+
oneOf: [{ $ref: "#/definitions/asString" }, { $ref: "#/definitions/asArray" }],
|
37
|
+
default: DEFAULT_ID_FIELD_NAME
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}, rule = {
|
42
|
+
meta: {
|
43
|
+
type: "suggestion",
|
44
|
+
hasSuggestions: !0,
|
45
|
+
docs: {
|
46
|
+
category: "Operations",
|
47
|
+
description: "Enforce selecting specific fields when they are available on the GraphQL type.",
|
48
|
+
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
49
|
+
requiresSchema: !0,
|
50
|
+
requiresSiblings: !0,
|
51
|
+
examples: [
|
52
|
+
{
|
53
|
+
title: "Incorrect",
|
54
|
+
code: (
|
55
|
+
/* GraphQL */
|
56
|
+
`
|
57
|
+
# In your schema
|
58
|
+
type User {
|
59
|
+
id: ID!
|
60
|
+
name: String!
|
61
|
+
}
|
62
|
+
|
63
|
+
# Query
|
64
|
+
query {
|
65
|
+
user {
|
66
|
+
name
|
67
|
+
}
|
68
|
+
}
|
69
|
+
`
|
70
|
+
)
|
71
|
+
},
|
72
|
+
{
|
73
|
+
title: "Correct",
|
74
|
+
code: (
|
75
|
+
/* GraphQL */
|
76
|
+
`
|
77
|
+
# In your schema
|
78
|
+
type User {
|
79
|
+
id: ID!
|
80
|
+
name: String!
|
81
|
+
}
|
82
|
+
|
83
|
+
# Query
|
84
|
+
query {
|
85
|
+
user {
|
86
|
+
id
|
87
|
+
name
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
# Selecting \`id\` with an alias is also valid
|
92
|
+
query {
|
93
|
+
user {
|
94
|
+
id: name
|
95
|
+
}
|
96
|
+
}
|
97
|
+
`
|
98
|
+
)
|
99
|
+
}
|
100
|
+
],
|
101
|
+
recommended: !0
|
102
|
+
},
|
103
|
+
messages: {
|
104
|
+
[RULE_ID]: `Field{{ pluralSuffix }} {{ fieldName }} must be selected when it's available on a type.
|
105
|
+
Include it in your selection set{{ addition }}.`
|
106
|
+
},
|
107
|
+
schema
|
108
|
+
},
|
109
|
+
create(context) {
|
110
|
+
const schema2 = (0, import_utils2.requireGraphQLSchemaFromContext)(RULE_ID, context), siblings = (0, import_utils2.requireSiblingsOperations)(RULE_ID, context), { fieldName = DEFAULT_ID_FIELD_NAME } = context.options[0] || {}, idNames = (0, import_utils.asArray)(fieldName), selector = "OperationDefinition SelectionSet[parent.kind!=/(^OperationDefinition|InlineFragment)$/]", typeInfo = new import_graphql.TypeInfo(schema2);
|
111
|
+
function checkFragments(node) {
|
112
|
+
for (const selection of node.selections) {
|
113
|
+
if (selection.kind !== import_graphql.Kind.FRAGMENT_SPREAD)
|
114
|
+
continue;
|
115
|
+
const [foundSpread] = siblings.getFragment(selection.name.value);
|
116
|
+
if (!foundSpread)
|
117
|
+
continue;
|
118
|
+
const checkedFragmentSpreads = /* @__PURE__ */ new Set(), visitor = (0, import_graphql.visitWithTypeInfo)(typeInfo, {
|
119
|
+
SelectionSet(node2, key, _parent) {
|
120
|
+
const parent = _parent;
|
121
|
+
parent.kind === import_graphql.Kind.FRAGMENT_DEFINITION ? checkedFragmentSpreads.add(parent.name.value) : parent.kind !== import_graphql.Kind.INLINE_FRAGMENT && checkSelections(
|
122
|
+
node2,
|
123
|
+
typeInfo.getType(),
|
124
|
+
selection.loc.start,
|
125
|
+
parent,
|
126
|
+
checkedFragmentSpreads
|
127
|
+
);
|
128
|
+
}
|
129
|
+
});
|
130
|
+
(0, import_graphql.visit)(foundSpread.document, visitor);
|
131
|
+
}
|
132
|
+
}
|
133
|
+
function checkSelections(node, type, loc, parent, checkedFragmentSpreads = /* @__PURE__ */ new Set()) {
|
134
|
+
const rawType = (0, import_estree_converter.getBaseType)(type);
|
135
|
+
if (rawType instanceof import_graphql.GraphQLObjectType || rawType instanceof import_graphql.GraphQLInterfaceType)
|
136
|
+
checkFields(rawType);
|
137
|
+
else if (rawType instanceof import_graphql.GraphQLUnionType) {
|
138
|
+
for (const selection of node.selections)
|
139
|
+
if (selection.kind === import_graphql.Kind.INLINE_FRAGMENT) {
|
140
|
+
const t = rawType.getTypes().find((t2) => t2.name === selection.typeCondition.name.value);
|
141
|
+
t && checkFields(t);
|
142
|
+
}
|
143
|
+
}
|
144
|
+
function checkFields(rawType2) {
|
145
|
+
const fields = rawType2.getFields();
|
146
|
+
if (!idNames.some((name) => fields[name]))
|
147
|
+
return;
|
148
|
+
function hasIdField({ selections }) {
|
149
|
+
return selections.some((selection) => {
|
150
|
+
if (selection.kind === import_graphql.Kind.FIELD)
|
151
|
+
return selection.alias && idNames.includes(selection.alias.value) ? !0 : idNames.includes(selection.name.value);
|
152
|
+
if (selection.kind === import_graphql.Kind.INLINE_FRAGMENT)
|
153
|
+
return hasIdField(selection.selectionSet);
|
154
|
+
if (selection.kind === import_graphql.Kind.FRAGMENT_SPREAD) {
|
155
|
+
const [foundSpread] = siblings.getFragment(selection.name.value);
|
156
|
+
if (foundSpread) {
|
157
|
+
const fragmentSpread = foundSpread.document;
|
158
|
+
return checkedFragmentSpreads.add(fragmentSpread.name.value), hasIdField(fragmentSpread.selectionSet);
|
159
|
+
}
|
160
|
+
}
|
161
|
+
return !1;
|
162
|
+
});
|
163
|
+
}
|
164
|
+
const hasId = hasIdField(node);
|
165
|
+
if (checkFragments(node), hasId)
|
166
|
+
return;
|
167
|
+
const pluralSuffix = idNames.length > 1 ? "s" : "", fieldName2 = (0, import_utils2.englishJoinWords)(
|
168
|
+
idNames.map((name) => `\`${(parent.alias || parent.name).value}.${name}\``)
|
169
|
+
), addition = checkedFragmentSpreads.size === 0 ? "" : ` or add to used fragment${checkedFragmentSpreads.size > 1 ? "s" : ""} ${(0, import_utils2.englishJoinWords)([...checkedFragmentSpreads].map((name) => `\`${name}\``))}`, problem = {
|
170
|
+
loc,
|
171
|
+
messageId: RULE_ID,
|
172
|
+
data: {
|
173
|
+
pluralSuffix,
|
174
|
+
fieldName: fieldName2,
|
175
|
+
addition
|
176
|
+
}
|
177
|
+
};
|
178
|
+
"type" in node && (problem.suggest = idNames.map((idName) => ({
|
179
|
+
desc: `Add \`${idName}\` selection`,
|
180
|
+
fix: (fixer) => {
|
181
|
+
let insertNode = node.selections[0];
|
182
|
+
return insertNode = insertNode.kind === import_graphql.Kind.INLINE_FRAGMENT ? insertNode.selectionSet.selections[0] : insertNode, fixer.insertTextBefore(insertNode, `${idName} `);
|
183
|
+
}
|
184
|
+
}))), context.report(problem);
|
185
|
+
}
|
186
|
+
}
|
187
|
+
return {
|
188
|
+
[selector](node) {
|
189
|
+
const typeInfo2 = node.typeInfo();
|
190
|
+
typeInfo2.gqlType && checkSelections(node, typeInfo2.gqlType, node.loc.start, node.parent);
|
191
|
+
}
|
192
|
+
};
|
193
|
+
}
|
194
|
+
};
|
195
|
+
// Annotate the CommonJS export names for ESM import in node:
|
196
|
+
0 && (module.exports = {
|
197
|
+
rule
|
198
|
+
});
|
@@ -1,11 +1,12 @@
|
|
1
|
-
import {
|
2
|
-
import '@graphql-tools/utils';
|
1
|
+
import { GraphQLESLintRule } from '../types.js';
|
3
2
|
import 'eslint';
|
4
3
|
import 'estree';
|
5
4
|
import 'graphql';
|
6
|
-
import 'graphql-config';
|
7
5
|
import 'json-schema-to-ts';
|
6
|
+
import '../siblings.js';
|
7
|
+
import '@graphql-tools/utils';
|
8
8
|
import '../estree-converter/types.js';
|
9
|
+
import 'graphql-config';
|
9
10
|
|
10
11
|
declare const rule: GraphQLESLintRule;
|
11
12
|
|
@@ -5,25 +5,21 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
6
|
var __export = (target, all) => {
|
7
7
|
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable:
|
9
|
-
}
|
10
|
-
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
12
11
|
for (let key of __getOwnPropNames(from))
|
13
|
-
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
13
|
return to;
|
17
14
|
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
19
16
|
var require_type_pattern_with_oneof_exports = {};
|
20
17
|
__export(require_type_pattern_with_oneof_exports, {
|
21
18
|
rule: () => rule
|
22
19
|
});
|
23
20
|
module.exports = __toCommonJS(require_type_pattern_with_oneof_exports);
|
24
21
|
var import_utils = require("../utils.js");
|
25
|
-
const RULE_ID = "require-type-pattern-with-oneof"
|
26
|
-
const rule = {
|
22
|
+
const RULE_ID = "require-type-pattern-with-oneof", rule = {
|
27
23
|
meta: {
|
28
24
|
type: "suggestion",
|
29
25
|
docs: {
|
@@ -67,20 +63,16 @@ const rule = {
|
|
67
63
|
"Directive[name.value=oneOf][parent.kind=ObjectTypeDefinition]"({
|
68
64
|
parent
|
69
65
|
}) {
|
70
|
-
var _a;
|
71
66
|
const requiredFields = ["error", "ok"];
|
72
|
-
for (const fieldName of requiredFields)
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
});
|
82
|
-
}
|
83
|
-
}
|
67
|
+
for (const fieldName of requiredFields)
|
68
|
+
parent.fields?.some((field) => field.name.value === fieldName) || context.report({
|
69
|
+
node: parent.name,
|
70
|
+
messageId: RULE_ID,
|
71
|
+
data: {
|
72
|
+
nodeName: (0, import_utils.displayNodeName)(parent),
|
73
|
+
fieldName
|
74
|
+
}
|
75
|
+
});
|
84
76
|
}
|
85
77
|
};
|
86
78
|
}
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
2
|
-
import {
|
3
|
-
import '@graphql-tools/utils';
|
2
|
+
import { GraphQLESLintRule } from '../types.js';
|
4
3
|
import 'eslint';
|
5
4
|
import 'estree';
|
6
5
|
import 'graphql';
|
7
|
-
import '
|
6
|
+
import '../siblings.js';
|
7
|
+
import '@graphql-tools/utils';
|
8
8
|
import '../estree-converter/types.js';
|
9
|
+
import 'graphql-config';
|
9
10
|
|
10
11
|
declare const schema: {
|
11
12
|
readonly type: "array";
|
@@ -3,18 +3,14 @@ var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
7
|
var __export = (target, all) => {
|
9
8
|
for (var name in all)
|
10
|
-
__defProp(target, name, { get: all[name], enumerable:
|
11
|
-
}
|
12
|
-
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
14
12
|
for (let key of __getOwnPropNames(from))
|
15
|
-
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
17
|
-
}
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
18
14
|
return to;
|
19
15
|
};
|
20
16
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
@@ -22,26 +18,22 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
22
18
|
// file that has been converted to a CommonJS file using a Babel-
|
23
19
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
20
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable:
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
26
22
|
mod
|
27
|
-
));
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
23
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
29
24
|
var selection_set_depth_exports = {};
|
30
25
|
__export(selection_set_depth_exports, {
|
31
26
|
rule: () => rule
|
32
27
|
});
|
33
28
|
module.exports = __toCommonJS(selection_set_depth_exports);
|
34
|
-
var import_graphql = require("graphql");
|
35
|
-
|
36
|
-
var import_utils = require("../utils.js");
|
37
|
-
const RULE_ID = "selection-set-depth";
|
38
|
-
const schema = {
|
29
|
+
var import_graphql = require("graphql"), import_graphql_depth_limit = __toESM(require("graphql-depth-limit")), import_utils = require("../utils.js");
|
30
|
+
const RULE_ID = "selection-set-depth", schema = {
|
39
31
|
type: "array",
|
40
32
|
minItems: 1,
|
41
33
|
maxItems: 1,
|
42
34
|
items: {
|
43
35
|
type: "object",
|
44
|
-
additionalProperties:
|
36
|
+
additionalProperties: !1,
|
45
37
|
required: ["maxDepth"],
|
46
38
|
properties: {
|
47
39
|
maxDepth: {
|
@@ -50,16 +42,15 @@ const schema = {
|
|
50
42
|
ignore: import_utils.ARRAY_DEFAULT_OPTIONS
|
51
43
|
}
|
52
44
|
}
|
53
|
-
}
|
54
|
-
const rule = {
|
45
|
+
}, rule = {
|
55
46
|
meta: {
|
56
47
|
type: "suggestion",
|
57
|
-
hasSuggestions:
|
48
|
+
hasSuggestions: !0,
|
58
49
|
docs: {
|
59
50
|
category: "Operations",
|
60
51
|
description: "Limit the complexity of the GraphQL operations solely by their depth. Based on [graphql-depth-limit](https://npmjs.com/package/graphql-depth-limit).",
|
61
52
|
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
62
|
-
requiresSiblings:
|
53
|
+
requiresSiblings: !0,
|
63
54
|
examples: [
|
64
55
|
{
|
65
56
|
title: "Incorrect",
|
@@ -101,7 +92,7 @@ const rule = {
|
|
101
92
|
`
|
102
93
|
}
|
103
94
|
],
|
104
|
-
recommended:
|
95
|
+
recommended: !0,
|
105
96
|
configOptions: [{ maxDepth: 7 }]
|
106
97
|
},
|
107
98
|
schema
|
@@ -115,23 +106,18 @@ const rule = {
|
|
115
106
|
`Rule "${RULE_ID}" works best with siblings operations loaded. For more info: https://bit.ly/graphql-eslint-operations`
|
116
107
|
);
|
117
108
|
}
|
118
|
-
const { maxDepth, ignore = [] } = context.options[0];
|
119
|
-
const checkFn = (0, import_graphql_depth_limit.default)(maxDepth, { ignore });
|
109
|
+
const { maxDepth, ignore = [] } = context.options[0], checkFn = (0, import_graphql_depth_limit.default)(maxDepth, { ignore });
|
120
110
|
return {
|
121
111
|
"OperationDefinition, FragmentDefinition"(node) {
|
122
112
|
try {
|
123
|
-
const rawNode = node.rawNode()
|
124
|
-
const fragmentsInUse = siblings ? siblings.getFragmentsInUse(rawNode) : [];
|
125
|
-
const document = {
|
113
|
+
const rawNode = node.rawNode(), fragmentsInUse = siblings ? siblings.getFragmentsInUse(rawNode) : [], document = {
|
126
114
|
kind: import_graphql.Kind.DOCUMENT,
|
127
115
|
definitions: [rawNode, ...fragmentsInUse]
|
128
116
|
};
|
129
117
|
checkFn({
|
130
118
|
getDocument: () => document,
|
131
119
|
reportError(error) {
|
132
|
-
const { line, column } = error.locations[0]
|
133
|
-
const ancestors = context.getAncestors();
|
134
|
-
const token = ancestors[0].tokens.find(
|
120
|
+
const { line, column } = error.locations[0], token = context.getAncestors()[0].tokens.find(
|
135
121
|
(token2) => token2.loc.start.line === line && token2.loc.start.column === column - 1
|
136
122
|
);
|
137
123
|
context.report({
|
@@ -146,9 +132,7 @@ const rule = {
|
|
146
132
|
{
|
147
133
|
desc: "Remove selections",
|
148
134
|
fix(fixer) {
|
149
|
-
const
|
150
|
-
const foundNode = sourceCode.getNodeByRangeIndex(token.range[0]);
|
151
|
-
const parentNode = foundNode.parent.parent;
|
135
|
+
const foundNode = context.getSourceCode().getNodeByRangeIndex(token.range[0]), parentNode = foundNode.parent.parent;
|
152
136
|
return fixer.remove(
|
153
137
|
foundNode.kind === "Name" ? parentNode.parent : parentNode
|
154
138
|
);
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { FromSchema } from 'json-schema-to-ts';
|
2
|
-
import {
|
3
|
-
import '@graphql-tools/utils';
|
2
|
+
import { GraphQLESLintRule } from '../types.js';
|
4
3
|
import 'eslint';
|
5
4
|
import 'estree';
|
6
5
|
import 'graphql';
|
7
|
-
import '
|
6
|
+
import '../siblings.js';
|
7
|
+
import '@graphql-tools/utils';
|
8
8
|
import '../estree-converter/types.js';
|
9
|
+
import 'graphql-config';
|
9
10
|
|
10
11
|
declare const schema: {
|
11
12
|
readonly type: "array";
|
@@ -5,31 +5,26 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
6
|
var __export = (target, all) => {
|
7
7
|
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable:
|
9
|
-
}
|
10
|
-
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
12
11
|
for (let key of __getOwnPropNames(from))
|
13
|
-
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
13
|
return to;
|
17
14
|
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
19
16
|
var strict_id_in_types_exports = {};
|
20
17
|
__export(strict_id_in_types_exports, {
|
21
18
|
rule: () => rule
|
22
19
|
});
|
23
20
|
module.exports = __toCommonJS(strict_id_in_types_exports);
|
24
|
-
var import_graphql = require("graphql");
|
25
|
-
|
26
|
-
const RULE_ID = "strict-id-in-types";
|
27
|
-
const schema = {
|
21
|
+
var import_graphql = require("graphql"), import_utils = require("../utils.js");
|
22
|
+
const RULE_ID = "strict-id-in-types", schema = {
|
28
23
|
type: "array",
|
29
24
|
maxItems: 1,
|
30
25
|
items: {
|
31
26
|
type: "object",
|
32
|
-
additionalProperties:
|
27
|
+
additionalProperties: !1,
|
33
28
|
properties: {
|
34
29
|
acceptedIdNames: {
|
35
30
|
...import_utils.ARRAY_DEFAULT_OPTIONS,
|
@@ -41,7 +36,7 @@ const schema = {
|
|
41
36
|
},
|
42
37
|
exceptions: {
|
43
38
|
type: "object",
|
44
|
-
additionalProperties:
|
39
|
+
additionalProperties: !1,
|
45
40
|
properties: {
|
46
41
|
types: {
|
47
42
|
...import_utils.ARRAY_DEFAULT_OPTIONS,
|
@@ -55,16 +50,15 @@ const schema = {
|
|
55
50
|
}
|
56
51
|
}
|
57
52
|
}
|
58
|
-
}
|
59
|
-
const rule = {
|
53
|
+
}, rule = {
|
60
54
|
meta: {
|
61
55
|
type: "suggestion",
|
62
56
|
docs: {
|
63
57
|
description: "Requires output types to have one unique identifier unless they do not have a logical one. Exceptions can be used to ignore output types that do not have unique identifiers.",
|
64
58
|
category: "Schema",
|
65
|
-
recommended:
|
59
|
+
recommended: !0,
|
66
60
|
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
|
67
|
-
requiresSchema:
|
61
|
+
requiresSchema: !0,
|
68
62
|
examples: [
|
69
63
|
{
|
70
64
|
title: "Incorrect",
|
@@ -141,34 +135,22 @@ const rule = {
|
|
141
135
|
acceptedIdTypes: ["ID"],
|
142
136
|
exceptions: {},
|
143
137
|
...context.options[0]
|
144
|
-
};
|
145
|
-
const schema2 = (0, import_utils.requireGraphQLSchemaFromContext)(RULE_ID, context);
|
146
|
-
const rootTypeNames = [
|
147
|
-
schema2.getQueryType(),
|
148
|
-
schema2.getMutationType(),
|
149
|
-
schema2.getSubscriptionType()
|
150
|
-
].filter(import_utils.truthy).map((type) => type.name);
|
151
|
-
const selector = `ObjectTypeDefinition[name.value!=/^(${rootTypeNames.join("|")})$/]`;
|
138
|
+
}, schema2 = (0, import_utils.requireGraphQLSchemaFromContext)(RULE_ID, context);
|
152
139
|
return {
|
153
|
-
[
|
154
|
-
|
140
|
+
[`ObjectTypeDefinition[name.value!=/^(${[
|
141
|
+
schema2.getQueryType(),
|
142
|
+
schema2.getMutationType(),
|
143
|
+
schema2.getSubscriptionType()
|
144
|
+
].filter(import_utils.truthy).map((type) => type.name).join("|")})$/]`](node) {
|
155
145
|
const typeName = node.name.value;
|
156
|
-
|
157
|
-
if (shouldIgnoreNode) {
|
146
|
+
if (options.exceptions.types?.includes(typeName) || options.exceptions.suffixes?.some((suffix) => typeName.endsWith(suffix)))
|
158
147
|
return;
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
isValidIdType = options.acceptedIdTypes.includes(fieldNode.type.type.name.value);
|
166
|
-
}
|
167
|
-
return isValidIdName && isValidIdType;
|
168
|
-
});
|
169
|
-
if ((validIds == null ? void 0 : validIds.length) !== 1) {
|
170
|
-
const pluralNamesSuffix = options.acceptedIdNames.length > 1 ? "s" : "";
|
171
|
-
const pluralTypesSuffix = options.acceptedIdTypes.length > 1 ? "s" : "";
|
148
|
+
if (node.fields?.filter((field) => {
|
149
|
+
const fieldNode = field.rawNode(), isValidIdName = options.acceptedIdNames.includes(fieldNode.name.value);
|
150
|
+
let isValidIdType = !1;
|
151
|
+
return fieldNode.type.kind === import_graphql.Kind.NON_NULL_TYPE && fieldNode.type.type.kind === import_graphql.Kind.NAMED_TYPE && (isValidIdType = options.acceptedIdTypes.includes(fieldNode.type.type.name.value)), isValidIdName && isValidIdType;
|
152
|
+
})?.length !== 1) {
|
153
|
+
const pluralNamesSuffix = options.acceptedIdNames.length > 1 ? "s" : "", pluralTypesSuffix = options.acceptedIdTypes.length > 1 ? "s" : "";
|
172
154
|
context.report({
|
173
155
|
node: node.name,
|
174
156
|
message: `${(0, import_utils.displayNodeName)(node)} must have exactly one non-nullable unique identifier.
|
package/cjs/rules/{no-case-insensitive-enum-values-duplicates.d.ts → unique-enum-value-names.d.ts}
RENAMED
@@ -1,11 +1,12 @@
|
|
1
|
-
import {
|
2
|
-
import '@graphql-tools/utils';
|
1
|
+
import { GraphQLESLintRule } from '../types.js';
|
3
2
|
import 'eslint';
|
4
3
|
import 'estree';
|
5
4
|
import 'graphql';
|
6
|
-
import 'graphql-config';
|
7
5
|
import 'json-schema-to-ts';
|
6
|
+
import '../siblings.js';
|
7
|
+
import '@graphql-tools/utils';
|
8
8
|
import '../estree-converter/types.js';
|
9
|
+
import 'graphql-config';
|
9
10
|
|
10
11
|
declare const rule: GraphQLESLintRule;
|
11
12
|
|
package/cjs/rules/{no-case-insensitive-enum-values-duplicates.js → unique-enum-value-names.js}
RENAMED
@@ -5,33 +5,30 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
6
|
var __export = (target, all) => {
|
7
7
|
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable:
|
9
|
-
}
|
10
|
-
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
12
11
|
for (let key of __getOwnPropNames(from))
|
13
|
-
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
13
|
return to;
|
17
14
|
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
19
|
-
var
|
20
|
-
__export(
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
16
|
+
var unique_enum_value_names_exports = {};
|
17
|
+
__export(unique_enum_value_names_exports, {
|
21
18
|
rule: () => rule
|
22
19
|
});
|
23
|
-
module.exports = __toCommonJS(
|
24
|
-
var import_graphql = require("graphql");
|
25
|
-
var import_utils = require("../utils.js");
|
20
|
+
module.exports = __toCommonJS(unique_enum_value_names_exports);
|
21
|
+
var import_graphql = require("graphql"), import_utils = require("../utils.js");
|
26
22
|
const rule = {
|
27
23
|
meta: {
|
28
24
|
type: "suggestion",
|
29
|
-
hasSuggestions:
|
25
|
+
hasSuggestions: !0,
|
30
26
|
docs: {
|
31
|
-
url: "https://the-guild.dev/graphql/eslint/rules/
|
27
|
+
url: "https://the-guild.dev/graphql/eslint/rules/unique-enum-value-names",
|
32
28
|
category: "Schema",
|
33
|
-
recommended:
|
34
|
-
description:
|
29
|
+
recommended: !0,
|
30
|
+
description: `A GraphQL enum type is only valid if all its values are uniquely named.
|
31
|
+
> This rule disallows case-insensitive enum values duplicates too.`,
|
35
32
|
examples: [
|
36
33
|
{
|
37
34
|
title: "Incorrect",
|
@@ -64,11 +61,9 @@ const rule = {
|
|
64
61
|
schema: []
|
65
62
|
},
|
66
63
|
create(context) {
|
67
|
-
const selector = [import_graphql.Kind.ENUM_TYPE_DEFINITION, import_graphql.Kind.ENUM_TYPE_EXTENSION].join(",");
|
68
64
|
return {
|
69
|
-
[
|
70
|
-
|
71
|
-
const duplicates = (_a = node.values) == null ? void 0 : _a.filter(
|
65
|
+
[[import_graphql.Kind.ENUM_TYPE_DEFINITION, import_graphql.Kind.ENUM_TYPE_EXTENSION].join(",")](node) {
|
66
|
+
const duplicates = node.values?.filter(
|
72
67
|
(item, index, array) => array.findIndex((v) => v.name.value.toLowerCase() === item.name.value.toLowerCase()) !== index
|
73
68
|
);
|
74
69
|
for (const duplicate of duplicates || []) {
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { ExecutableDefinitionNode } from 'graphql';
|
2
2
|
import { GraphQLESTreeNode } from '../estree-converter/types.js';
|
3
|
-
import {
|
3
|
+
import { GraphQLESLintRuleContext, GraphQLESLintRule } from '../types.js';
|
4
4
|
import 'eslint';
|
5
5
|
import 'estree';
|
6
|
+
import 'json-schema-to-ts';
|
7
|
+
import '../siblings.js';
|
6
8
|
import '@graphql-tools/utils';
|
7
9
|
import 'graphql-config';
|
8
|
-
import 'json-schema-to-ts';
|
9
10
|
|
10
11
|
declare const checkNode: (context: GraphQLESLintRuleContext, node: GraphQLESTreeNode<ExecutableDefinitionNode>, ruleId: string) => void;
|
11
12
|
declare const rule: GraphQLESLintRule;
|