@graphql-eslint/eslint-plugin 3.19.3 → 3.20.0-alpha-20230703154330-0d51273

Sign up to get free protection for your applications and to get access to all the features.
Files changed (302) hide show
  1. package/{typings → cjs}/cache.d.ts +3 -1
  2. package/cjs/cache.js +57 -26
  3. package/{typings → cjs}/configs/index.d.ts +3 -1
  4. package/cjs/configs/index.js +47 -14
  5. package/{typings → cjs}/configs/operations-all.d.ts +2 -1
  6. package/cjs/configs/operations-all.js +47 -30
  7. package/{typings → cjs}/configs/operations-recommended.d.ts +2 -1
  8. package/cjs/configs/operations-recommended.js +72 -55
  9. package/{typings → cjs}/configs/relay.d.ts +2 -1
  10. package/cjs/configs/relay.js +31 -11
  11. package/{typings → cjs}/configs/schema-all.d.ts +2 -1
  12. package/cjs/configs/schema-all.js +41 -24
  13. package/{typings → cjs}/configs/schema-recommended.d.ts +2 -1
  14. package/cjs/configs/schema-recommended.js +68 -51
  15. package/{typings → cjs}/documents.d.ts +4 -1
  16. package/cjs/documents.js +74 -43
  17. package/cjs/estree-converter/converter.d.ts +8 -0
  18. package/cjs/estree-converter/converter.js +80 -59
  19. package/cjs/estree-converter/index.d.ts +8 -0
  20. package/cjs/estree-converter/index.js +25 -5
  21. package/{typings → cjs}/estree-converter/types.d.ts +7 -5
  22. package/cjs/estree-converter/types.js +16 -0
  23. package/cjs/estree-converter/utils.d.ts +18 -0
  24. package/cjs/estree-converter/utils.js +119 -95
  25. package/{typings → cjs}/flat-configs.d.ts +12 -1
  26. package/cjs/flat-configs.js +56 -32
  27. package/cjs/graphql-config.d.ts +13 -0
  28. package/cjs/graphql-config.js +78 -47
  29. package/cjs/index.d.ts +22 -0
  30. package/cjs/index.js +50 -18
  31. package/cjs/parser.d.ts +12 -0
  32. package/cjs/parser.js +96 -76
  33. package/cjs/processor.d.ts +9 -0
  34. package/cjs/processor.js +119 -88
  35. package/{typings → cjs}/rules/alphabetize.d.ts +12 -4
  36. package/cjs/rules/alphabetize.js +337 -295
  37. package/{typings → cjs}/rules/description-style.d.ts +12 -4
  38. package/cjs/rules/description-style.js +96 -66
  39. package/cjs/rules/graphql-js-validation.d.ts +12 -0
  40. package/cjs/rules/graphql-js-validation.js +595 -433
  41. package/cjs/rules/index.d.ts +125 -0
  42. package/cjs/rules/index.js +97 -76
  43. package/{typings → cjs}/rules/input-name.d.ts +12 -4
  44. package/cjs/rules/input-name.js +153 -123
  45. package/{typings → cjs}/rules/lone-executable-definition.d.ts +12 -4
  46. package/cjs/rules/lone-executable-definition.js +101 -72
  47. package/{typings → cjs}/rules/match-document-filename.d.ts +14 -6
  48. package/cjs/rules/match-document-filename.js +229 -182
  49. package/{typings → cjs}/rules/naming-convention.d.ts +12 -4
  50. package/cjs/rules/naming-convention.js +380 -316
  51. package/cjs/rules/no-anonymous-operations.d.ts +12 -0
  52. package/cjs/rules/no-anonymous-operations.js +88 -57
  53. package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
  54. package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +82 -50
  55. package/cjs/rules/no-deprecated.d.ts +12 -0
  56. package/cjs/rules/no-deprecated.js +106 -75
  57. package/cjs/rules/no-duplicate-fields.d.ts +12 -0
  58. package/cjs/rules/no-duplicate-fields.js +116 -82
  59. package/cjs/rules/no-hashtag-description.d.ts +13 -0
  60. package/cjs/rules/no-hashtag-description.js +119 -82
  61. package/cjs/rules/no-one-place-fragments.d.ts +12 -0
  62. package/cjs/rules/no-one-place-fragments.js +88 -58
  63. package/{typings → cjs}/rules/no-root-type.d.ts +12 -4
  64. package/cjs/rules/no-root-type.js +101 -74
  65. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
  66. package/cjs/rules/no-scalar-result-type-on-mutation.js +90 -60
  67. package/cjs/rules/no-typename-prefix.d.ts +12 -0
  68. package/cjs/rules/no-typename-prefix.js +88 -55
  69. package/cjs/rules/no-unreachable-types.d.ts +12 -0
  70. package/cjs/rules/no-unreachable-types.js +169 -134
  71. package/cjs/rules/no-unused-fields.d.ts +12 -0
  72. package/cjs/rules/no-unused-fields.js +117 -92
  73. package/{typings → cjs}/rules/relay-arguments.d.ts +12 -4
  74. package/cjs/rules/relay-arguments.js +136 -110
  75. package/cjs/rules/relay-connection-types.d.ts +13 -0
  76. package/cjs/rules/relay-connection-types.js +123 -94
  77. package/{typings → cjs}/rules/relay-edge-types.d.ts +12 -4
  78. package/cjs/rules/relay-edge-types.js +196 -179
  79. package/cjs/rules/relay-page-info.d.ts +12 -0
  80. package/cjs/rules/relay-page-info.js +108 -89
  81. package/{typings → cjs}/rules/require-deprecation-date.d.ts +12 -4
  82. package/cjs/rules/require-deprecation-date.js +143 -112
  83. package/cjs/rules/require-deprecation-reason.d.ts +12 -0
  84. package/cjs/rules/require-deprecation-reason.js +80 -46
  85. package/{typings → cjs}/rules/require-description.d.ts +13 -5
  86. package/cjs/rules/require-description.js +170 -132
  87. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +12 -0
  88. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +81 -51
  89. package/{typings → cjs}/rules/require-id-when-available.d.ts +12 -4
  90. package/cjs/rules/require-id-when-available.js +196 -173
  91. package/cjs/rules/require-import-fragment.d.ts +12 -0
  92. package/cjs/rules/require-import-fragment.js +138 -88
  93. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
  94. package/cjs/rules/require-nullable-fields-with-oneof.js +80 -50
  95. package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
  96. package/cjs/rules/require-nullable-result-in-root.js +97 -68
  97. package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
  98. package/cjs/rules/require-type-pattern-with-oneof.js +70 -42
  99. package/{typings → cjs}/rules/selection-set-depth.d.ts +12 -4
  100. package/cjs/rules/selection-set-depth.js +147 -107
  101. package/{typings → cjs}/rules/strict-id-in-types.d.ts +12 -4
  102. package/cjs/rules/strict-id-in-types.js +143 -122
  103. package/cjs/rules/unique-fragment-name.d.ts +13 -0
  104. package/cjs/rules/unique-fragment-name.js +88 -62
  105. package/cjs/rules/unique-operation-name.d.ts +12 -0
  106. package/cjs/rules/unique-operation-name.js +65 -35
  107. package/cjs/schema.d.ts +12 -0
  108. package/cjs/schema.js +62 -30
  109. package/cjs/siblings.d.ts +8 -0
  110. package/cjs/siblings.js +124 -106
  111. package/cjs/testkit.d.ts +8 -0
  112. package/cjs/testkit.js +165 -144
  113. package/cjs/types-e3367e3c.d.ts +129 -0
  114. package/cjs/types.d.ts +8 -0
  115. package/cjs/types.js +16 -0
  116. package/cjs/utils.d.ts +44 -0
  117. package/cjs/utils.js +181 -124
  118. package/{typings/cache.d.cts → esm/cache.d.mts} +3 -1
  119. package/esm/cache.js +25 -23
  120. package/{typings/configs/index.d.cts → esm/configs/index.d.mts} +3 -1
  121. package/esm/configs/index.js +14 -11
  122. package/{typings/configs/operations-all.d.cts → esm/configs/operations-all.d.mts} +2 -1
  123. package/esm/configs/operations-all.js +28 -28
  124. package/{typings/configs/operations-recommended.d.cts → esm/configs/operations-recommended.d.mts} +2 -1
  125. package/esm/configs/operations-recommended.js +53 -53
  126. package/{typings/configs/relay.d.cts → esm/configs/relay.d.mts} +2 -1
  127. package/esm/configs/relay.js +12 -9
  128. package/{typings/configs/schema-all.d.cts → esm/configs/schema-all.d.mts} +2 -1
  129. package/esm/configs/schema-all.js +22 -22
  130. package/{typings/configs/schema-recommended.d.cts → esm/configs/schema-recommended.d.mts} +2 -1
  131. package/esm/configs/schema-recommended.js +49 -49
  132. package/{typings/documents.d.cts → esm/documents.d.mts} +4 -1
  133. package/esm/documents.js +41 -39
  134. package/esm/estree-converter/converter.d.mts +8 -0
  135. package/esm/estree-converter/converter.js +63 -57
  136. package/esm/estree-converter/index.d.mts +8 -0
  137. package/esm/estree-converter/index.js +3 -3
  138. package/{typings/estree-converter/types.d.cts → esm/estree-converter/types.d.mts} +7 -5
  139. package/esm/estree-converter/utils.d.mts +18 -0
  140. package/esm/estree-converter/utils.js +102 -93
  141. package/{typings/flat-configs.d.cts → esm/flat-configs.d.mts} +13 -2
  142. package/esm/flat-configs.js +33 -30
  143. package/esm/graphql-config.d.mts +13 -0
  144. package/esm/graphql-config.js +49 -44
  145. package/esm/index.d.mts +22 -0
  146. package/esm/index.js +18 -9
  147. package/esm/package.json +1 -1
  148. package/esm/parser.d.mts +12 -0
  149. package/esm/parser.js +64 -73
  150. package/esm/processor.d.mts +9 -0
  151. package/esm/processor.js +98 -86
  152. package/{typings/rules/alphabetize.d.cts → esm/rules/alphabetize.d.mts} +12 -4
  153. package/esm/rules/alphabetize.js +304 -290
  154. package/{typings/rules/description-style.d.cts → esm/rules/description-style.d.mts} +12 -4
  155. package/esm/rules/description-style.js +73 -64
  156. package/esm/rules/graphql-js-validation.d.mts +12 -0
  157. package/esm/rules/graphql-js-validation.js +580 -429
  158. package/esm/rules/index.d.mts +125 -0
  159. package/esm/rules/index.js +74 -74
  160. package/{typings/rules/input-name.d.cts → esm/rules/input-name.d.mts} +12 -4
  161. package/esm/rules/input-name.js +132 -121
  162. package/{typings/rules/lone-executable-definition.d.cts → esm/rules/lone-executable-definition.d.mts} +12 -4
  163. package/esm/rules/lone-executable-definition.js +78 -70
  164. package/{typings/rules/match-document-filename.d.cts → esm/rules/match-document-filename.d.mts} +14 -6
  165. package/esm/rules/match-document-filename.js +210 -180
  166. package/{typings/rules/naming-convention.d.cts → esm/rules/naming-convention.d.mts} +12 -4
  167. package/esm/rules/naming-convention.js +363 -314
  168. package/esm/rules/no-anonymous-operations.d.mts +12 -0
  169. package/esm/rules/no-anonymous-operations.js +65 -55
  170. package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
  171. package/esm/rules/no-case-insensitive-enum-values-duplicates.js +59 -48
  172. package/esm/rules/no-deprecated.d.mts +12 -0
  173. package/esm/rules/no-deprecated.js +83 -73
  174. package/esm/rules/no-duplicate-fields.d.mts +12 -0
  175. package/esm/rules/no-duplicate-fields.js +93 -80
  176. package/esm/rules/no-hashtag-description.d.mts +13 -0
  177. package/esm/rules/no-hashtag-description.js +95 -80
  178. package/esm/rules/no-one-place-fragments.d.mts +12 -0
  179. package/esm/rules/no-one-place-fragments.js +65 -56
  180. package/{typings/rules/no-root-type.d.cts → esm/rules/no-root-type.d.mts} +12 -4
  181. package/esm/rules/no-root-type.js +78 -72
  182. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
  183. package/esm/rules/no-scalar-result-type-on-mutation.js +67 -58
  184. package/esm/rules/no-typename-prefix.d.mts +12 -0
  185. package/esm/rules/no-typename-prefix.js +65 -53
  186. package/esm/rules/no-unreachable-types.d.mts +12 -0
  187. package/esm/rules/no-unreachable-types.js +141 -131
  188. package/esm/rules/no-unused-fields.d.mts +12 -0
  189. package/esm/rules/no-unused-fields.js +94 -90
  190. package/{typings/rules/relay-arguments.d.cts → esm/rules/relay-arguments.d.mts} +12 -4
  191. package/esm/rules/relay-arguments.js +113 -108
  192. package/esm/rules/relay-connection-types.d.mts +13 -0
  193. package/esm/rules/relay-connection-types.js +98 -91
  194. package/{typings/rules/relay-edge-types.d.cts → esm/rules/relay-edge-types.d.mts} +12 -4
  195. package/esm/rules/relay-edge-types.js +178 -177
  196. package/esm/rules/relay-page-info.d.mts +12 -0
  197. package/esm/rules/relay-page-info.js +84 -86
  198. package/{typings/rules/require-deprecation-date.d.cts → esm/rules/require-deprecation-date.d.mts} +12 -4
  199. package/esm/rules/require-deprecation-date.js +120 -110
  200. package/esm/rules/require-deprecation-reason.d.mts +12 -0
  201. package/esm/rules/require-deprecation-reason.js +57 -44
  202. package/{typings/rules/require-description.d.cts → esm/rules/require-description.d.mts} +13 -5
  203. package/esm/rules/require-description.js +151 -130
  204. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +12 -0
  205. package/esm/rules/require-field-of-type-query-in-mutation-result.js +58 -49
  206. package/{typings/rules/require-id-when-available.d.cts → esm/rules/require-id-when-available.d.mts} +12 -4
  207. package/esm/rules/require-id-when-available.js +186 -171
  208. package/esm/rules/require-import-fragment.d.mts +12 -0
  209. package/esm/rules/require-import-fragment.js +105 -85
  210. package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
  211. package/esm/rules/require-nullable-fields-with-oneof.js +57 -48
  212. package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
  213. package/esm/rules/require-nullable-result-in-root.js +74 -66
  214. package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
  215. package/esm/rules/require-type-pattern-with-oneof.js +47 -40
  216. package/{typings/rules/selection-set-depth.d.cts → esm/rules/selection-set-depth.d.mts} +12 -4
  217. package/esm/rules/selection-set-depth.js +114 -104
  218. package/{typings/rules/strict-id-in-types.d.cts → esm/rules/strict-id-in-types.d.mts} +12 -4
  219. package/esm/rules/strict-id-in-types.js +125 -119
  220. package/esm/rules/unique-fragment-name.d.mts +13 -0
  221. package/esm/rules/unique-fragment-name.js +65 -60
  222. package/esm/rules/unique-operation-name.d.mts +12 -0
  223. package/esm/rules/unique-operation-name.js +42 -33
  224. package/esm/schema.d.mts +12 -0
  225. package/esm/schema.js +29 -26
  226. package/esm/siblings.d.mts +8 -0
  227. package/esm/siblings.js +105 -104
  228. package/esm/testkit.d.mts +8 -0
  229. package/esm/testkit.js +132 -141
  230. package/esm/types-2e1afd7c.d.ts +129 -0
  231. package/esm/types.d.mts +8 -0
  232. package/esm/utils.d.mts +44 -0
  233. package/esm/utils.js +138 -116
  234. package/package.json +40 -30
  235. package/typings/estree-converter/converter.d.cts +0 -3
  236. package/typings/estree-converter/converter.d.ts +0 -3
  237. package/typings/estree-converter/index.d.cts +0 -3
  238. package/typings/estree-converter/index.d.ts +0 -3
  239. package/typings/estree-converter/utils.d.cts +0 -13
  240. package/typings/estree-converter/utils.d.ts +0 -13
  241. package/typings/graphql-config.d.cts +0 -4
  242. package/typings/graphql-config.d.ts +0 -4
  243. package/typings/index.d.cts +0 -10
  244. package/typings/index.d.ts +0 -10
  245. package/typings/parser.d.cts +0 -2
  246. package/typings/parser.d.ts +0 -2
  247. package/typings/processor.d.cts +0 -6
  248. package/typings/processor.d.ts +0 -6
  249. package/typings/rules/graphql-js-validation.d.cts +0 -2
  250. package/typings/rules/graphql-js-validation.d.ts +0 -2
  251. package/typings/rules/index.d.cts +0 -111
  252. package/typings/rules/index.d.ts +0 -111
  253. package/typings/rules/no-anonymous-operations.d.cts +0 -2
  254. package/typings/rules/no-anonymous-operations.d.ts +0 -2
  255. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.cts +0 -2
  256. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -2
  257. package/typings/rules/no-deprecated.d.cts +0 -2
  258. package/typings/rules/no-deprecated.d.ts +0 -2
  259. package/typings/rules/no-duplicate-fields.d.cts +0 -2
  260. package/typings/rules/no-duplicate-fields.d.ts +0 -2
  261. package/typings/rules/no-hashtag-description.d.cts +0 -3
  262. package/typings/rules/no-hashtag-description.d.ts +0 -3
  263. package/typings/rules/no-one-place-fragments.d.cts +0 -2
  264. package/typings/rules/no-one-place-fragments.d.ts +0 -2
  265. package/typings/rules/no-scalar-result-type-on-mutation.d.cts +0 -2
  266. package/typings/rules/no-scalar-result-type-on-mutation.d.ts +0 -2
  267. package/typings/rules/no-typename-prefix.d.cts +0 -2
  268. package/typings/rules/no-typename-prefix.d.ts +0 -2
  269. package/typings/rules/no-unreachable-types.d.cts +0 -2
  270. package/typings/rules/no-unreachable-types.d.ts +0 -2
  271. package/typings/rules/no-unused-fields.d.cts +0 -2
  272. package/typings/rules/no-unused-fields.d.ts +0 -2
  273. package/typings/rules/relay-connection-types.d.cts +0 -4
  274. package/typings/rules/relay-connection-types.d.ts +0 -4
  275. package/typings/rules/relay-page-info.d.cts +0 -2
  276. package/typings/rules/relay-page-info.d.ts +0 -2
  277. package/typings/rules/require-deprecation-reason.d.cts +0 -2
  278. package/typings/rules/require-deprecation-reason.d.ts +0 -2
  279. package/typings/rules/require-field-of-type-query-in-mutation-result.d.cts +0 -2
  280. package/typings/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -2
  281. package/typings/rules/require-import-fragment.d.cts +0 -2
  282. package/typings/rules/require-import-fragment.d.ts +0 -2
  283. package/typings/rules/require-nullable-fields-with-oneof.d.cts +0 -2
  284. package/typings/rules/require-nullable-fields-with-oneof.d.ts +0 -2
  285. package/typings/rules/require-nullable-result-in-root.d.cts +0 -2
  286. package/typings/rules/require-nullable-result-in-root.d.ts +0 -2
  287. package/typings/rules/require-type-pattern-with-oneof.d.cts +0 -2
  288. package/typings/rules/require-type-pattern-with-oneof.d.ts +0 -2
  289. package/typings/rules/unique-fragment-name.d.cts +0 -5
  290. package/typings/rules/unique-fragment-name.d.ts +0 -5
  291. package/typings/rules/unique-operation-name.d.cts +0 -2
  292. package/typings/rules/unique-operation-name.d.ts +0 -2
  293. package/typings/schema.d.cts +0 -3
  294. package/typings/schema.d.ts +0 -3
  295. package/typings/siblings.d.cts +0 -22
  296. package/typings/siblings.d.ts +0 -22
  297. package/typings/testkit.d.cts +0 -29
  298. package/typings/testkit.d.ts +0 -29
  299. package/typings/types.d.cts +0 -83
  300. package/typings/types.d.ts +0 -83
  301. package/typings/utils.d.cts +0 -40
  302. 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
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNodeName = exports.displayNodeName = exports.truthy = exports.englishJoinWords = exports.ARRAY_DEFAULT_OPTIONS = exports.REPORT_ON_FIRST_CHARACTER = exports.getLocation = exports.convertCase = exports.camelCase = exports.pascalCase = exports.TYPES_KINDS = exports.getTypeName = exports.CWD = exports.VIRTUAL_DOCUMENT_REGEX = exports.normalizePath = exports.logger = exports.requireGraphQLSchemaFromContext = exports.requireSiblingsOperations = void 0;
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const graphql_1 = require("graphql");
7
- const lodash_lowercase_1 = tslib_1.__importDefault(require("lodash.lowercase"));
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
- const { siblingOperations } = context.parserServices;
10
- if (!siblingOperations.available) {
11
- throw new Error(`Rule \`${ruleId}\` requires \`parserOptions.operations\` to be set and loaded. See https://bit.ly/graphql-eslint-operations for more info`);
12
- }
13
- return siblingOperations;
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
- const { schema } = context.parserServices;
18
- if (!schema) {
19
- throw new Error(`Rule \`${ruleId}\` requires \`parserOptions.schema\` to be set and loaded. See https://bit.ly/graphql-eslint-schema for more info`);
20
- }
21
- return schema;
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
- exports.requireGraphQLSchemaFromContext = requireGraphQLSchemaFromContext;
24
- exports.logger = {
25
- error: (...args) =>
72
+ const logger = {
73
+ error: (...args) => (
26
74
  // eslint-disable-next-line no-console
27
- console.error(chalk_1.default.red('error'), '[graphql-eslint]', (0, chalk_1.default)(...args)),
28
- warn: (...args) =>
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(chalk_1.default.yellow('warning'), '[graphql-eslint]', (0, chalk_1.default)(...args)),
79
+ console.warn(import_chalk.default.yellow("warning"), "[graphql-eslint]", (0, import_chalk.default)(...args))
80
+ )
31
81
  };
32
- const normalizePath = (path) => (path || '').replace(/\\/g, '/');
33
- exports.normalizePath = normalizePath;
34
- exports.VIRTUAL_DOCUMENT_REGEX = /\/\d+_document.graphql$/;
35
- exports.CWD = process.cwd();
36
- const getTypeName = (node) => 'type' in node ? (0, exports.getTypeName)(node.type) : 'name' in node && node.name ? node.name.value : '';
37
- exports.getTypeName = getTypeName;
38
- exports.TYPES_KINDS = [
39
- graphql_1.Kind.OBJECT_TYPE_DEFINITION,
40
- graphql_1.Kind.INTERFACE_TYPE_DEFINITION,
41
- graphql_1.Kind.ENUM_TYPE_DEFINITION,
42
- graphql_1.Kind.SCALAR_TYPE_DEFINITION,
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, lodash_lowercase_1.default)(str)
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
- const result = (0, exports.pascalCase)(str);
53
- return result.charAt(0).toLowerCase() + result.slice(1);
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
- switch (style) {
58
- case 'camelCase':
59
- return (0, exports.camelCase)(str);
60
- case 'PascalCase':
61
- return (0, exports.pascalCase)(str);
62
- case 'snake_case':
63
- return (0, lodash_lowercase_1.default)(str).replace(/ /g, '_');
64
- case 'UPPER_CASE':
65
- return (0, lodash_lowercase_1.default)(str).replace(/ /g, '_').toUpperCase();
66
- case 'kebab-case':
67
- return (0, lodash_lowercase_1.default)(str).replace(/ /g, '-');
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
- exports.convertCase = convertCase;
71
- function getLocation(start, fieldName = '') {
72
- const { line, column } = start;
73
- return {
74
- start: {
75
- line,
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('en-US', { type: 'disjunction' }).format(words);
95
- exports.englishJoinWords = englishJoinWords;
135
+ const englishJoinWords = (words) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(words);
96
136
  function truthy(value) {
97
- return !!value;
137
+ return !!value;
98
138
  }
99
- exports.truthy = truthy;
100
139
  const DisplayNodeNameMap = {
101
- [graphql_1.Kind.OBJECT_TYPE_DEFINITION]: 'type',
102
- [graphql_1.Kind.OBJECT_TYPE_EXTENSION]: 'type',
103
- [graphql_1.Kind.INTERFACE_TYPE_DEFINITION]: 'interface',
104
- [graphql_1.Kind.INTERFACE_TYPE_EXTENSION]: 'interface',
105
- [graphql_1.Kind.ENUM_TYPE_DEFINITION]: 'enum',
106
- [graphql_1.Kind.ENUM_TYPE_EXTENSION]: 'enum',
107
- [graphql_1.Kind.SCALAR_TYPE_DEFINITION]: 'scalar',
108
- [graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION]: 'input',
109
- [graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION]: 'input',
110
- [graphql_1.Kind.UNION_TYPE_DEFINITION]: 'union',
111
- [graphql_1.Kind.UNION_TYPE_EXTENSION]: 'union',
112
- [graphql_1.Kind.DIRECTIVE_DEFINITION]: 'directive',
113
- [graphql_1.Kind.FIELD_DEFINITION]: 'field',
114
- [graphql_1.Kind.ENUM_VALUE_DEFINITION]: 'enum value',
115
- [graphql_1.Kind.INPUT_VALUE_DEFINITION]: 'input value',
116
- [graphql_1.Kind.ARGUMENT]: 'argument',
117
- [graphql_1.Kind.VARIABLE]: 'variable',
118
- [graphql_1.Kind.FRAGMENT_DEFINITION]: 'fragment',
119
- [graphql_1.Kind.OPERATION_DEFINITION]: 'operation',
120
- [graphql_1.Kind.FIELD]: 'field',
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
- var _a, _b;
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
- switch (node.kind) {
129
- case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
130
- case graphql_1.Kind.OBJECT_TYPE_EXTENSION:
131
- case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
132
- case graphql_1.Kind.ENUM_TYPE_DEFINITION:
133
- case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
134
- case graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
135
- case graphql_1.Kind.UNION_TYPE_DEFINITION:
136
- case graphql_1.Kind.DIRECTIVE_DEFINITION:
137
- return displayNodeName(node);
138
- case graphql_1.Kind.FIELD_DEFINITION:
139
- case graphql_1.Kind.INPUT_VALUE_DEFINITION:
140
- case graphql_1.Kind.ENUM_VALUE_DEFINITION:
141
- return `${displayNodeName(node)} in ${displayNodeName(node.parent)}`;
142
- case graphql_1.Kind.OPERATION_DEFINITION:
143
- return node.name ? displayNodeName(node) : node.operation;
144
- }
145
- return '';
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
- exports.getNodeName = getNodeName;
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
- export declare class ModuleCache<T, K = any> {
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
- // Based on the `eslint-plugin-import`'s cache
2
- // https://github.com/import-js/eslint-plugin-import/blob/main/utils/ModuleCache.js
3
- import debugFactory from 'debug';
4
- const log = debugFactory('graphql-eslint:ModuleCache');
5
- export class ModuleCache {
6
- constructor() {
7
- this.map = new Map();
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
- set(cacheKey, result) {
10
- this.map.set(cacheKey, { lastSeen: process.hrtime(), result });
11
- log('setting entry for', cacheKey);
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
+ };
@@ -1,4 +1,4 @@
1
- export declare const configs: {
1
+ declare const configs: {
2
2
  'schema-recommended': {
3
3
  parser: string;
4
4
  plugins: string[];
@@ -144,3 +144,5 @@ export declare const configs: {
144
144
  };
145
145
  };
146
146
  };
147
+
148
+ export { configs };
@@ -1,12 +1,15 @@
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
- export const configs = {
7
- 'schema-recommended': schemaRecommendedConfig,
8
- 'schema-all': schemaAllConfig,
9
- 'operations-recommended': operationsRecommendedConfig,
10
- 'operations-all': operationsAllConfig,
11
- relay: relayConfig,
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
  };
@@ -18,4 +18,5 @@ declare const _default: {
18
18
  '@graphql-eslint/unique-operation-name': string;
19
19
  };
20
20
  };
21
- export default _default;
21
+
22
+ export { _default as default };