@graphql-eslint/eslint-plugin 3.19.3-alpha-20230702093957-98f7783 → 3.20.0-alpha-20230703154330-0d51273
Sign up to get free protection for your applications and to get access to all the features.
- package/{typings → cjs}/cache.d.ts +3 -1
- package/cjs/cache.js +57 -26
- package/{typings → cjs}/configs/index.d.ts +3 -1
- package/cjs/configs/index.js +47 -14
- package/{typings → cjs}/configs/operations-all.d.ts +2 -1
- package/cjs/configs/operations-all.js +47 -30
- package/{typings → cjs}/configs/operations-recommended.d.ts +2 -1
- package/cjs/configs/operations-recommended.js +72 -55
- package/{typings → cjs}/configs/relay.d.ts +2 -1
- package/cjs/configs/relay.js +31 -11
- package/{typings → cjs}/configs/schema-all.d.ts +2 -1
- package/cjs/configs/schema-all.js +41 -24
- package/{typings → cjs}/configs/schema-recommended.d.ts +2 -1
- package/cjs/configs/schema-recommended.js +68 -51
- package/{typings → cjs}/documents.d.ts +4 -1
- package/cjs/documents.js +74 -43
- package/cjs/estree-converter/converter.d.ts +8 -0
- package/cjs/estree-converter/converter.js +80 -59
- package/cjs/estree-converter/index.d.ts +8 -0
- package/cjs/estree-converter/index.js +25 -5
- package/{typings → cjs}/estree-converter/types.d.ts +7 -5
- package/cjs/estree-converter/types.js +16 -0
- package/cjs/estree-converter/utils.d.ts +18 -0
- package/cjs/estree-converter/utils.js +119 -95
- package/{typings → cjs}/flat-configs.d.ts +12 -1
- package/cjs/flat-configs.js +56 -32
- package/cjs/graphql-config.d.ts +13 -0
- package/cjs/graphql-config.js +78 -47
- package/cjs/index.d.ts +22 -0
- package/cjs/index.js +50 -18
- package/cjs/parser.d.ts +12 -0
- package/cjs/parser.js +96 -76
- package/cjs/processor.d.ts +9 -0
- package/cjs/processor.js +119 -88
- package/{typings → cjs}/rules/alphabetize.d.ts +12 -4
- package/cjs/rules/alphabetize.js +337 -295
- package/{typings → cjs}/rules/description-style.d.ts +12 -4
- package/cjs/rules/description-style.js +96 -66
- package/cjs/rules/graphql-js-validation.d.ts +12 -0
- package/cjs/rules/graphql-js-validation.js +595 -433
- package/cjs/rules/index.d.ts +125 -0
- package/cjs/rules/index.js +97 -76
- package/{typings → cjs}/rules/input-name.d.ts +12 -4
- package/cjs/rules/input-name.js +153 -123
- package/{typings → cjs}/rules/lone-executable-definition.d.ts +12 -4
- package/cjs/rules/lone-executable-definition.js +101 -72
- package/{typings → cjs}/rules/match-document-filename.d.ts +14 -6
- package/cjs/rules/match-document-filename.js +229 -182
- package/{typings → cjs}/rules/naming-convention.d.ts +12 -4
- package/cjs/rules/naming-convention.js +380 -316
- package/cjs/rules/no-anonymous-operations.d.ts +12 -0
- package/cjs/rules/no-anonymous-operations.js +88 -57
- package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
- package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +82 -50
- package/cjs/rules/no-deprecated.d.ts +12 -0
- package/cjs/rules/no-deprecated.js +106 -75
- package/cjs/rules/no-duplicate-fields.d.ts +12 -0
- package/cjs/rules/no-duplicate-fields.js +116 -82
- package/cjs/rules/no-hashtag-description.d.ts +13 -0
- package/cjs/rules/no-hashtag-description.js +119 -82
- package/cjs/rules/no-one-place-fragments.d.ts +12 -0
- package/cjs/rules/no-one-place-fragments.js +88 -58
- package/{typings → cjs}/rules/no-root-type.d.ts +12 -4
- package/cjs/rules/no-root-type.js +101 -74
- package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
- package/cjs/rules/no-scalar-result-type-on-mutation.js +90 -60
- package/cjs/rules/no-typename-prefix.d.ts +12 -0
- package/cjs/rules/no-typename-prefix.js +88 -55
- package/cjs/rules/no-unreachable-types.d.ts +12 -0
- package/cjs/rules/no-unreachable-types.js +169 -134
- package/cjs/rules/no-unused-fields.d.ts +12 -0
- package/cjs/rules/no-unused-fields.js +117 -92
- package/{typings → cjs}/rules/relay-arguments.d.ts +12 -4
- package/cjs/rules/relay-arguments.js +136 -110
- package/cjs/rules/relay-connection-types.d.ts +13 -0
- package/cjs/rules/relay-connection-types.js +123 -94
- package/{typings → cjs}/rules/relay-edge-types.d.ts +12 -4
- package/cjs/rules/relay-edge-types.js +196 -179
- package/cjs/rules/relay-page-info.d.ts +12 -0
- package/cjs/rules/relay-page-info.js +108 -89
- package/{typings → cjs}/rules/require-deprecation-date.d.ts +12 -4
- package/cjs/rules/require-deprecation-date.js +143 -112
- package/cjs/rules/require-deprecation-reason.d.ts +12 -0
- package/cjs/rules/require-deprecation-reason.js +80 -46
- package/{typings → cjs}/rules/require-description.d.ts +13 -5
- package/cjs/rules/require-description.js +170 -132
- 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 +81 -51
- package/{typings → cjs}/rules/require-id-when-available.d.ts +12 -4
- package/cjs/rules/require-id-when-available.js +196 -173
- package/cjs/rules/require-import-fragment.d.ts +12 -0
- package/cjs/rules/require-import-fragment.js +138 -88
- package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
- package/cjs/rules/require-nullable-fields-with-oneof.js +80 -50
- package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
- package/cjs/rules/require-nullable-result-in-root.js +97 -68
- package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
- package/cjs/rules/require-type-pattern-with-oneof.js +70 -42
- package/{typings → cjs}/rules/selection-set-depth.d.ts +12 -4
- package/cjs/rules/selection-set-depth.js +147 -107
- package/{typings → cjs}/rules/strict-id-in-types.d.ts +12 -4
- package/cjs/rules/strict-id-in-types.js +143 -122
- package/cjs/rules/unique-fragment-name.d.ts +13 -0
- package/cjs/rules/unique-fragment-name.js +88 -62
- package/cjs/rules/unique-operation-name.d.ts +12 -0
- package/cjs/rules/unique-operation-name.js +65 -35
- package/cjs/schema.d.ts +12 -0
- package/cjs/schema.js +62 -30
- package/cjs/siblings.d.ts +8 -0
- package/cjs/siblings.js +124 -106
- package/cjs/testkit.d.ts +8 -0
- package/cjs/testkit.js +165 -144
- package/cjs/types-e3367e3c.d.ts +129 -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 +181 -124
- package/{typings/cache.d.cts → esm/cache.d.mts} +3 -1
- package/esm/cache.js +25 -23
- package/{typings/configs/index.d.cts → esm/configs/index.d.mts} +3 -1
- package/esm/configs/index.js +14 -11
- package/{typings/configs/operations-all.d.cts → esm/configs/operations-all.d.mts} +2 -1
- package/esm/configs/operations-all.js +28 -28
- package/{typings/configs/operations-recommended.d.cts → esm/configs/operations-recommended.d.mts} +2 -1
- package/esm/configs/operations-recommended.js +53 -53
- package/{typings/configs/relay.d.cts → esm/configs/relay.d.mts} +2 -1
- package/esm/configs/relay.js +12 -9
- package/{typings/configs/schema-all.d.cts → esm/configs/schema-all.d.mts} +2 -1
- package/esm/configs/schema-all.js +22 -22
- package/{typings/configs/schema-recommended.d.cts → esm/configs/schema-recommended.d.mts} +2 -1
- package/esm/configs/schema-recommended.js +49 -49
- package/{typings/documents.d.cts → esm/documents.d.mts} +4 -1
- package/esm/documents.js +41 -39
- package/esm/estree-converter/converter.d.mts +8 -0
- package/esm/estree-converter/converter.js +63 -57
- package/esm/estree-converter/index.d.mts +8 -0
- package/esm/estree-converter/index.js +3 -3
- package/{typings/estree-converter/types.d.cts → esm/estree-converter/types.d.mts} +7 -5
- package/esm/estree-converter/utils.d.mts +18 -0
- package/esm/estree-converter/utils.js +102 -93
- package/{typings/flat-configs.d.cts → esm/flat-configs.d.mts} +13 -2
- package/esm/flat-configs.js +33 -30
- package/esm/graphql-config.d.mts +13 -0
- package/esm/graphql-config.js +49 -44
- package/esm/index.d.mts +22 -0
- package/esm/index.js +18 -9
- package/esm/package.json +1 -1
- package/esm/parser.d.mts +12 -0
- package/esm/parser.js +64 -73
- package/esm/processor.d.mts +9 -0
- package/esm/processor.js +98 -86
- package/{typings/rules/alphabetize.d.cts → esm/rules/alphabetize.d.mts} +12 -4
- package/esm/rules/alphabetize.js +304 -290
- package/{typings/rules/description-style.d.cts → esm/rules/description-style.d.mts} +12 -4
- package/esm/rules/description-style.js +73 -64
- package/esm/rules/graphql-js-validation.d.mts +12 -0
- package/esm/rules/graphql-js-validation.js +580 -429
- package/esm/rules/index.d.mts +125 -0
- package/esm/rules/index.js +74 -74
- package/{typings/rules/input-name.d.cts → esm/rules/input-name.d.mts} +12 -4
- package/esm/rules/input-name.js +132 -121
- package/{typings/rules/lone-executable-definition.d.cts → esm/rules/lone-executable-definition.d.mts} +12 -4
- package/esm/rules/lone-executable-definition.js +78 -70
- package/{typings/rules/match-document-filename.d.cts → esm/rules/match-document-filename.d.mts} +14 -6
- package/esm/rules/match-document-filename.js +210 -180
- package/{typings/rules/naming-convention.d.cts → esm/rules/naming-convention.d.mts} +12 -4
- package/esm/rules/naming-convention.js +363 -314
- package/esm/rules/no-anonymous-operations.d.mts +12 -0
- package/esm/rules/no-anonymous-operations.js +65 -55
- package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
- package/esm/rules/no-case-insensitive-enum-values-duplicates.js +59 -48
- package/esm/rules/no-deprecated.d.mts +12 -0
- package/esm/rules/no-deprecated.js +83 -73
- package/esm/rules/no-duplicate-fields.d.mts +12 -0
- package/esm/rules/no-duplicate-fields.js +93 -80
- package/esm/rules/no-hashtag-description.d.mts +13 -0
- package/esm/rules/no-hashtag-description.js +95 -80
- package/esm/rules/no-one-place-fragments.d.mts +12 -0
- package/esm/rules/no-one-place-fragments.js +65 -56
- package/{typings/rules/no-root-type.d.cts → esm/rules/no-root-type.d.mts} +12 -4
- package/esm/rules/no-root-type.js +78 -72
- package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
- package/esm/rules/no-scalar-result-type-on-mutation.js +67 -58
- package/esm/rules/no-typename-prefix.d.mts +12 -0
- package/esm/rules/no-typename-prefix.js +65 -53
- package/esm/rules/no-unreachable-types.d.mts +12 -0
- package/esm/rules/no-unreachable-types.js +141 -131
- package/esm/rules/no-unused-fields.d.mts +12 -0
- package/esm/rules/no-unused-fields.js +94 -90
- package/{typings/rules/relay-arguments.d.cts → esm/rules/relay-arguments.d.mts} +12 -4
- package/esm/rules/relay-arguments.js +113 -108
- package/esm/rules/relay-connection-types.d.mts +13 -0
- package/esm/rules/relay-connection-types.js +98 -91
- package/{typings/rules/relay-edge-types.d.cts → esm/rules/relay-edge-types.d.mts} +12 -4
- package/esm/rules/relay-edge-types.js +178 -177
- package/esm/rules/relay-page-info.d.mts +12 -0
- package/esm/rules/relay-page-info.js +84 -86
- package/{typings/rules/require-deprecation-date.d.cts → esm/rules/require-deprecation-date.d.mts} +12 -4
- package/esm/rules/require-deprecation-date.js +120 -110
- package/esm/rules/require-deprecation-reason.d.mts +12 -0
- package/esm/rules/require-deprecation-reason.js +57 -44
- package/{typings/rules/require-description.d.cts → esm/rules/require-description.d.mts} +13 -5
- package/esm/rules/require-description.js +151 -130
- 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 +58 -49
- package/{typings/rules/require-id-when-available.d.cts → esm/rules/require-id-when-available.d.mts} +12 -4
- package/esm/rules/require-id-when-available.js +186 -171
- package/esm/rules/require-import-fragment.d.mts +12 -0
- package/esm/rules/require-import-fragment.js +105 -85
- package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
- package/esm/rules/require-nullable-fields-with-oneof.js +57 -48
- package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
- package/esm/rules/require-nullable-result-in-root.js +74 -66
- package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
- package/esm/rules/require-type-pattern-with-oneof.js +47 -40
- package/{typings/rules/selection-set-depth.d.cts → esm/rules/selection-set-depth.d.mts} +12 -4
- package/esm/rules/selection-set-depth.js +114 -104
- package/{typings/rules/strict-id-in-types.d.cts → esm/rules/strict-id-in-types.d.mts} +12 -4
- package/esm/rules/strict-id-in-types.js +125 -119
- package/esm/rules/unique-fragment-name.d.mts +13 -0
- package/esm/rules/unique-fragment-name.js +65 -60
- package/esm/rules/unique-operation-name.d.mts +12 -0
- package/esm/rules/unique-operation-name.js +42 -33
- package/esm/schema.d.mts +12 -0
- package/esm/schema.js +29 -26
- package/esm/siblings.d.mts +8 -0
- package/esm/siblings.js +105 -104
- package/esm/testkit.d.mts +8 -0
- package/esm/testkit.js +132 -141
- package/esm/types-2e1afd7c.d.ts +129 -0
- package/esm/types.d.mts +8 -0
- package/esm/utils.d.mts +44 -0
- package/esm/utils.js +138 -116
- package/package.json +40 -30
- package/typings/estree-converter/converter.d.cts +0 -3
- package/typings/estree-converter/converter.d.ts +0 -3
- package/typings/estree-converter/index.d.cts +0 -3
- package/typings/estree-converter/index.d.ts +0 -3
- package/typings/estree-converter/utils.d.cts +0 -13
- package/typings/estree-converter/utils.d.ts +0 -13
- package/typings/graphql-config.d.cts +0 -4
- package/typings/graphql-config.d.ts +0 -4
- package/typings/index.d.cts +0 -10
- package/typings/index.d.ts +0 -10
- package/typings/parser.d.cts +0 -2
- package/typings/parser.d.ts +0 -2
- package/typings/processor.d.cts +0 -6
- package/typings/processor.d.ts +0 -6
- package/typings/rules/graphql-js-validation.d.cts +0 -2
- package/typings/rules/graphql-js-validation.d.ts +0 -2
- package/typings/rules/index.d.cts +0 -111
- package/typings/rules/index.d.ts +0 -111
- package/typings/rules/no-anonymous-operations.d.cts +0 -2
- package/typings/rules/no-anonymous-operations.d.ts +0 -2
- package/typings/rules/no-case-insensitive-enum-values-duplicates.d.cts +0 -2
- package/typings/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -2
- package/typings/rules/no-deprecated.d.cts +0 -2
- package/typings/rules/no-deprecated.d.ts +0 -2
- package/typings/rules/no-duplicate-fields.d.cts +0 -2
- package/typings/rules/no-duplicate-fields.d.ts +0 -2
- package/typings/rules/no-hashtag-description.d.cts +0 -3
- package/typings/rules/no-hashtag-description.d.ts +0 -3
- package/typings/rules/no-one-place-fragments.d.cts +0 -2
- package/typings/rules/no-one-place-fragments.d.ts +0 -2
- package/typings/rules/no-scalar-result-type-on-mutation.d.cts +0 -2
- package/typings/rules/no-scalar-result-type-on-mutation.d.ts +0 -2
- package/typings/rules/no-typename-prefix.d.cts +0 -2
- package/typings/rules/no-typename-prefix.d.ts +0 -2
- package/typings/rules/no-unreachable-types.d.cts +0 -2
- package/typings/rules/no-unreachable-types.d.ts +0 -2
- package/typings/rules/no-unused-fields.d.cts +0 -2
- package/typings/rules/no-unused-fields.d.ts +0 -2
- package/typings/rules/relay-connection-types.d.cts +0 -4
- package/typings/rules/relay-connection-types.d.ts +0 -4
- package/typings/rules/relay-page-info.d.cts +0 -2
- package/typings/rules/relay-page-info.d.ts +0 -2
- package/typings/rules/require-deprecation-reason.d.cts +0 -2
- package/typings/rules/require-deprecation-reason.d.ts +0 -2
- package/typings/rules/require-field-of-type-query-in-mutation-result.d.cts +0 -2
- package/typings/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -2
- package/typings/rules/require-import-fragment.d.cts +0 -2
- package/typings/rules/require-import-fragment.d.ts +0 -2
- package/typings/rules/require-nullable-fields-with-oneof.d.cts +0 -2
- package/typings/rules/require-nullable-fields-with-oneof.d.ts +0 -2
- package/typings/rules/require-nullable-result-in-root.d.cts +0 -2
- package/typings/rules/require-nullable-result-in-root.d.ts +0 -2
- package/typings/rules/require-type-pattern-with-oneof.d.cts +0 -2
- package/typings/rules/require-type-pattern-with-oneof.d.ts +0 -2
- package/typings/rules/unique-fragment-name.d.cts +0 -5
- package/typings/rules/unique-fragment-name.d.ts +0 -5
- package/typings/rules/unique-operation-name.d.cts +0 -2
- package/typings/rules/unique-operation-name.d.ts +0 -2
- package/typings/schema.d.cts +0 -3
- package/typings/schema.d.ts +0 -3
- package/typings/siblings.d.cts +0 -22
- package/typings/siblings.d.ts +0 -22
- package/typings/testkit.d.cts +0 -29
- package/typings/testkit.d.ts +0 -29
- package/typings/types.d.cts +0 -83
- package/typings/types.d.ts +0 -83
- package/typings/utils.d.cts +0 -40
- package/typings/utils.d.ts +0 -40
@@ -0,0 +1,129 @@
|
|
1
|
+
import { GraphQLParseOptions } from '@graphql-tools/utils';
|
2
|
+
import { RuleTester, Linter, Rule, AST } from 'eslint';
|
3
|
+
import * as ESTree from 'estree';
|
4
|
+
import { FragmentDefinitionNode, OperationDefinitionNode, SelectionSetNode, OperationTypeNode, ASTKindToNode, GraphQLSchema } 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 GraphQLESLintRuleListener<WithTypeInfo extends boolean = false> = Record<string, any> & {
|
30
|
+
[K in keyof ASTKindToNode]?: (node: GraphQLESTreeNode<ASTKindToNode[K], WithTypeInfo>) => void;
|
31
|
+
};
|
32
|
+
type GraphQLValidTestCase<Options = []> = Omit<RuleTester.ValidTestCase, 'options' | 'parserOptions'> & {
|
33
|
+
options?: Options;
|
34
|
+
parserOptions?: Omit<ParserOptions, 'filePath'>;
|
35
|
+
};
|
36
|
+
type GraphQLInvalidTestCase<T = []> = GraphQLValidTestCase<T> & {
|
37
|
+
errors: (RuleTester.TestCaseError | string)[] | number;
|
38
|
+
output?: string | null;
|
39
|
+
};
|
40
|
+
type RuleTesterConfig = {
|
41
|
+
parser: string;
|
42
|
+
parserOptions: Omit<ParserOptions, 'filePath'>;
|
43
|
+
};
|
44
|
+
declare class GraphQLRuleTester extends RuleTester {
|
45
|
+
config: RuleTesterConfig;
|
46
|
+
constructor(parserOptions?: Omit<ParserOptions, 'filePath'>);
|
47
|
+
fromMockFile(path: string): string;
|
48
|
+
runGraphQLTests<Options, WithTypeInfo extends boolean = false>(ruleId: string, rule: GraphQLESLintRule<Options, WithTypeInfo>, tests: {
|
49
|
+
valid: (GraphQLValidTestCase<Options> | string)[];
|
50
|
+
invalid: GraphQLInvalidTestCase<Options>[];
|
51
|
+
}): void;
|
52
|
+
}
|
53
|
+
|
54
|
+
type Schema = GraphQLSchema | null;
|
55
|
+
type Pointer = string | string[];
|
56
|
+
interface ParserOptions {
|
57
|
+
schema?: Pointer | Record<string, {
|
58
|
+
headers: Record<string, string>;
|
59
|
+
}>;
|
60
|
+
documents?: Pointer;
|
61
|
+
extensions?: IExtensions;
|
62
|
+
include?: Pointer;
|
63
|
+
exclude?: Pointer;
|
64
|
+
projects?: Record<string, IGraphQLProject>;
|
65
|
+
schemaOptions?: Omit<GraphQLParseOptions, 'assumeValidSDL'> & {
|
66
|
+
headers: Record<string, string>;
|
67
|
+
};
|
68
|
+
graphQLParserOptions?: Omit<GraphQLParseOptions, 'noLocation'>;
|
69
|
+
skipGraphQLConfig?: boolean;
|
70
|
+
filePath: string;
|
71
|
+
/** @deprecated Use `documents` instead */
|
72
|
+
operations?: Pointer;
|
73
|
+
}
|
74
|
+
type ParserServices = {
|
75
|
+
schema: Schema;
|
76
|
+
siblingOperations: SiblingOperations;
|
77
|
+
};
|
78
|
+
type GraphQLESLintParseResult = Linter.ESLintParseResult & {
|
79
|
+
services: ParserServices;
|
80
|
+
};
|
81
|
+
type Location = AST.SourceLocation | ESTree.Position;
|
82
|
+
type ReportDescriptorLocation = {
|
83
|
+
loc: Location;
|
84
|
+
} | {
|
85
|
+
node: {
|
86
|
+
loc: Location;
|
87
|
+
};
|
88
|
+
};
|
89
|
+
type ReportDescriptor = ReportDescriptorLocation & Rule.ReportDescriptorMessage & Rule.ReportDescriptorOptions;
|
90
|
+
type GraphQLESLintRuleContext<Options = any[]> = Omit<Rule.RuleContext, 'options' | 'parserServices' | 'report'> & {
|
91
|
+
options: Options;
|
92
|
+
parserServices: ParserServices;
|
93
|
+
report(descriptor: ReportDescriptor): void;
|
94
|
+
};
|
95
|
+
type CategoryType = 'Operations' | 'Schema';
|
96
|
+
type RuleMetaDataDocs = Required<Rule.RuleMetaData>['docs'];
|
97
|
+
type RuleDocsInfo<T> = Omit<RuleMetaDataDocs, 'category' | 'suggestion'> & {
|
98
|
+
category: CategoryType | CategoryType[];
|
99
|
+
requiresSchema?: true;
|
100
|
+
requiresSiblings?: true;
|
101
|
+
examples?: {
|
102
|
+
title: string;
|
103
|
+
code: string;
|
104
|
+
usage?: T;
|
105
|
+
}[];
|
106
|
+
configOptions?: T | {
|
107
|
+
schema?: T;
|
108
|
+
operations?: T;
|
109
|
+
};
|
110
|
+
graphQLJSRuleName?: string;
|
111
|
+
isDisabledForAllConfig?: true;
|
112
|
+
};
|
113
|
+
type GraphQLESLintRule<Options = [], WithTypeInfo extends boolean = false> = {
|
114
|
+
meta: Omit<Rule.RuleMetaData, 'docs' | 'schema'> & {
|
115
|
+
docs?: RuleDocsInfo<Options>;
|
116
|
+
schema: Readonly<JSONSchema> | [];
|
117
|
+
};
|
118
|
+
create(context: GraphQLESLintRuleContext<Options>): GraphQLESLintRuleListener<WithTypeInfo>;
|
119
|
+
};
|
120
|
+
type ValueOf<T> = T[keyof T];
|
121
|
+
type Id<T> = {
|
122
|
+
[P in keyof T]: T[P];
|
123
|
+
} & {};
|
124
|
+
type OmitDistributive<T, K extends PropertyKey> = T extends object ? Id<OmitRecursively<T, K>> : T;
|
125
|
+
type OmitRecursively<T extends object, K extends PropertyKey> = Omit<{
|
126
|
+
[P in keyof T]: OmitDistributive<T[P], K>;
|
127
|
+
}, K>;
|
128
|
+
|
129
|
+
export { CategoryType as C, FragmentSource as F, GraphQLESLintRuleListener as G, OmitRecursively as O, ParserOptions as P, ReportDescriptor as R, Schema as S, ValueOf as V, GraphQLValidTestCase as a, GraphQLInvalidTestCase as b, GraphQLRuleTester as c, Pointer as d, ParserServices as e, GraphQLESLintParseResult as f, GraphQLESLintRuleContext as g, RuleDocsInfo as h, GraphQLESLintRule as i, SiblingOperations as j, OperationSource as k, getSiblings as l };
|
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, f as GraphQLESLintParseResult, i as GraphQLESLintRule, g as GraphQLESLintRuleContext, O as OmitRecursively, P as ParserOptions, e as ParserServices, d as Pointer, R as ReportDescriptor, h as RuleDocsInfo, S as Schema, V as ValueOf } from './types-e3367e3c.js';
|
8
|
+
import './estree-converter/types.js';
|
package/cjs/types.js
CHANGED
@@ -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 { g as GraphQLESLintRuleContext, j as SiblingOperations } from './types-e3367e3c.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
CHANGED
@@ -1,147 +1,204 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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"));
|
8
54
|
function requireSiblingsOperations(ruleId, context) {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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;
|
14
62
|
}
|
15
|
-
exports.requireSiblingsOperations = requireSiblingsOperations;
|
16
63
|
function requireGraphQLSchemaFromContext(ruleId, context) {
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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;
|
22
71
|
}
|
23
|
-
|
24
|
-
|
25
|
-
error: (...args) =>
|
72
|
+
const logger = {
|
73
|
+
error: (...args) => (
|
26
74
|
// eslint-disable-next-line no-console
|
27
|
-
console.error(
|
28
|
-
|
75
|
+
console.error(import_chalk.default.red("error"), "[graphql-eslint]", (0, import_chalk.default)(...args))
|
76
|
+
),
|
77
|
+
warn: (...args) => (
|
29
78
|
// eslint-disable-next-line no-console
|
30
|
-
console.warn(
|
79
|
+
console.warn(import_chalk.default.yellow("warning"), "[graphql-eslint]", (0, import_chalk.default)(...args))
|
80
|
+
)
|
31
81
|
};
|
32
|
-
const normalizePath = (path) => (path ||
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
const
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION,
|
44
|
-
graphql_1.Kind.UNION_TYPE_DEFINITION,
|
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
|
45
93
|
];
|
46
|
-
const pascalCase = (str) => (0,
|
47
|
-
.split(' ')
|
48
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
49
|
-
.join('');
|
50
|
-
exports.pascalCase = pascalCase;
|
94
|
+
const pascalCase = (str) => (0, import_lodash.default)(str).split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
|
51
95
|
const camelCase = (str) => {
|
52
|
-
|
53
|
-
|
96
|
+
const result = pascalCase(str);
|
97
|
+
return result.charAt(0).toLowerCase() + result.slice(1);
|
54
98
|
};
|
55
|
-
exports.camelCase = camelCase;
|
56
99
|
const convertCase = (style, str) => {
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
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
|
+
}
|
69
112
|
};
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
column,
|
77
|
-
},
|
78
|
-
end: {
|
79
|
-
line,
|
80
|
-
column: column + fieldName.length,
|
81
|
-
},
|
82
|
-
};
|
83
|
-
}
|
84
|
-
exports.getLocation = getLocation;
|
85
|
-
exports.REPORT_ON_FIRST_CHARACTER = { column: 0, line: 1 };
|
86
|
-
exports.ARRAY_DEFAULT_OPTIONS = {
|
87
|
-
type: 'array',
|
88
|
-
uniqueItems: true,
|
89
|
-
minItems: 1,
|
90
|
-
items: {
|
91
|
-
type: 'string',
|
113
|
+
function getLocation(start, fieldName = "") {
|
114
|
+
const { line, column } = start;
|
115
|
+
return {
|
116
|
+
start: {
|
117
|
+
line,
|
118
|
+
column
|
92
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
|
+
}
|
93
134
|
};
|
94
|
-
const englishJoinWords = (words) => new Intl.ListFormat(
|
95
|
-
exports.englishJoinWords = englishJoinWords;
|
135
|
+
const englishJoinWords = (words) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(words);
|
96
136
|
function truthy(value) {
|
97
|
-
|
137
|
+
return !!value;
|
98
138
|
}
|
99
|
-
exports.truthy = truthy;
|
100
139
|
const DisplayNodeNameMap = {
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
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"
|
121
160
|
};
|
122
161
|
function displayNodeName(node) {
|
123
|
-
|
124
|
-
return `${node.kind === graphql_1.Kind.OPERATION_DEFINITION ? node.operation : DisplayNodeNameMap[node.kind]} "${('alias' in node && ((_a = node.alias) === null || _a === void 0 ? void 0 : _a.value)) || ('name' in node && ((_b = node.name) === null || _b === void 0 ? void 0 : _b.value))}"`;
|
162
|
+
return `${node.kind === import_graphql.Kind.OPERATION_DEFINITION ? node.operation : DisplayNodeNameMap[node.kind]} "${"alias" in node && node.alias?.value || "name" in node && node.name?.value}"`;
|
125
163
|
}
|
126
|
-
exports.displayNodeName = displayNodeName;
|
127
164
|
function getNodeName(node) {
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
165
|
+
switch (node.kind) {
|
166
|
+
case import_graphql.Kind.OBJECT_TYPE_DEFINITION:
|
167
|
+
case import_graphql.Kind.OBJECT_TYPE_EXTENSION:
|
168
|
+
case import_graphql.Kind.INTERFACE_TYPE_DEFINITION:
|
169
|
+
case import_graphql.Kind.ENUM_TYPE_DEFINITION:
|
170
|
+
case import_graphql.Kind.SCALAR_TYPE_DEFINITION:
|
171
|
+
case import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION:
|
172
|
+
case import_graphql.Kind.UNION_TYPE_DEFINITION:
|
173
|
+
case import_graphql.Kind.DIRECTIVE_DEFINITION:
|
174
|
+
return displayNodeName(node);
|
175
|
+
case import_graphql.Kind.FIELD_DEFINITION:
|
176
|
+
case import_graphql.Kind.INPUT_VALUE_DEFINITION:
|
177
|
+
case import_graphql.Kind.ENUM_VALUE_DEFINITION:
|
178
|
+
return `${displayNodeName(node)} in ${displayNodeName(node.parent)}`;
|
179
|
+
case import_graphql.Kind.OPERATION_DEFINITION:
|
180
|
+
return node.name ? displayNodeName(node) : node.operation;
|
181
|
+
}
|
182
|
+
return "";
|
146
183
|
}
|
147
|
-
|
184
|
+
// Annotate the CommonJS export names for ESM import in node:
|
185
|
+
0 && (module.exports = {
|
186
|
+
ARRAY_DEFAULT_OPTIONS,
|
187
|
+
CWD,
|
188
|
+
REPORT_ON_FIRST_CHARACTER,
|
189
|
+
TYPES_KINDS,
|
190
|
+
VIRTUAL_DOCUMENT_REGEX,
|
191
|
+
camelCase,
|
192
|
+
convertCase,
|
193
|
+
displayNodeName,
|
194
|
+
englishJoinWords,
|
195
|
+
getLocation,
|
196
|
+
getNodeName,
|
197
|
+
getTypeName,
|
198
|
+
logger,
|
199
|
+
normalizePath,
|
200
|
+
pascalCase,
|
201
|
+
requireGraphQLSchemaFromContext,
|
202
|
+
requireSiblingsOperations,
|
203
|
+
truthy
|
204
|
+
});
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
declare class ModuleCache<T, K = any> {
|
2
2
|
map: Map<K, {
|
3
3
|
lastSeen: [number, number];
|
4
4
|
result: T;
|
@@ -8,3 +8,5 @@ export declare class ModuleCache<T, K = any> {
|
|
8
8
|
lifetime: number;
|
9
9
|
}): T | void;
|
10
10
|
}
|
11
|
+
|
12
|
+
export { ModuleCache };
|
package/esm/cache.js
CHANGED
@@ -1,26 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
import debugFactory from "debug";
|
2
|
+
const log = debugFactory("graphql-eslint:ModuleCache");
|
3
|
+
class ModuleCache {
|
4
|
+
constructor() {
|
5
|
+
this.map = /* @__PURE__ */ new Map();
|
6
|
+
}
|
7
|
+
set(cacheKey, result) {
|
8
|
+
this.map.set(cacheKey, { lastSeen: process.hrtime(), result });
|
9
|
+
log("setting entry for", cacheKey);
|
10
|
+
}
|
11
|
+
get(cacheKey, settings = {
|
12
|
+
lifetime: 10
|
13
|
+
/* seconds */
|
14
|
+
}) {
|
15
|
+
const value = this.map.get(cacheKey);
|
16
|
+
if (!value) {
|
17
|
+
log("cache miss for", cacheKey);
|
18
|
+
return;
|
8
19
|
}
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
}
|
13
|
-
get(cacheKey, settings = { lifetime: 10 /* seconds */ }) {
|
14
|
-
const value = this.map.get(cacheKey);
|
15
|
-
if (!value) {
|
16
|
-
log('cache miss for', cacheKey);
|
17
|
-
return;
|
18
|
-
}
|
19
|
-
const { lastSeen, result } = value;
|
20
|
-
// check freshness
|
21
|
-
if (process.env.NODE /* don't check for ESLint CLI */ ||
|
22
|
-
process.hrtime(lastSeen)[0] < settings.lifetime) {
|
23
|
-
return result;
|
24
|
-
}
|
20
|
+
const { lastSeen, result } = value;
|
21
|
+
if (process.env.NODE || process.hrtime(lastSeen)[0] < settings.lifetime) {
|
22
|
+
return result;
|
25
23
|
}
|
24
|
+
}
|
26
25
|
}
|
26
|
+
export {
|
27
|
+
ModuleCache
|
28
|
+
};
|
package/esm/configs/index.js
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
-
import operationsAllConfig from
|
2
|
-
import operationsRecommendedConfig from
|
3
|
-
import relayConfig from
|
4
|
-
import schemaAllConfig from
|
5
|
-
import schemaRecommendedConfig from
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
import operationsAllConfig from "./operations-all.js";
|
2
|
+
import operationsRecommendedConfig from "./operations-recommended.js";
|
3
|
+
import relayConfig from "./relay.js";
|
4
|
+
import schemaAllConfig from "./schema-all.js";
|
5
|
+
import schemaRecommendedConfig from "./schema-recommended.js";
|
6
|
+
const configs = {
|
7
|
+
"schema-recommended": schemaRecommendedConfig,
|
8
|
+
"schema-all": schemaAllConfig,
|
9
|
+
"operations-recommended": operationsRecommendedConfig,
|
10
|
+
"operations-all": operationsAllConfig,
|
11
|
+
relay: relayConfig
|
12
|
+
};
|
13
|
+
export {
|
14
|
+
configs
|
12
15
|
};
|