@graphql-eslint/eslint-plugin 4.0.0-alpha-20220821140530-e968cfc → 4.0.0-alpha-20230801163310-8bc4340
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +21 -0
- package/README.md +13 -253
- package/cjs/cache.d.ts +12 -0
- package/cjs/cache.js +62 -0
- package/cjs/configs/index.d.ts +148 -0
- package/cjs/configs/index.js +49 -0
- package/cjs/configs/operations-all.d.ts +22 -0
- package/cjs/configs/operations-all.js +27 -0
- package/cjs/configs/operations-recommended.d.ts +52 -0
- package/{configs/operations-recommended.json → cjs/configs/operations-recommended.js} +16 -14
- package/cjs/configs/relay.d.ts +12 -0
- package/{configs/relay.json → cjs/configs/relay.js} +6 -4
- package/cjs/configs/schema-all.d.ts +19 -0
- package/cjs/configs/schema-all.js +21 -0
- package/cjs/configs/schema-recommended.d.ts +49 -0
- package/{configs/schema-recommended.json → cjs/configs/schema-recommended.js} +19 -20
- package/cjs/documents.d.ts +6 -0
- package/cjs/documents.js +81 -0
- package/cjs/estree-converter/converter.d.ts +8 -0
- package/cjs/estree-converter/converter.js +83 -0
- package/cjs/estree-converter/index.d.ts +8 -0
- package/cjs/estree-converter/index.js +26 -0
- package/cjs/estree-converter/types.d.ts +42 -0
- package/cjs/estree-converter/types.js +16 -0
- package/cjs/estree-converter/utils.d.ts +18 -0
- package/cjs/estree-converter/utils.js +135 -0
- package/cjs/flat-configs.d.ts +260 -0
- package/cjs/flat-configs.js +60 -0
- package/cjs/graphql-config.d.ts +13 -0
- package/cjs/graphql-config.js +86 -0
- package/cjs/index.d.ts +22 -0
- package/cjs/index.js +49 -0
- package/cjs/parser.d.ts +12 -0
- package/cjs/parser.js +103 -0
- package/cjs/processor.d.ts +9 -0
- package/cjs/processor.js +127 -0
- package/cjs/rules/alphabetize.d.ts +84 -0
- package/cjs/rules/alphabetize.js +395 -0
- package/cjs/rules/description-style.d.ts +28 -0
- package/cjs/rules/description-style.js +109 -0
- package/cjs/rules/graphql-js-validation.d.ts +12 -0
- package/cjs/rules/graphql-js-validation.js +669 -0
- package/cjs/rules/index.d.ts +125 -0
- package/cjs/rules/index.js +99 -0
- package/cjs/rules/input-name.d.ts +43 -0
- package/cjs/rules/input-name.js +170 -0
- package/cjs/rules/lone-executable-definition.d.ts +34 -0
- package/cjs/rules/lone-executable-definition.js +119 -0
- package/cjs/rules/match-document-filename.d.ts +80 -0
- package/cjs/rules/match-document-filename.js +282 -0
- package/cjs/rules/naming-convention.d.ts +107 -0
- package/cjs/rules/naming-convention.js +434 -0
- package/cjs/rules/no-anonymous-operations.d.ts +12 -0
- package/cjs/rules/no-anonymous-operations.js +98 -0
- package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
- package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +96 -0
- package/cjs/rules/no-deprecated.d.ts +12 -0
- package/cjs/rules/no-deprecated.js +157 -0
- package/cjs/rules/no-duplicate-fields.d.ts +12 -0
- package/cjs/rules/no-duplicate-fields.js +146 -0
- package/cjs/rules/no-hashtag-description.d.ts +13 -0
- package/cjs/rules/no-hashtag-description.js +140 -0
- package/cjs/rules/no-one-place-fragments.d.ts +12 -0
- package/cjs/rules/no-one-place-fragments.js +113 -0
- package/cjs/rules/no-root-type.d.ts +33 -0
- package/cjs/rules/no-root-type.js +113 -0
- package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
- package/cjs/rules/no-scalar-result-type-on-mutation.js +100 -0
- package/cjs/rules/no-typename-prefix.d.ts +12 -0
- package/cjs/rules/no-typename-prefix.js +98 -0
- package/cjs/rules/no-unreachable-types.d.ts +12 -0
- package/cjs/rules/no-unreachable-types.js +199 -0
- package/cjs/rules/no-unused-fields.d.ts +12 -0
- package/cjs/rules/no-unused-fields.js +157 -0
- package/cjs/rules/relay-arguments.d.ts +29 -0
- package/cjs/rules/relay-arguments.js +149 -0
- package/cjs/rules/relay-connection-types.d.ts +13 -0
- package/cjs/rules/relay-connection-types.js +142 -0
- package/cjs/rules/relay-edge-types.d.ts +39 -0
- package/cjs/rules/relay-edge-types.js +212 -0
- package/cjs/rules/relay-page-info.d.ts +12 -0
- package/cjs/rules/relay-page-info.js +121 -0
- package/cjs/rules/require-deprecation-date.d.ts +26 -0
- package/cjs/rules/require-deprecation-date.js +164 -0
- package/cjs/rules/require-deprecation-reason.d.ts +12 -0
- package/cjs/rules/require-deprecation-reason.js +93 -0
- package/cjs/rules/require-description.d.ts +23 -0
- package/cjs/rules/require-description.js +205 -0
- package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +12 -0
- package/cjs/rules/require-field-of-type-query-in-mutation-result.js +102 -0
- package/cjs/rules/require-id-when-available.d.ts +44 -0
- package/cjs/rules/require-id-when-available.js +241 -0
- package/cjs/rules/require-import-fragment.d.ts +12 -0
- package/cjs/rules/require-import-fragment.js +166 -0
- package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
- package/cjs/rules/require-nullable-fields-with-oneof.js +92 -0
- package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
- package/cjs/rules/require-nullable-result-in-root.js +109 -0
- package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
- package/cjs/rules/require-type-pattern-with-oneof.js +91 -0
- package/cjs/rules/selection-set-depth.d.ts +36 -0
- package/cjs/rules/selection-set-depth.js +175 -0
- package/cjs/rules/strict-id-in-types.d.ts +65 -0
- package/cjs/rules/strict-id-in-types.js +186 -0
- package/cjs/rules/unique-fragment-name.d.ts +13 -0
- package/cjs/rules/unique-fragment-name.js +118 -0
- package/cjs/rules/unique-operation-name.d.ts +12 -0
- package/cjs/rules/unique-operation-name.js +95 -0
- package/cjs/schema.d.ts +12 -0
- package/cjs/schema.js +65 -0
- package/cjs/siblings.d.ts +8 -0
- package/cjs/siblings.js +136 -0
- package/cjs/types-8d5f4ae0.d.ts +107 -0
- package/cjs/types.d.ts +8 -0
- package/cjs/types.js +16 -0
- package/cjs/utils.d.ts +44 -0
- package/cjs/utils.js +205 -0
- package/esm/cache.d.mts +12 -0
- package/esm/cache.js +29 -0
- package/esm/chunk-BMTV3EA2.js +8 -0
- package/esm/configs/index.d.mts +148 -0
- package/esm/configs/index.js +16 -0
- package/esm/configs/operations-all.d.mts +22 -0
- package/esm/configs/operations-all.js +34 -0
- package/esm/configs/operations-recommended.d.mts +52 -0
- package/esm/configs/operations-recommended.js +59 -0
- package/esm/configs/relay.d.mts +12 -0
- package/esm/configs/relay.js +18 -0
- package/esm/configs/schema-all.d.mts +19 -0
- package/esm/configs/schema-all.js +28 -0
- package/esm/configs/schema-recommended.d.mts +49 -0
- package/esm/configs/schema-recommended.js +55 -0
- package/esm/documents.d.mts +6 -0
- package/esm/documents.js +48 -0
- package/esm/estree-converter/converter.d.mts +8 -0
- package/esm/estree-converter/converter.js +65 -0
- package/esm/estree-converter/index.d.mts +8 -0
- package/esm/estree-converter/index.js +3 -0
- package/esm/estree-converter/types.d.mts +42 -0
- package/esm/estree-converter/types.js +0 -0
- package/esm/estree-converter/utils.d.mts +18 -0
- package/esm/estree-converter/utils.js +114 -0
- package/esm/flat-configs.d.mts +260 -0
- package/esm/flat-configs.js +37 -0
- package/esm/graphql-config.d.mts +13 -0
- package/esm/graphql-config.js +55 -0
- package/esm/index.d.mts +22 -0
- package/esm/index.js +18 -0
- package/esm/package.json +1 -0
- package/esm/parser.d.mts +12 -0
- package/esm/parser.js +70 -0
- package/esm/processor.d.mts +9 -0
- package/esm/processor.js +106 -0
- package/esm/rules/alphabetize.d.mts +84 -0
- package/esm/rules/alphabetize.js +364 -0
- package/esm/rules/description-style.d.mts +28 -0
- package/esm/rules/description-style.js +86 -0
- package/esm/rules/graphql-js-validation.d.mts +12 -0
- package/esm/rules/graphql-js-validation.js +658 -0
- package/esm/rules/index.d.mts +125 -0
- package/esm/rules/index.js +76 -0
- package/esm/rules/input-name.d.mts +43 -0
- package/esm/rules/input-name.js +149 -0
- package/esm/rules/lone-executable-definition.d.mts +34 -0
- package/esm/rules/lone-executable-definition.js +96 -0
- package/esm/rules/match-document-filename.d.mts +80 -0
- package/esm/rules/match-document-filename.js +263 -0
- package/esm/rules/naming-convention.d.mts +107 -0
- package/esm/rules/naming-convention.js +417 -0
- package/esm/rules/no-anonymous-operations.d.mts +12 -0
- package/esm/rules/no-anonymous-operations.js +75 -0
- package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
- package/esm/rules/no-case-insensitive-enum-values-duplicates.js +73 -0
- package/esm/rules/no-deprecated.d.mts +12 -0
- package/esm/rules/no-deprecated.js +134 -0
- package/esm/rules/no-duplicate-fields.d.mts +12 -0
- package/esm/rules/no-duplicate-fields.js +123 -0
- package/esm/rules/no-hashtag-description.d.mts +13 -0
- package/esm/rules/no-hashtag-description.js +116 -0
- package/esm/rules/no-one-place-fragments.d.mts +12 -0
- package/esm/rules/no-one-place-fragments.js +90 -0
- package/esm/rules/no-root-type.d.mts +33 -0
- package/esm/rules/no-root-type.js +90 -0
- package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
- package/esm/rules/no-scalar-result-type-on-mutation.js +77 -0
- package/esm/rules/no-typename-prefix.d.mts +12 -0
- package/esm/rules/no-typename-prefix.js +75 -0
- package/esm/rules/no-unreachable-types.d.mts +12 -0
- package/esm/rules/no-unreachable-types.js +171 -0
- package/esm/rules/no-unused-fields.d.mts +12 -0
- package/esm/rules/no-unused-fields.js +134 -0
- package/esm/rules/relay-arguments.d.mts +29 -0
- package/esm/rules/relay-arguments.js +126 -0
- package/esm/rules/relay-connection-types.d.mts +13 -0
- package/esm/rules/relay-connection-types.js +118 -0
- package/esm/rules/relay-edge-types.d.mts +39 -0
- package/esm/rules/relay-edge-types.js +194 -0
- package/esm/rules/relay-page-info.d.mts +12 -0
- package/esm/rules/relay-page-info.js +98 -0
- package/esm/rules/require-deprecation-date.d.mts +26 -0
- package/esm/rules/require-deprecation-date.js +141 -0
- package/esm/rules/require-deprecation-reason.d.mts +12 -0
- package/esm/rules/require-deprecation-reason.js +70 -0
- package/esm/rules/require-description.d.mts +23 -0
- package/esm/rules/require-description.js +186 -0
- package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +12 -0
- package/esm/rules/require-field-of-type-query-in-mutation-result.js +79 -0
- package/esm/rules/require-id-when-available.d.mts +44 -0
- package/esm/rules/require-id-when-available.js +231 -0
- package/esm/rules/require-import-fragment.d.mts +12 -0
- package/esm/rules/require-import-fragment.js +133 -0
- package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
- package/esm/rules/require-nullable-fields-with-oneof.js +69 -0
- package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
- package/esm/rules/require-nullable-result-in-root.js +86 -0
- package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
- package/esm/rules/require-type-pattern-with-oneof.js +68 -0
- package/esm/rules/selection-set-depth.d.mts +36 -0
- package/esm/rules/selection-set-depth.js +142 -0
- package/esm/rules/strict-id-in-types.d.mts +65 -0
- package/esm/rules/strict-id-in-types.js +169 -0
- package/esm/rules/unique-fragment-name.d.mts +13 -0
- package/esm/rules/unique-fragment-name.js +94 -0
- package/esm/rules/unique-operation-name.d.mts +12 -0
- package/esm/rules/unique-operation-name.js +72 -0
- package/esm/schema.d.mts +12 -0
- package/esm/schema.js +32 -0
- package/esm/siblings.d.mts +8 -0
- package/esm/siblings.js +116 -0
- package/esm/types-ace77d86.d.ts +107 -0
- package/esm/types.d.mts +8 -0
- package/esm/types.js +0 -0
- package/esm/utils.d.mts +44 -0
- package/esm/utils.js +155 -0
- package/package.json +47 -34
- package/configs/base.json +0 -4
- package/configs/operations-all.json +0 -24
- package/configs/schema-all.json +0 -26
- package/docs/README.md +0 -75
- package/docs/custom-rules.md +0 -148
- package/docs/deprecated-rules.md +0 -21
- package/docs/parser-options.md +0 -85
- package/docs/parser.md +0 -49
- package/docs/rules/alphabetize.md +0 -178
- package/docs/rules/description-style.md +0 -54
- package/docs/rules/executable-definitions.md +0 -17
- package/docs/rules/fields-on-correct-type.md +0 -17
- package/docs/rules/fragments-on-composite-type.md +0 -17
- package/docs/rules/input-name.md +0 -76
- package/docs/rules/known-argument-names.md +0 -17
- package/docs/rules/known-directives.md +0 -44
- package/docs/rules/known-fragment-names.md +0 -69
- package/docs/rules/known-type-names.md +0 -17
- package/docs/rules/lone-anonymous-operation.md +0 -17
- package/docs/rules/lone-schema-definition.md +0 -17
- package/docs/rules/match-document-filename.md +0 -156
- package/docs/rules/naming-convention.md +0 -300
- package/docs/rules/no-anonymous-operations.md +0 -39
- package/docs/rules/no-case-insensitive-enum-values-duplicates.md +0 -43
- package/docs/rules/no-deprecated.md +0 -85
- package/docs/rules/no-duplicate-fields.md +0 -65
- package/docs/rules/no-fragment-cycles.md +0 -17
- package/docs/rules/no-hashtag-description.md +0 -59
- package/docs/rules/no-root-type.md +0 -53
- package/docs/rules/no-scalar-result-type-on-mutation.md +0 -37
- package/docs/rules/no-typename-prefix.md +0 -39
- package/docs/rules/no-undefined-variables.md +0 -17
- package/docs/rules/no-unreachable-types.md +0 -49
- package/docs/rules/no-unused-fields.md +0 -62
- package/docs/rules/no-unused-fragments.md +0 -17
- package/docs/rules/no-unused-variables.md +0 -17
- package/docs/rules/one-field-subscriptions.md +0 -17
- package/docs/rules/overlapping-fields-can-be-merged.md +0 -17
- package/docs/rules/possible-fragment-spread.md +0 -17
- package/docs/rules/possible-type-extension.md +0 -15
- package/docs/rules/provided-required-arguments.md +0 -17
- package/docs/rules/relay-arguments.md +0 -57
- package/docs/rules/relay-connection-types.md +0 -42
- package/docs/rules/relay-edge-types.md +0 -56
- package/docs/rules/relay-page-info.md +0 -32
- package/docs/rules/require-deprecation-date.md +0 -56
- package/docs/rules/require-deprecation-reason.md +0 -47
- package/docs/rules/require-description.md +0 -115
- package/docs/rules/require-field-of-type-query-in-mutation-result.md +0 -47
- package/docs/rules/require-id-when-available.md +0 -88
- package/docs/rules/scalar-leafs.md +0 -17
- package/docs/rules/selection-set-depth.md +0 -76
- package/docs/rules/strict-id-in-types.md +0 -130
- package/docs/rules/unique-argument-names.md +0 -17
- package/docs/rules/unique-directive-names-per-location.md +0 -17
- package/docs/rules/unique-directive-names.md +0 -17
- package/docs/rules/unique-enum-value-names.md +0 -15
- package/docs/rules/unique-field-definition-names.md +0 -17
- package/docs/rules/unique-fragment-name.md +0 -51
- package/docs/rules/unique-input-field-names.md +0 -17
- package/docs/rules/unique-operation-name.md +0 -55
- package/docs/rules/unique-operation-types.md +0 -17
- package/docs/rules/unique-type-names.md +0 -17
- package/docs/rules/unique-variable-names.md +0 -17
- package/docs/rules/value-literals-of-correct-type.md +0 -17
- package/docs/rules/variables-are-input-types.md +0 -17
- package/docs/rules/variables-in-allowed-position.md +0 -17
- package/estree-converter/converter.d.ts +0 -3
- package/estree-converter/index.d.ts +0 -3
- package/estree-converter/types.d.ts +0 -40
- package/estree-converter/utils.d.ts +0 -13
- package/graphql-config.d.ts +0 -3
- package/index.d.ts +0 -16
- package/index.js +0 -4653
- package/index.mjs +0 -4641
- package/parser.d.ts +0 -2
- package/processor.d.ts +0 -7
- package/rules/alphabetize.d.ts +0 -16
- package/rules/description-style.d.ts +0 -6
- package/rules/graphql-js-validation.d.ts +0 -2
- package/rules/index.d.ts +0 -41
- package/rules/input-name.d.ts +0 -9
- package/rules/match-document-filename.d.ts +0 -18
- package/rules/naming-convention.d.ts +0 -37
- package/rules/no-anonymous-operations.d.ts +0 -3
- package/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -3
- package/rules/no-deprecated.d.ts +0 -3
- package/rules/no-duplicate-fields.d.ts +0 -3
- package/rules/no-hashtag-description.d.ts +0 -3
- package/rules/no-root-type.d.ts +0 -7
- package/rules/no-scalar-result-type-on-mutation.d.ts +0 -3
- package/rules/no-typename-prefix.d.ts +0 -3
- package/rules/no-unreachable-types.d.ts +0 -3
- package/rules/no-unused-fields.d.ts +0 -3
- package/rules/relay-arguments.d.ts +0 -6
- package/rules/relay-connection-types.d.ts +0 -5
- package/rules/relay-edge-types.d.ts +0 -8
- package/rules/relay-page-info.d.ts +0 -3
- package/rules/require-deprecation-date.d.ts +0 -5
- package/rules/require-deprecation-reason.d.ts +0 -3
- package/rules/require-description.d.ts +0 -11
- package/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -3
- package/rules/require-id-when-available.d.ts +0 -6
- package/rules/selection-set-depth.d.ts +0 -7
- package/rules/strict-id-in-types.d.ts +0 -11
- package/rules/unique-fragment-name.d.ts +0 -6
- package/rules/unique-operation-name.d.ts +0 -3
- package/schema.d.ts +0 -3
- package/sibling-operations.d.ts +0 -21
- package/testkit.d.ts +0 -27
- package/types.d.ts +0 -79
- package/utils.d.ts +0 -39
package/cjs/schema.js
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __create = Object.create;
|
3
|
+
var __defProp = Object.defineProperty;
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
|
+
var __export = (target, all) => {
|
9
|
+
for (var name in all)
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
11
|
+
};
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
14
|
+
for (let key of __getOwnPropNames(from))
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
17
|
+
}
|
18
|
+
return to;
|
19
|
+
};
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
26
|
+
mod
|
27
|
+
));
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
|
+
var schema_exports = {};
|
30
|
+
__export(schema_exports, {
|
31
|
+
getSchema: () => getSchema
|
32
|
+
});
|
33
|
+
module.exports = __toCommonJS(schema_exports);
|
34
|
+
var import_debug = __toESM(require("debug"));
|
35
|
+
var import_fast_glob = __toESM(require("fast-glob"));
|
36
|
+
var import_graphql = require("graphql");
|
37
|
+
var import_cache = require("./cache.js");
|
38
|
+
const schemaCache = new import_cache.ModuleCache();
|
39
|
+
const debug = (0, import_debug.default)("graphql-eslint:schema");
|
40
|
+
function getSchema(project, schemaOptions) {
|
41
|
+
const schemaKey = project.schema;
|
42
|
+
if (!schemaKey) {
|
43
|
+
return null;
|
44
|
+
}
|
45
|
+
const cache = schemaCache.get(schemaKey);
|
46
|
+
if (cache) {
|
47
|
+
return cache;
|
48
|
+
}
|
49
|
+
debug("Loading schema from %o", project.schema);
|
50
|
+
const schema = project.loadSchemaSync(project.schema, "GraphQLSchema", {
|
51
|
+
...schemaOptions,
|
52
|
+
pluckConfig: project.extensions.pluckConfig
|
53
|
+
});
|
54
|
+
if (debug.enabled) {
|
55
|
+
debug("Schema loaded: %o", schema instanceof import_graphql.GraphQLSchema);
|
56
|
+
const schemaPaths = import_fast_glob.default.sync(project.schema, { absolute: true });
|
57
|
+
debug("Schema pointers %O", schemaPaths);
|
58
|
+
}
|
59
|
+
schemaCache.set(schemaKey, schema);
|
60
|
+
return schema;
|
61
|
+
}
|
62
|
+
// Annotate the CommonJS export names for ESM import in node:
|
63
|
+
0 && (module.exports = {
|
64
|
+
getSchema
|
65
|
+
});
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import 'graphql';
|
2
|
+
import 'graphql-config';
|
3
|
+
export { F as FragmentSource, h as OperationSource, g as SiblingOperations, i as getSiblings } from './types-8d5f4ae0.js';
|
4
|
+
import '@graphql-tools/utils';
|
5
|
+
import 'eslint';
|
6
|
+
import 'estree';
|
7
|
+
import 'json-schema-to-ts';
|
8
|
+
import './estree-converter/types.js';
|
package/cjs/siblings.js
ADDED
@@ -0,0 +1,136 @@
|
|
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: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
var siblings_exports = {};
|
20
|
+
__export(siblings_exports, {
|
21
|
+
getSiblings: () => getSiblings
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(siblings_exports);
|
24
|
+
var import_utils = require("@graphql-tools/utils");
|
25
|
+
var import_graphql = require("graphql");
|
26
|
+
var import_documents = require("./documents.js");
|
27
|
+
var import_utils2 = require("./utils.js");
|
28
|
+
const siblingOperationsCache = /* @__PURE__ */ new Map();
|
29
|
+
function getSiblings(project, documents) {
|
30
|
+
const siblings = project ? (0, import_documents.getDocuments)(project) : typeof documents === "string" ? [(0, import_utils.parseGraphQLSDL)("operation.graphql", documents, { noLocation: true })] : [];
|
31
|
+
if (siblings.length === 0) {
|
32
|
+
let printed = false;
|
33
|
+
const noopWarn = () => {
|
34
|
+
if (!printed) {
|
35
|
+
import_utils2.logger.warn(
|
36
|
+
'getSiblingOperations was called without any operations. Make sure to set "parserOptions.operations" to make this feature available!'
|
37
|
+
);
|
38
|
+
printed = true;
|
39
|
+
}
|
40
|
+
return [];
|
41
|
+
};
|
42
|
+
return {
|
43
|
+
available: false,
|
44
|
+
getFragment: noopWarn,
|
45
|
+
getFragments: noopWarn,
|
46
|
+
getFragmentByType: noopWarn,
|
47
|
+
getFragmentsInUse: noopWarn,
|
48
|
+
getOperation: noopWarn,
|
49
|
+
getOperations: noopWarn,
|
50
|
+
getOperationByType: noopWarn
|
51
|
+
};
|
52
|
+
}
|
53
|
+
const value = siblingOperationsCache.get(siblings);
|
54
|
+
if (value) {
|
55
|
+
return value;
|
56
|
+
}
|
57
|
+
let fragmentsCache = null;
|
58
|
+
const getFragments = () => {
|
59
|
+
var _a;
|
60
|
+
if (fragmentsCache === null) {
|
61
|
+
const result = [];
|
62
|
+
for (const source of siblings) {
|
63
|
+
for (const definition of ((_a = source.document) == null ? void 0 : _a.definitions) || []) {
|
64
|
+
if (definition.kind === import_graphql.Kind.FRAGMENT_DEFINITION) {
|
65
|
+
result.push({
|
66
|
+
filePath: source.location,
|
67
|
+
document: definition
|
68
|
+
});
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
fragmentsCache = result;
|
73
|
+
}
|
74
|
+
return fragmentsCache;
|
75
|
+
};
|
76
|
+
let cachedOperations = null;
|
77
|
+
const getOperations = () => {
|
78
|
+
var _a;
|
79
|
+
if (cachedOperations === null) {
|
80
|
+
const result = [];
|
81
|
+
for (const source of siblings) {
|
82
|
+
for (const definition of ((_a = source.document) == null ? void 0 : _a.definitions) || []) {
|
83
|
+
if (definition.kind === import_graphql.Kind.OPERATION_DEFINITION) {
|
84
|
+
result.push({
|
85
|
+
filePath: source.location,
|
86
|
+
document: definition
|
87
|
+
});
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
cachedOperations = result;
|
92
|
+
}
|
93
|
+
return cachedOperations;
|
94
|
+
};
|
95
|
+
const getFragment = (name) => getFragments().filter((f) => f.document.name.value === name);
|
96
|
+
const collectFragments = (selectable, recursive, collected = /* @__PURE__ */ new Map()) => {
|
97
|
+
(0, import_graphql.visit)(selectable, {
|
98
|
+
FragmentSpread(spread) {
|
99
|
+
const fragmentName = spread.name.value;
|
100
|
+
const [fragment] = getFragment(fragmentName);
|
101
|
+
if (!fragment) {
|
102
|
+
import_utils2.logger.warn(
|
103
|
+
`Unable to locate fragment named "${fragmentName}", please make sure it's loaded using "parserOptions.operations"`
|
104
|
+
);
|
105
|
+
return;
|
106
|
+
}
|
107
|
+
if (!collected.has(fragmentName)) {
|
108
|
+
collected.set(fragmentName, fragment.document);
|
109
|
+
if (recursive) {
|
110
|
+
collectFragments(fragment.document, recursive, collected);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
});
|
115
|
+
return collected;
|
116
|
+
};
|
117
|
+
const siblingOperations = {
|
118
|
+
available: true,
|
119
|
+
getFragment,
|
120
|
+
getFragments,
|
121
|
+
getFragmentByType: (typeName) => getFragments().filter((f) => f.document.typeCondition.name.value === typeName),
|
122
|
+
getFragmentsInUse: (selectable, recursive = true) => Array.from(collectFragments(selectable, recursive).values()),
|
123
|
+
getOperation: (name) => getOperations().filter((o) => {
|
124
|
+
var _a;
|
125
|
+
return ((_a = o.document.name) == null ? void 0 : _a.value) === name;
|
126
|
+
}),
|
127
|
+
getOperations,
|
128
|
+
getOperationByType: (type) => getOperations().filter((o) => o.document.operation === type)
|
129
|
+
};
|
130
|
+
siblingOperationsCache.set(siblings, siblingOperations);
|
131
|
+
return siblingOperations;
|
132
|
+
}
|
133
|
+
// Annotate the CommonJS export names for ESM import in node:
|
134
|
+
0 && (module.exports = {
|
135
|
+
getSiblings
|
136
|
+
});
|
@@ -0,0 +1,107 @@
|
|
1
|
+
import { GraphQLParseOptions } from '@graphql-tools/utils';
|
2
|
+
import { Linter, Rule, AST } from 'eslint';
|
3
|
+
import * as ESTree from 'estree';
|
4
|
+
import { FragmentDefinitionNode, OperationDefinitionNode, SelectionSetNode, OperationTypeNode, GraphQLSchema, ASTKindToNode } from 'graphql';
|
5
|
+
import { GraphQLProjectConfig, IExtensions, IGraphQLProject } from 'graphql-config';
|
6
|
+
import { JSONSchema } from 'json-schema-to-ts';
|
7
|
+
import { GraphQLESTreeNode } from './estree-converter/types.js';
|
8
|
+
|
9
|
+
type FragmentSource = {
|
10
|
+
filePath: string;
|
11
|
+
document: FragmentDefinitionNode;
|
12
|
+
};
|
13
|
+
type OperationSource = {
|
14
|
+
filePath: string;
|
15
|
+
document: OperationDefinitionNode;
|
16
|
+
};
|
17
|
+
type SiblingOperations = {
|
18
|
+
available: boolean;
|
19
|
+
getFragment(fragmentName: string): FragmentSource[];
|
20
|
+
getFragments(): FragmentSource[];
|
21
|
+
getFragmentByType(typeName: string): FragmentSource[];
|
22
|
+
getFragmentsInUse(baseOperation: FragmentDefinitionNode | OperationDefinitionNode | SelectionSetNode, recursive?: boolean): FragmentDefinitionNode[];
|
23
|
+
getOperation(operationName: string): OperationSource[];
|
24
|
+
getOperations(): OperationSource[];
|
25
|
+
getOperationByType(operationType: OperationTypeNode): OperationSource[];
|
26
|
+
};
|
27
|
+
declare function getSiblings(project?: GraphQLProjectConfig, documents?: ParserOptions['documents']): SiblingOperations;
|
28
|
+
|
29
|
+
type Schema = GraphQLSchema | null;
|
30
|
+
type Pointer = string | string[];
|
31
|
+
interface ParserOptions {
|
32
|
+
schema?: Pointer | Record<string, {
|
33
|
+
headers: Record<string, string>;
|
34
|
+
}>;
|
35
|
+
documents?: Pointer;
|
36
|
+
extensions?: IExtensions;
|
37
|
+
include?: Pointer;
|
38
|
+
exclude?: Pointer;
|
39
|
+
projects?: Record<string, IGraphQLProject>;
|
40
|
+
schemaOptions?: Omit<GraphQLParseOptions, 'assumeValidSDL'> & {
|
41
|
+
headers: Record<string, string>;
|
42
|
+
};
|
43
|
+
graphQLParserOptions?: Omit<GraphQLParseOptions, 'noLocation'>;
|
44
|
+
skipGraphQLConfig?: boolean;
|
45
|
+
filePath: string;
|
46
|
+
/** @deprecated Use `documents` instead */
|
47
|
+
operations?: Pointer;
|
48
|
+
}
|
49
|
+
type ParserServices = {
|
50
|
+
schema: Schema;
|
51
|
+
siblingOperations: SiblingOperations;
|
52
|
+
};
|
53
|
+
type GraphQLESLintParseResult = Linter.ESLintParseResult & {
|
54
|
+
services: ParserServices;
|
55
|
+
};
|
56
|
+
type Location = AST.SourceLocation | ESTree.Position;
|
57
|
+
type ReportDescriptorLocation = {
|
58
|
+
loc: Location;
|
59
|
+
} | {
|
60
|
+
node: {
|
61
|
+
loc: Location;
|
62
|
+
};
|
63
|
+
};
|
64
|
+
type ReportDescriptor = ReportDescriptorLocation & Rule.ReportDescriptorMessage & Rule.ReportDescriptorOptions;
|
65
|
+
type GraphQLESLintRuleContext<Options = any[]> = Omit<Rule.RuleContext, 'options' | 'parserServices' | 'report'> & {
|
66
|
+
options: Options;
|
67
|
+
parserServices: ParserServices;
|
68
|
+
report(descriptor: ReportDescriptor): void;
|
69
|
+
};
|
70
|
+
type CategoryType = 'Operations' | 'Schema';
|
71
|
+
type RuleMetaDataDocs = Required<Rule.RuleMetaData>['docs'];
|
72
|
+
type RuleDocsInfo<T> = Omit<RuleMetaDataDocs, 'category' | 'suggestion'> & {
|
73
|
+
category: CategoryType | CategoryType[];
|
74
|
+
requiresSchema?: true;
|
75
|
+
requiresSiblings?: true;
|
76
|
+
examples?: {
|
77
|
+
title: string;
|
78
|
+
code: string;
|
79
|
+
usage?: T;
|
80
|
+
}[];
|
81
|
+
configOptions?: T | {
|
82
|
+
schema?: T;
|
83
|
+
operations?: T;
|
84
|
+
};
|
85
|
+
graphQLJSRuleName?: string;
|
86
|
+
isDisabledForAllConfig?: true;
|
87
|
+
};
|
88
|
+
type GraphQLESLintRuleListener<WithTypeInfo extends boolean = false> = Record<string, any> & {
|
89
|
+
[K in keyof ASTKindToNode]?: (node: GraphQLESTreeNode<ASTKindToNode[K], WithTypeInfo>) => void;
|
90
|
+
};
|
91
|
+
type GraphQLESLintRule<Options = [], WithTypeInfo extends boolean = false> = {
|
92
|
+
meta: Omit<Rule.RuleMetaData, 'docs' | 'schema'> & {
|
93
|
+
docs?: RuleDocsInfo<Options>;
|
94
|
+
schema: Readonly<JSONSchema> | [];
|
95
|
+
};
|
96
|
+
create(context: GraphQLESLintRuleContext<Options>): GraphQLESLintRuleListener<WithTypeInfo>;
|
97
|
+
};
|
98
|
+
type ValueOf<T> = T[keyof T];
|
99
|
+
type Id<T> = {
|
100
|
+
[P in keyof T]: T[P];
|
101
|
+
} & {};
|
102
|
+
type OmitDistributive<T, K extends PropertyKey> = T extends object ? Id<OmitRecursively<T, K>> : T;
|
103
|
+
type OmitRecursively<T extends object, K extends PropertyKey> = Omit<{
|
104
|
+
[P in keyof T]: OmitDistributive<T[P], K>;
|
105
|
+
}, K>;
|
106
|
+
|
107
|
+
export { CategoryType as C, FragmentSource as F, GraphQLESLintParseResult as G, OmitRecursively as O, ParserOptions as P, ReportDescriptor as R, Schema as S, ValueOf as V, Pointer as a, ParserServices as b, GraphQLESLintRuleContext as c, RuleDocsInfo as d, GraphQLESLintRuleListener as e, GraphQLESLintRule as f, SiblingOperations as g, OperationSource as h, getSiblings as i };
|
package/cjs/types.d.ts
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
import '@graphql-tools/utils';
|
2
|
+
import 'eslint';
|
3
|
+
import 'estree';
|
4
|
+
import 'graphql';
|
5
|
+
import 'graphql-config';
|
6
|
+
import 'json-schema-to-ts';
|
7
|
+
export { C as CategoryType, G as GraphQLESLintParseResult, f as GraphQLESLintRule, c as GraphQLESLintRuleContext, e as GraphQLESLintRuleListener, O as OmitRecursively, P as ParserOptions, b as ParserServices, a as Pointer, R as ReportDescriptor, d as RuleDocsInfo, S as Schema, V as ValueOf } from './types-8d5f4ae0.js';
|
8
|
+
import './estree-converter/types.js';
|
package/cjs/types.js
ADDED
@@ -0,0 +1,16 @@
|
|
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 __copyProps = (to, from, except, desc) => {
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
8
|
+
for (let key of __getOwnPropNames(from))
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
11
|
+
}
|
12
|
+
return to;
|
13
|
+
};
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
15
|
+
var types_exports = {};
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
package/cjs/utils.d.ts
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
import { AST } from 'eslint';
|
2
|
+
import { Position } from 'estree';
|
3
|
+
import { GraphQLSchema, ASTNode, Kind } from 'graphql';
|
4
|
+
import { c as GraphQLESLintRuleContext, g as SiblingOperations } from './types-8d5f4ae0.js';
|
5
|
+
import { GraphQLESTreeNode } from './estree-converter/types.js';
|
6
|
+
import '@graphql-tools/utils';
|
7
|
+
import 'graphql-config';
|
8
|
+
import 'json-schema-to-ts';
|
9
|
+
|
10
|
+
declare function requireSiblingsOperations(ruleId: string, context: GraphQLESLintRuleContext): SiblingOperations | never;
|
11
|
+
declare function requireGraphQLSchemaFromContext(ruleId: string, context: GraphQLESLintRuleContext): GraphQLSchema | never;
|
12
|
+
declare const logger: {
|
13
|
+
error: (...args: unknown[]) => void;
|
14
|
+
warn: (...args: unknown[]) => void;
|
15
|
+
};
|
16
|
+
declare const normalizePath: (path: string) => string;
|
17
|
+
declare const VIRTUAL_DOCUMENT_REGEX: RegExp;
|
18
|
+
declare const CWD: string;
|
19
|
+
declare const getTypeName: (node: ASTNode) => string;
|
20
|
+
declare const TYPES_KINDS: readonly [Kind.OBJECT_TYPE_DEFINITION, Kind.INTERFACE_TYPE_DEFINITION, Kind.ENUM_TYPE_DEFINITION, Kind.SCALAR_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.UNION_TYPE_DEFINITION];
|
21
|
+
type CaseStyle = 'camelCase' | 'kebab-case' | 'PascalCase' | 'snake_case' | 'UPPER_CASE';
|
22
|
+
declare const pascalCase: (str: string) => string;
|
23
|
+
declare const camelCase: (str: string) => string;
|
24
|
+
declare const convertCase: (style: CaseStyle, str: string) => string;
|
25
|
+
declare function getLocation(start: Position, fieldName?: string): AST.SourceLocation;
|
26
|
+
declare const REPORT_ON_FIRST_CHARACTER: {
|
27
|
+
column: number;
|
28
|
+
line: number;
|
29
|
+
};
|
30
|
+
declare const ARRAY_DEFAULT_OPTIONS: {
|
31
|
+
readonly type: "array";
|
32
|
+
readonly uniqueItems: true;
|
33
|
+
readonly minItems: 1;
|
34
|
+
readonly items: {
|
35
|
+
readonly type: "string";
|
36
|
+
};
|
37
|
+
};
|
38
|
+
declare const englishJoinWords: (words: string[]) => string;
|
39
|
+
type Truthy<T> = T extends '' | 0 | false | null | undefined ? never : T;
|
40
|
+
declare function truthy<T>(value: T): value is Truthy<T>;
|
41
|
+
declare function displayNodeName(node: GraphQLESTreeNode<ASTNode>): string;
|
42
|
+
declare function getNodeName(node: GraphQLESTreeNode<ASTNode>): string;
|
43
|
+
|
44
|
+
export { ARRAY_DEFAULT_OPTIONS, CWD, CaseStyle, REPORT_ON_FIRST_CHARACTER, TYPES_KINDS, VIRTUAL_DOCUMENT_REGEX, camelCase, convertCase, displayNodeName, englishJoinWords, getLocation, getNodeName, getTypeName, logger, normalizePath, pascalCase, requireGraphQLSchemaFromContext, requireSiblingsOperations, truthy };
|
package/cjs/utils.js
ADDED
@@ -0,0 +1,205 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __create = Object.create;
|
3
|
+
var __defProp = Object.defineProperty;
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
|
+
var __export = (target, all) => {
|
9
|
+
for (var name in all)
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
11
|
+
};
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
14
|
+
for (let key of __getOwnPropNames(from))
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
17
|
+
}
|
18
|
+
return to;
|
19
|
+
};
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
26
|
+
mod
|
27
|
+
));
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
|
+
var utils_exports = {};
|
30
|
+
__export(utils_exports, {
|
31
|
+
ARRAY_DEFAULT_OPTIONS: () => ARRAY_DEFAULT_OPTIONS,
|
32
|
+
CWD: () => CWD,
|
33
|
+
REPORT_ON_FIRST_CHARACTER: () => REPORT_ON_FIRST_CHARACTER,
|
34
|
+
TYPES_KINDS: () => TYPES_KINDS,
|
35
|
+
VIRTUAL_DOCUMENT_REGEX: () => VIRTUAL_DOCUMENT_REGEX,
|
36
|
+
camelCase: () => camelCase,
|
37
|
+
convertCase: () => convertCase,
|
38
|
+
displayNodeName: () => displayNodeName,
|
39
|
+
englishJoinWords: () => englishJoinWords,
|
40
|
+
getLocation: () => getLocation,
|
41
|
+
getNodeName: () => getNodeName,
|
42
|
+
getTypeName: () => getTypeName,
|
43
|
+
logger: () => logger,
|
44
|
+
normalizePath: () => normalizePath,
|
45
|
+
pascalCase: () => pascalCase,
|
46
|
+
requireGraphQLSchemaFromContext: () => requireGraphQLSchemaFromContext,
|
47
|
+
requireSiblingsOperations: () => requireSiblingsOperations,
|
48
|
+
truthy: () => truthy
|
49
|
+
});
|
50
|
+
module.exports = __toCommonJS(utils_exports);
|
51
|
+
var import_chalk = __toESM(require("chalk"));
|
52
|
+
var import_graphql = require("graphql");
|
53
|
+
var import_lodash = __toESM(require("lodash.lowercase"));
|
54
|
+
function requireSiblingsOperations(ruleId, context) {
|
55
|
+
const { siblingOperations } = context.parserServices;
|
56
|
+
if (!siblingOperations.available) {
|
57
|
+
throw new Error(
|
58
|
+
`Rule \`${ruleId}\` requires \`parserOptions.operations\` to be set and loaded. See https://bit.ly/graphql-eslint-operations for more info`
|
59
|
+
);
|
60
|
+
}
|
61
|
+
return siblingOperations;
|
62
|
+
}
|
63
|
+
function requireGraphQLSchemaFromContext(ruleId, context) {
|
64
|
+
const { schema } = context.parserServices;
|
65
|
+
if (!schema) {
|
66
|
+
throw new Error(
|
67
|
+
`Rule \`${ruleId}\` requires \`parserOptions.schema\` to be set and loaded. See https://bit.ly/graphql-eslint-schema for more info`
|
68
|
+
);
|
69
|
+
}
|
70
|
+
return schema;
|
71
|
+
}
|
72
|
+
const logger = {
|
73
|
+
error: (...args) => (
|
74
|
+
// eslint-disable-next-line no-console
|
75
|
+
console.error(import_chalk.default.red("error"), "[graphql-eslint]", (0, import_chalk.default)(...args))
|
76
|
+
),
|
77
|
+
warn: (...args) => (
|
78
|
+
// eslint-disable-next-line no-console
|
79
|
+
console.warn(import_chalk.default.yellow("warning"), "[graphql-eslint]", (0, import_chalk.default)(...args))
|
80
|
+
)
|
81
|
+
};
|
82
|
+
const normalizePath = (path) => (path || "").replace(/\\/g, "/");
|
83
|
+
const VIRTUAL_DOCUMENT_REGEX = /\/\d+_document.graphql$/;
|
84
|
+
const CWD = process.cwd();
|
85
|
+
const getTypeName = (node) => "type" in node ? getTypeName(node.type) : "name" in node && node.name ? node.name.value : "";
|
86
|
+
const TYPES_KINDS = [
|
87
|
+
import_graphql.Kind.OBJECT_TYPE_DEFINITION,
|
88
|
+
import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
|
89
|
+
import_graphql.Kind.ENUM_TYPE_DEFINITION,
|
90
|
+
import_graphql.Kind.SCALAR_TYPE_DEFINITION,
|
91
|
+
import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
|
92
|
+
import_graphql.Kind.UNION_TYPE_DEFINITION
|
93
|
+
];
|
94
|
+
const pascalCase = (str) => (0, import_lodash.default)(str).split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
|
95
|
+
const camelCase = (str) => {
|
96
|
+
const result = pascalCase(str);
|
97
|
+
return result.charAt(0).toLowerCase() + result.slice(1);
|
98
|
+
};
|
99
|
+
const convertCase = (style, str) => {
|
100
|
+
switch (style) {
|
101
|
+
case "camelCase":
|
102
|
+
return camelCase(str);
|
103
|
+
case "PascalCase":
|
104
|
+
return pascalCase(str);
|
105
|
+
case "snake_case":
|
106
|
+
return (0, import_lodash.default)(str).replace(/ /g, "_");
|
107
|
+
case "UPPER_CASE":
|
108
|
+
return (0, import_lodash.default)(str).replace(/ /g, "_").toUpperCase();
|
109
|
+
case "kebab-case":
|
110
|
+
return (0, import_lodash.default)(str).replace(/ /g, "-");
|
111
|
+
}
|
112
|
+
};
|
113
|
+
function getLocation(start, fieldName = "") {
|
114
|
+
const { line, column } = start;
|
115
|
+
return {
|
116
|
+
start: {
|
117
|
+
line,
|
118
|
+
column
|
119
|
+
},
|
120
|
+
end: {
|
121
|
+
line,
|
122
|
+
column: column + fieldName.length
|
123
|
+
}
|
124
|
+
};
|
125
|
+
}
|
126
|
+
const REPORT_ON_FIRST_CHARACTER = { column: 0, line: 1 };
|
127
|
+
const ARRAY_DEFAULT_OPTIONS = {
|
128
|
+
type: "array",
|
129
|
+
uniqueItems: true,
|
130
|
+
minItems: 1,
|
131
|
+
items: {
|
132
|
+
type: "string"
|
133
|
+
}
|
134
|
+
};
|
135
|
+
const englishJoinWords = (words) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(words);
|
136
|
+
function truthy(value) {
|
137
|
+
return !!value;
|
138
|
+
}
|
139
|
+
const DisplayNodeNameMap = {
|
140
|
+
[import_graphql.Kind.OBJECT_TYPE_DEFINITION]: "type",
|
141
|
+
[import_graphql.Kind.OBJECT_TYPE_EXTENSION]: "type",
|
142
|
+
[import_graphql.Kind.INTERFACE_TYPE_DEFINITION]: "interface",
|
143
|
+
[import_graphql.Kind.INTERFACE_TYPE_EXTENSION]: "interface",
|
144
|
+
[import_graphql.Kind.ENUM_TYPE_DEFINITION]: "enum",
|
145
|
+
[import_graphql.Kind.ENUM_TYPE_EXTENSION]: "enum",
|
146
|
+
[import_graphql.Kind.SCALAR_TYPE_DEFINITION]: "scalar",
|
147
|
+
[import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION]: "input",
|
148
|
+
[import_graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION]: "input",
|
149
|
+
[import_graphql.Kind.UNION_TYPE_DEFINITION]: "union",
|
150
|
+
[import_graphql.Kind.UNION_TYPE_EXTENSION]: "union",
|
151
|
+
[import_graphql.Kind.DIRECTIVE_DEFINITION]: "directive",
|
152
|
+
[import_graphql.Kind.FIELD_DEFINITION]: "field",
|
153
|
+
[import_graphql.Kind.ENUM_VALUE_DEFINITION]: "enum value",
|
154
|
+
[import_graphql.Kind.INPUT_VALUE_DEFINITION]: "input value",
|
155
|
+
[import_graphql.Kind.ARGUMENT]: "argument",
|
156
|
+
[import_graphql.Kind.VARIABLE]: "variable",
|
157
|
+
[import_graphql.Kind.FRAGMENT_DEFINITION]: "fragment",
|
158
|
+
[import_graphql.Kind.OPERATION_DEFINITION]: "operation",
|
159
|
+
[import_graphql.Kind.FIELD]: "field"
|
160
|
+
};
|
161
|
+
function displayNodeName(node) {
|
162
|
+
var _a, _b;
|
163
|
+
return `${node.kind === import_graphql.Kind.OPERATION_DEFINITION ? node.operation : DisplayNodeNameMap[node.kind]} "${"alias" in node && ((_a = node.alias) == null ? void 0 : _a.value) || "name" in node && ((_b = node.name) == null ? void 0 : _b.value)}"`;
|
164
|
+
}
|
165
|
+
function getNodeName(node) {
|
166
|
+
switch (node.kind) {
|
167
|
+
case import_graphql.Kind.OBJECT_TYPE_DEFINITION:
|
168
|
+
case import_graphql.Kind.OBJECT_TYPE_EXTENSION:
|
169
|
+
case import_graphql.Kind.INTERFACE_TYPE_DEFINITION:
|
170
|
+
case import_graphql.Kind.ENUM_TYPE_DEFINITION:
|
171
|
+
case import_graphql.Kind.SCALAR_TYPE_DEFINITION:
|
172
|
+
case import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION:
|
173
|
+
case import_graphql.Kind.UNION_TYPE_DEFINITION:
|
174
|
+
case import_graphql.Kind.DIRECTIVE_DEFINITION:
|
175
|
+
return displayNodeName(node);
|
176
|
+
case import_graphql.Kind.FIELD_DEFINITION:
|
177
|
+
case import_graphql.Kind.INPUT_VALUE_DEFINITION:
|
178
|
+
case import_graphql.Kind.ENUM_VALUE_DEFINITION:
|
179
|
+
return `${displayNodeName(node)} in ${displayNodeName(node.parent)}`;
|
180
|
+
case import_graphql.Kind.OPERATION_DEFINITION:
|
181
|
+
return node.name ? displayNodeName(node) : node.operation;
|
182
|
+
}
|
183
|
+
return "";
|
184
|
+
}
|
185
|
+
// Annotate the CommonJS export names for ESM import in node:
|
186
|
+
0 && (module.exports = {
|
187
|
+
ARRAY_DEFAULT_OPTIONS,
|
188
|
+
CWD,
|
189
|
+
REPORT_ON_FIRST_CHARACTER,
|
190
|
+
TYPES_KINDS,
|
191
|
+
VIRTUAL_DOCUMENT_REGEX,
|
192
|
+
camelCase,
|
193
|
+
convertCase,
|
194
|
+
displayNodeName,
|
195
|
+
englishJoinWords,
|
196
|
+
getLocation,
|
197
|
+
getNodeName,
|
198
|
+
getTypeName,
|
199
|
+
logger,
|
200
|
+
normalizePath,
|
201
|
+
pascalCase,
|
202
|
+
requireGraphQLSchemaFromContext,
|
203
|
+
requireSiblingsOperations,
|
204
|
+
truthy
|
205
|
+
});
|
package/esm/cache.d.mts
ADDED
package/esm/cache.js
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
import "./chunk-BMTV3EA2.js";
|
2
|
+
import debugFactory from "debug";
|
3
|
+
const log = debugFactory("graphql-eslint:ModuleCache");
|
4
|
+
class ModuleCache {
|
5
|
+
constructor() {
|
6
|
+
this.map = /* @__PURE__ */ new Map();
|
7
|
+
}
|
8
|
+
set(cacheKey, result) {
|
9
|
+
this.map.set(cacheKey, { lastSeen: process.hrtime(), result });
|
10
|
+
log("setting entry for", cacheKey);
|
11
|
+
}
|
12
|
+
get(cacheKey, settings = {
|
13
|
+
lifetime: 10
|
14
|
+
/* seconds */
|
15
|
+
}) {
|
16
|
+
const value = this.map.get(cacheKey);
|
17
|
+
if (!value) {
|
18
|
+
log("cache miss for", cacheKey);
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
const { lastSeen, result } = value;
|
22
|
+
if (process.env.NODE || process.hrtime(lastSeen)[0] < settings.lifetime) {
|
23
|
+
return result;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
export {
|
28
|
+
ModuleCache
|
29
|
+
};
|