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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -1,88 +1,117 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = void 0;
4
- const utils_js_1 = require("../utils.js");
5
- const RULE_ID = 'lone-executable-definition';
6
- const definitionTypes = ['fragment', 'query', 'mutation', 'subscription'];
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 lone_executable_definition_exports = {};
20
+ __export(lone_executable_definition_exports, {
21
+ rule: () => rule
22
+ });
23
+ module.exports = __toCommonJS(lone_executable_definition_exports);
24
+ var import_utils = require("../utils.js");
25
+ const RULE_ID = "lone-executable-definition";
26
+ const definitionTypes = ["fragment", "query", "mutation", "subscription"];
7
27
  const schema = {
8
- type: 'array',
9
- maxItems: 1,
10
- items: {
11
- type: 'object',
12
- minProperties: 1,
13
- additionalProperties: false,
14
- properties: {
15
- ignore: {
16
- ...utils_js_1.ARRAY_DEFAULT_OPTIONS,
17
- maxItems: 3,
18
- items: {
19
- enum: definitionTypes,
20
- },
21
- description: 'Allow certain definitions to be placed alongside others.',
22
- },
28
+ type: "array",
29
+ maxItems: 1,
30
+ items: {
31
+ type: "object",
32
+ minProperties: 1,
33
+ additionalProperties: false,
34
+ properties: {
35
+ ignore: {
36
+ ...import_utils.ARRAY_DEFAULT_OPTIONS,
37
+ maxItems: 3,
38
+ // ignore all 4 types is redundant
39
+ items: {
40
+ enum: definitionTypes
23
41
  },
24
- },
42
+ description: "Allow certain definitions to be placed alongside others."
43
+ }
44
+ }
45
+ }
25
46
  };
26
- exports.rule = {
27
- meta: {
28
- type: 'suggestion',
29
- docs: {
30
- category: 'Operations',
31
- description: 'Require queries, mutations, subscriptions or fragments to be located in separate files.',
32
- url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
33
- examples: [
34
- {
35
- title: 'Incorrect',
36
- code: /* GraphQL */ `
47
+ const rule = {
48
+ meta: {
49
+ type: "suggestion",
50
+ docs: {
51
+ category: "Operations",
52
+ description: "Require queries, mutations, subscriptions or fragments to be located in separate files.",
53
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
54
+ examples: [
55
+ {
56
+ title: "Incorrect",
57
+ code: (
58
+ /* GraphQL */
59
+ `
37
60
  query Foo {
38
61
  id
39
62
  }
40
63
  fragment Bar on Baz {
41
64
  id
42
65
  }
43
- `,
44
- },
45
- {
46
- title: 'Correct',
47
- code: /* GraphQL */ `
66
+ `
67
+ )
68
+ },
69
+ {
70
+ title: "Correct",
71
+ code: (
72
+ /* GraphQL */
73
+ `
48
74
  query Foo {
49
75
  id
50
76
  }
51
- `,
52
- },
53
- ],
54
- },
55
- messages: {
56
- [RULE_ID]: '{{name}} should be in a separate file.',
57
- },
58
- schema,
77
+ `
78
+ )
79
+ }
80
+ ]
59
81
  },
60
- create(context) {
61
- var _a;
62
- const ignore = new Set(((_a = context.options[0]) === null || _a === void 0 ? void 0 : _a.ignore) || []);
63
- const definitions = [];
64
- return {
65
- ':matches(OperationDefinition, FragmentDefinition)'(node) {
66
- const type = 'operation' in node ? node.operation : 'fragment';
67
- if (!ignore.has(type)) {
68
- definitions.push({ type, node });
69
- }
70
- },
71
- 'Document:exit'() {
72
- var _a, _b;
73
- for (const { node, type } of definitions.slice(1) /* ignore first definition */) {
74
- let name = (0, utils_js_1.pascalCase)(type);
75
- const definitionName = (_a = node.name) === null || _a === void 0 ? void 0 : _a.value;
76
- if (definitionName) {
77
- name += ` "${definitionName}"`;
78
- }
79
- context.report({
80
- loc: ((_b = node.name) === null || _b === void 0 ? void 0 : _b.loc) || (0, utils_js_1.getLocation)(node.loc.start, type),
81
- messageId: RULE_ID,
82
- data: { name },
83
- });
84
- }
85
- },
86
- };
82
+ messages: {
83
+ [RULE_ID]: "{{name}} should be in a separate file."
87
84
  },
85
+ schema
86
+ },
87
+ create(context) {
88
+ const ignore = new Set(context.options[0]?.ignore || []);
89
+ const definitions = [];
90
+ return {
91
+ ":matches(OperationDefinition, FragmentDefinition)"(node) {
92
+ const type = "operation" in node ? node.operation : "fragment";
93
+ if (!ignore.has(type)) {
94
+ definitions.push({ type, node });
95
+ }
96
+ },
97
+ "Document:exit"() {
98
+ for (const { node, type } of definitions.slice(1)) {
99
+ let name = (0, import_utils.pascalCase)(type);
100
+ const definitionName = node.name?.value;
101
+ if (definitionName) {
102
+ name += ` "${definitionName}"`;
103
+ }
104
+ context.report({
105
+ loc: node.name?.loc || (0, import_utils.getLocation)(node.loc.start, type),
106
+ messageId: RULE_ID,
107
+ data: { name }
108
+ });
109
+ }
110
+ }
111
+ };
112
+ }
88
113
  };
114
+ // Annotate the CommonJS export names for ESM import in node:
115
+ 0 && (module.exports = {
116
+ rule
117
+ });
@@ -1,7 +1,14 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.js';
3
- import { CaseStyle as _CaseStyle } from '../utils.js';
4
- type CaseStyle = _CaseStyle | 'matchDocumentStyle';
2
+ import { i as GraphQLESLintRule } from '../types-e3367e3c.js';
3
+ import { CaseStyle as CaseStyle$1 } from '../utils.js';
4
+ import '@graphql-tools/utils';
5
+ import 'eslint';
6
+ import 'estree';
7
+ import 'graphql';
8
+ import 'graphql-config';
9
+ import '../estree-converter/types.js';
10
+
11
+ type CaseStyle = CaseStyle$1 | 'matchDocumentStyle';
5
12
  declare const schema: {
6
13
  readonly definitions: {
7
14
  readonly asString: {
@@ -67,6 +74,7 @@ declare const schema: {
67
74
  };
68
75
  };
69
76
  };
70
- export type RuleOptions = FromSchema<typeof schema>;
71
- export declare const rule: GraphQLESLintRule<RuleOptions>;
72
- export {};
77
+ type RuleOptions = FromSchema<typeof schema>;
78
+ declare const rule: GraphQLESLintRule<RuleOptions>;
79
+
80
+ export { RuleOptions, rule };
@@ -1,77 +1,102 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = void 0;
4
- const path_1 = require("path");
5
- const graphql_1 = require("graphql");
6
- const utils_js_1 = require("../utils.js");
7
- const MATCH_EXTENSION = 'MATCH_EXTENSION';
8
- const MATCH_STYLE = 'MATCH_STYLE';
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 match_document_filename_exports = {};
20
+ __export(match_document_filename_exports, {
21
+ rule: () => rule
22
+ });
23
+ module.exports = __toCommonJS(match_document_filename_exports);
24
+ var import_path = require("path");
25
+ var import_graphql = require("graphql");
26
+ var import_utils = require("../utils.js");
27
+ const MATCH_EXTENSION = "MATCH_EXTENSION";
28
+ const MATCH_STYLE = "MATCH_STYLE";
9
29
  const CASE_STYLES = [
10
- 'camelCase',
11
- 'PascalCase',
12
- 'snake_case',
13
- 'UPPER_CASE',
14
- 'kebab-case',
15
- 'matchDocumentStyle',
30
+ "camelCase",
31
+ "PascalCase",
32
+ "snake_case",
33
+ "UPPER_CASE",
34
+ "kebab-case",
35
+ "matchDocumentStyle"
16
36
  ];
17
37
  const schemaOption = {
18
- oneOf: [{ $ref: '#/definitions/asString' }, { $ref: '#/definitions/asObject' }],
38
+ oneOf: [{ $ref: "#/definitions/asString" }, { $ref: "#/definitions/asObject" }]
19
39
  };
20
40
  const schema = {
21
- definitions: {
22
- asString: {
23
- enum: CASE_STYLES,
24
- description: `One of: ${CASE_STYLES.map(t => `\`${t}\``).join(', ')}`,
25
- },
26
- asObject: {
27
- type: 'object',
28
- additionalProperties: false,
29
- minProperties: 1,
30
- properties: {
31
- style: { enum: CASE_STYLES },
32
- suffix: { type: 'string' },
33
- prefix: { type: 'string' },
34
- },
35
- },
36
- },
37
- type: 'array',
38
- minItems: 1,
39
- maxItems: 1,
40
- items: {
41
- type: 'object',
42
- additionalProperties: false,
43
- minProperties: 1,
44
- properties: {
45
- fileExtension: { enum: ['.gql', '.graphql'] },
46
- query: schemaOption,
47
- mutation: schemaOption,
48
- subscription: schemaOption,
49
- fragment: schemaOption,
50
- },
41
+ definitions: {
42
+ asString: {
43
+ enum: CASE_STYLES,
44
+ description: `One of: ${CASE_STYLES.map((t) => `\`${t}\``).join(", ")}`
51
45
  },
46
+ asObject: {
47
+ type: "object",
48
+ additionalProperties: false,
49
+ minProperties: 1,
50
+ properties: {
51
+ style: { enum: CASE_STYLES },
52
+ suffix: { type: "string" },
53
+ prefix: { type: "string" }
54
+ }
55
+ }
56
+ },
57
+ type: "array",
58
+ minItems: 1,
59
+ maxItems: 1,
60
+ items: {
61
+ type: "object",
62
+ additionalProperties: false,
63
+ minProperties: 1,
64
+ properties: {
65
+ fileExtension: { enum: [".gql", ".graphql"] },
66
+ query: schemaOption,
67
+ mutation: schemaOption,
68
+ subscription: schemaOption,
69
+ fragment: schemaOption
70
+ }
71
+ }
52
72
  };
53
- exports.rule = {
54
- meta: {
55
- type: 'suggestion',
56
- docs: {
57
- category: 'Operations',
58
- description: 'This rule allows you to enforce that the file name should match the operation name.',
59
- url: 'https://the-guild.dev/graphql/eslint/rules/match-document-filename',
60
- examples: [
61
- {
62
- title: 'Correct',
63
- usage: [{ fileExtension: '.gql' }],
64
- code: /* GraphQL */ `
73
+ const rule = {
74
+ meta: {
75
+ type: "suggestion",
76
+ docs: {
77
+ category: "Operations",
78
+ description: "This rule allows you to enforce that the file name should match the operation name.",
79
+ url: "https://the-guild.dev/graphql/eslint/rules/match-document-filename",
80
+ examples: [
81
+ {
82
+ title: "Correct",
83
+ usage: [{ fileExtension: ".gql" }],
84
+ code: (
85
+ /* GraphQL */
86
+ `
65
87
  # user.gql
66
88
  type User {
67
89
  id: ID!
68
90
  }
69
- `,
70
- },
71
- {
72
- title: 'Correct',
73
- usage: [{ query: 'snake_case' }],
74
- code: /* GraphQL */ `
91
+ `
92
+ )
93
+ },
94
+ {
95
+ title: "Correct",
96
+ usage: [{ query: "snake_case" }],
97
+ code: (
98
+ /* GraphQL */
99
+ `
75
100
  # user_by_id.gql
76
101
  query UserById {
77
102
  userById(id: 5) {
@@ -80,43 +105,55 @@ exports.rule = {
80
105
  fullName
81
106
  }
82
107
  }
83
- `,
84
- },
85
- {
86
- title: 'Correct',
87
- usage: [{ fragment: { style: 'kebab-case', suffix: '.fragment' } }],
88
- code: /* GraphQL */ `
108
+ `
109
+ )
110
+ },
111
+ {
112
+ title: "Correct",
113
+ usage: [{ fragment: { style: "kebab-case", suffix: ".fragment" } }],
114
+ code: (
115
+ /* GraphQL */
116
+ `
89
117
  # user-fields.fragment.gql
90
118
  fragment user_fields on User {
91
119
  id
92
120
  email
93
121
  }
94
- `,
95
- },
96
- {
97
- title: 'Correct',
98
- usage: [{ mutation: { style: 'PascalCase', suffix: 'Mutation' } }],
99
- code: /* GraphQL */ `
122
+ `
123
+ )
124
+ },
125
+ {
126
+ title: "Correct",
127
+ usage: [{ mutation: { style: "PascalCase", suffix: "Mutation" } }],
128
+ code: (
129
+ /* GraphQL */
130
+ `
100
131
  # DeleteUserMutation.gql
101
132
  mutation DELETE_USER {
102
133
  deleteUser(id: 5)
103
134
  }
104
- `,
105
- },
106
- {
107
- title: 'Incorrect',
108
- usage: [{ fileExtension: '.graphql' }],
109
- code: /* GraphQL */ `
135
+ `
136
+ )
137
+ },
138
+ {
139
+ title: "Incorrect",
140
+ usage: [{ fileExtension: ".graphql" }],
141
+ code: (
142
+ /* GraphQL */
143
+ `
110
144
  # post.gql
111
145
  type Post {
112
146
  id: ID!
113
147
  }
114
- `,
115
- },
116
- {
117
- title: 'Incorrect',
118
- usage: [{ query: 'PascalCase' }],
119
- code: /* GraphQL */ `
148
+ `
149
+ )
150
+ },
151
+ {
152
+ title: "Incorrect",
153
+ usage: [{ query: "PascalCase" }],
154
+ code: (
155
+ /* GraphQL */
156
+ `
120
157
  # user-by-id.gql
121
158
  query UserById {
122
159
  userById(id: 5) {
@@ -125,110 +162,120 @@ exports.rule = {
125
162
  fullName
126
163
  }
127
164
  }
128
- `,
129
- },
130
- {
131
- title: 'Correct',
132
- usage: [{ fragment: { style: 'kebab-case', prefix: 'mutation.' } }],
133
- code: /* GraphQL */ `
165
+ `
166
+ )
167
+ },
168
+ {
169
+ title: "Correct",
170
+ usage: [{ fragment: { style: "kebab-case", prefix: "mutation." } }],
171
+ code: (
172
+ /* GraphQL */
173
+ `
134
174
  # mutation.add-alert.graphql
135
175
  mutation addAlert {
136
176
  foo
137
177
  }
138
- `,
139
- },
140
- {
141
- title: 'Correct',
142
- usage: [{ fragment: { prefix: 'query.' } }],
143
- code: /* GraphQL */ `
178
+ `
179
+ )
180
+ },
181
+ {
182
+ title: "Correct",
183
+ usage: [{ fragment: { prefix: "query." } }],
184
+ code: (
185
+ /* GraphQL */
186
+ `
144
187
  # query.me.graphql
145
188
  query me {
146
189
  foo
147
190
  }
148
- `,
149
- },
150
- ],
151
- configOptions: [
152
- {
153
- query: 'kebab-case',
154
- mutation: 'kebab-case',
155
- subscription: 'kebab-case',
156
- fragment: 'kebab-case',
157
- },
158
- ],
159
- },
160
- messages: {
161
- [MATCH_EXTENSION]: 'File extension "{{ fileExtension }}" don\'t match extension "{{ expectedFileExtension }}"',
162
- [MATCH_STYLE]: 'Unexpected filename "{{ filename }}". Rename it to "{{ expectedFilename }}"',
163
- },
164
- schema,
165
- },
166
- create(context) {
167
- const options = context.options[0] || {
168
- fileExtension: null,
169
- };
170
- const filePath = context.getFilename();
171
- const isVirtualFile = utils_js_1.VIRTUAL_DOCUMENT_REGEX.test(filePath);
172
- if (process.env.NODE_ENV !== 'test' && isVirtualFile) {
173
- // Skip validation for code files
174
- return {};
191
+ `
192
+ )
175
193
  }
176
- const fileExtension = (0, path_1.extname)(filePath);
177
- const filename = (0, path_1.basename)(filePath, fileExtension);
178
- return {
179
- Document(documentNode) {
180
- var _a;
181
- if (options.fileExtension && options.fileExtension !== fileExtension) {
182
- context.report({
183
- loc: utils_js_1.REPORT_ON_FIRST_CHARACTER,
184
- messageId: MATCH_EXTENSION,
185
- data: {
186
- fileExtension,
187
- expectedFileExtension: options.fileExtension,
188
- },
189
- });
190
- }
191
- const firstOperation = documentNode.definitions.find(n => n.kind === graphql_1.Kind.OPERATION_DEFINITION);
192
- const firstFragment = documentNode.definitions.find(n => n.kind === graphql_1.Kind.FRAGMENT_DEFINITION);
193
- const node = firstOperation || firstFragment;
194
- if (!node) {
195
- return;
196
- }
197
- const docName = (_a = node.name) === null || _a === void 0 ? void 0 : _a.value;
198
- if (!docName) {
199
- return;
200
- }
201
- const docType = 'operation' in node ? node.operation : 'fragment';
202
- let option = options[docType];
203
- if (!option) {
204
- // Config not provided
205
- return;
206
- }
207
- if (typeof option === 'string') {
208
- option = { style: option };
209
- }
210
- const expectedExtension = options.fileExtension || fileExtension;
211
- let expectedFilename = option.prefix || '';
212
- if (option.style) {
213
- expectedFilename +=
214
- option.style === 'matchDocumentStyle' ? docName : (0, utils_js_1.convertCase)(option.style, docName);
215
- }
216
- else {
217
- expectedFilename += filename;
218
- }
219
- expectedFilename += (option.suffix || '') + expectedExtension;
220
- const filenameWithExtension = filename + expectedExtension;
221
- if (expectedFilename !== filenameWithExtension) {
222
- context.report({
223
- loc: utils_js_1.REPORT_ON_FIRST_CHARACTER,
224
- messageId: MATCH_STYLE,
225
- data: {
226
- expectedFilename,
227
- filename: filenameWithExtension,
228
- },
229
- });
230
- }
231
- },
232
- };
194
+ ],
195
+ configOptions: [
196
+ {
197
+ query: "kebab-case",
198
+ mutation: "kebab-case",
199
+ subscription: "kebab-case",
200
+ fragment: "kebab-case"
201
+ }
202
+ ]
203
+ },
204
+ messages: {
205
+ [MATCH_EXTENSION]: `File extension "{{ fileExtension }}" don't match extension "{{ expectedFileExtension }}"`,
206
+ [MATCH_STYLE]: 'Unexpected filename "{{ filename }}". Rename it to "{{ expectedFilename }}"'
233
207
  },
208
+ schema
209
+ },
210
+ create(context) {
211
+ const options = context.options[0] || {
212
+ fileExtension: null
213
+ };
214
+ const filePath = context.getFilename();
215
+ const isVirtualFile = import_utils.VIRTUAL_DOCUMENT_REGEX.test(filePath);
216
+ if (process.env.NODE_ENV !== "test" && isVirtualFile) {
217
+ return {};
218
+ }
219
+ const fileExtension = (0, import_path.extname)(filePath);
220
+ const filename = (0, import_path.basename)(filePath, fileExtension);
221
+ return {
222
+ Document(documentNode) {
223
+ if (options.fileExtension && options.fileExtension !== fileExtension) {
224
+ context.report({
225
+ loc: import_utils.REPORT_ON_FIRST_CHARACTER,
226
+ messageId: MATCH_EXTENSION,
227
+ data: {
228
+ fileExtension,
229
+ expectedFileExtension: options.fileExtension
230
+ }
231
+ });
232
+ }
233
+ const firstOperation = documentNode.definitions.find(
234
+ (n) => n.kind === import_graphql.Kind.OPERATION_DEFINITION
235
+ );
236
+ const firstFragment = documentNode.definitions.find(
237
+ (n) => n.kind === import_graphql.Kind.FRAGMENT_DEFINITION
238
+ );
239
+ const node = firstOperation || firstFragment;
240
+ if (!node) {
241
+ return;
242
+ }
243
+ const docName = node.name?.value;
244
+ if (!docName) {
245
+ return;
246
+ }
247
+ const docType = "operation" in node ? node.operation : "fragment";
248
+ let option = options[docType];
249
+ if (!option) {
250
+ return;
251
+ }
252
+ if (typeof option === "string") {
253
+ option = { style: option };
254
+ }
255
+ const expectedExtension = options.fileExtension || fileExtension;
256
+ let expectedFilename = option.prefix || "";
257
+ if (option.style) {
258
+ expectedFilename += option.style === "matchDocumentStyle" ? docName : (0, import_utils.convertCase)(option.style, docName);
259
+ } else {
260
+ expectedFilename += filename;
261
+ }
262
+ expectedFilename += (option.suffix || "") + expectedExtension;
263
+ const filenameWithExtension = filename + expectedExtension;
264
+ if (expectedFilename !== filenameWithExtension) {
265
+ context.report({
266
+ loc: import_utils.REPORT_ON_FIRST_CHARACTER,
267
+ messageId: MATCH_STYLE,
268
+ data: {
269
+ expectedFilename,
270
+ filename: filenameWithExtension
271
+ }
272
+ });
273
+ }
274
+ }
275
+ };
276
+ }
234
277
  };
278
+ // Annotate the CommonJS export names for ESM import in node:
279
+ 0 && (module.exports = {
280
+ rule
281
+ });