@graphql-eslint/eslint-plugin 3.14.0-alpha-20221220160018-ba4832c → 3.14.0-alpha-20221220173226-ecd822d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -782,6 +782,8 @@ const schema = {
782
782
  description: 'Definitions – `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.',
783
783
  default: false,
784
784
  },
785
+ ignorePrefix: ARRAY_DEFAULT_OPTIONS,
786
+ ignoreSuffix: ARRAY_DEFAULT_OPTIONS,
785
787
  },
786
788
  },
787
789
  };
@@ -947,6 +949,24 @@ const rule = {
947
949
  const prevName = ('alias' in prevNode && ((_c = prevNode.alias) === null || _c === void 0 ? void 0 : _c.value)) ||
948
950
  ('name' in prevNode && ((_d = prevNode.name) === null || _d === void 0 ? void 0 : _d.value));
949
951
  if (prevName) {
952
+ if ((opts.ignorePrefix || []).length > 0) {
953
+ const shouldSkipIgnorePrefix = opts.ignorePrefix.some(prefix => prefix === prevName ||
954
+ prefix === currName ||
955
+ prevName.startsWith(prefix) ||
956
+ currName.startsWith(prefix));
957
+ if (shouldSkipIgnorePrefix) {
958
+ continue;
959
+ }
960
+ }
961
+ if ((opts.ignoreSuffix || []).length > 0) {
962
+ const shouldSkipIgnoreSuffix = opts.ignoreSuffix.some(suffix => suffix === prevName ||
963
+ suffix === currName ||
964
+ prevName.endsWith(suffix) ||
965
+ currName.endsWith(suffix));
966
+ if (shouldSkipIgnoreSuffix) {
967
+ continue;
968
+ }
969
+ }
950
970
  // Compare with lexicographic order
951
971
  const compareResult = prevName.localeCompare(currName);
952
972
  const shouldSort = compareResult === 1;
@@ -1353,6 +1373,7 @@ const schema$4 = {
1353
1373
  properties: {
1354
1374
  style: { enum: CASE_STYLES },
1355
1375
  suffix: { type: 'string' },
1376
+ prefix: { type: 'string' },
1356
1377
  },
1357
1378
  },
1358
1379
  },
@@ -1447,6 +1468,26 @@ const rule$4 = {
1447
1468
  fullName
1448
1469
  }
1449
1470
  }
1471
+ `,
1472
+ },
1473
+ {
1474
+ title: 'Correct',
1475
+ usage: [{ fragment: { style: 'kebab-case', prefix: 'mutation.' } }],
1476
+ code: /* GraphQL */ `
1477
+ # mutation.add-alert.graphql
1478
+ mutation addAlert {
1479
+ foo
1480
+ }
1481
+ `,
1482
+ },
1483
+ {
1484
+ title: 'Correct',
1485
+ usage: [{ fragment: { prefix: 'query.' } }],
1486
+ code: /* GraphQL */ `
1487
+ # query.me.graphql
1488
+ query me {
1489
+ foo
1490
+ }
1450
1491
  `,
1451
1492
  },
1452
1493
  ],
@@ -1510,13 +1551,13 @@ const rule$4 = {
1510
1551
  option = { style: option };
1511
1552
  }
1512
1553
  const expectedExtension = options.fileExtension || fileExtension;
1513
- let expectedFilename;
1554
+ let expectedFilename = option.prefix || '';
1514
1555
  if (option.style) {
1515
- expectedFilename =
1556
+ expectedFilename +=
1516
1557
  option.style === 'matchDocumentStyle' ? docName : convertCase(option.style, docName);
1517
1558
  }
1518
1559
  else {
1519
- expectedFilename = filename;
1560
+ expectedFilename += filename;
1520
1561
  }
1521
1562
  expectedFilename += (option.suffix || '') + expectedExtension;
1522
1563
  const filenameWithExtension = filename + expectedExtension;
package/index.mjs CHANGED
@@ -776,6 +776,8 @@ const schema = {
776
776
  description: 'Definitions – `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.',
777
777
  default: false,
778
778
  },
779
+ ignorePrefix: ARRAY_DEFAULT_OPTIONS,
780
+ ignoreSuffix: ARRAY_DEFAULT_OPTIONS,
779
781
  },
780
782
  },
781
783
  };
@@ -941,6 +943,24 @@ const rule = {
941
943
  const prevName = ('alias' in prevNode && ((_c = prevNode.alias) === null || _c === void 0 ? void 0 : _c.value)) ||
942
944
  ('name' in prevNode && ((_d = prevNode.name) === null || _d === void 0 ? void 0 : _d.value));
943
945
  if (prevName) {
946
+ if ((opts.ignorePrefix || []).length > 0) {
947
+ const shouldSkipIgnorePrefix = opts.ignorePrefix.some(prefix => prefix === prevName ||
948
+ prefix === currName ||
949
+ prevName.startsWith(prefix) ||
950
+ currName.startsWith(prefix));
951
+ if (shouldSkipIgnorePrefix) {
952
+ continue;
953
+ }
954
+ }
955
+ if ((opts.ignoreSuffix || []).length > 0) {
956
+ const shouldSkipIgnoreSuffix = opts.ignoreSuffix.some(suffix => suffix === prevName ||
957
+ suffix === currName ||
958
+ prevName.endsWith(suffix) ||
959
+ currName.endsWith(suffix));
960
+ if (shouldSkipIgnoreSuffix) {
961
+ continue;
962
+ }
963
+ }
944
964
  // Compare with lexicographic order
945
965
  const compareResult = prevName.localeCompare(currName);
946
966
  const shouldSort = compareResult === 1;
@@ -1347,6 +1367,7 @@ const schema$4 = {
1347
1367
  properties: {
1348
1368
  style: { enum: CASE_STYLES },
1349
1369
  suffix: { type: 'string' },
1370
+ prefix: { type: 'string' },
1350
1371
  },
1351
1372
  },
1352
1373
  },
@@ -1441,6 +1462,26 @@ const rule$4 = {
1441
1462
  fullName
1442
1463
  }
1443
1464
  }
1465
+ `,
1466
+ },
1467
+ {
1468
+ title: 'Correct',
1469
+ usage: [{ fragment: { style: 'kebab-case', prefix: 'mutation.' } }],
1470
+ code: /* GraphQL */ `
1471
+ # mutation.add-alert.graphql
1472
+ mutation addAlert {
1473
+ foo
1474
+ }
1475
+ `,
1476
+ },
1477
+ {
1478
+ title: 'Correct',
1479
+ usage: [{ fragment: { prefix: 'query.' } }],
1480
+ code: /* GraphQL */ `
1481
+ # query.me.graphql
1482
+ query me {
1483
+ foo
1484
+ }
1444
1485
  `,
1445
1486
  },
1446
1487
  ],
@@ -1504,13 +1545,13 @@ const rule$4 = {
1504
1545
  option = { style: option };
1505
1546
  }
1506
1547
  const expectedExtension = options.fileExtension || fileExtension;
1507
- let expectedFilename;
1548
+ let expectedFilename = option.prefix || '';
1508
1549
  if (option.style) {
1509
- expectedFilename =
1550
+ expectedFilename +=
1510
1551
  option.style === 'matchDocumentStyle' ? docName : convertCase(option.style, docName);
1511
1552
  }
1512
1553
  else {
1513
- expectedFilename = filename;
1554
+ expectedFilename += filename;
1514
1555
  }
1515
1556
  expectedFilename += (option.suffix || '') + expectedExtension;
1516
1557
  const filenameWithExtension = filename + expectedExtension;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-eslint/eslint-plugin",
3
- "version": "3.14.0-alpha-20221220160018-ba4832c",
3
+ "version": "3.14.0-alpha-20221220173226-ecd822d",
4
4
  "description": "GraphQL plugin for ESLint",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -59,6 +59,22 @@ declare const schema: {
59
59
  readonly description: "Definitions – `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.";
60
60
  readonly default: false;
61
61
  };
62
+ readonly ignorePrefix: {
63
+ readonly type: "array";
64
+ readonly uniqueItems: true;
65
+ readonly minItems: 1;
66
+ readonly items: {
67
+ readonly type: "string";
68
+ };
69
+ };
70
+ readonly ignoreSuffix: {
71
+ readonly type: "array";
72
+ readonly uniqueItems: true;
73
+ readonly minItems: 1;
74
+ readonly items: {
75
+ readonly type: "string";
76
+ };
77
+ };
62
78
  };
63
79
  };
64
80
  };
package/rules/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export declare const rules: {
6
6
  values?: "EnumTypeDefinition"[];
7
7
  fields?: import("json-schema-to-ts/lib/types/type-utils").Writable<"ObjectTypeDefinition" | "InterfaceTypeDefinition" | "InputObjectTypeDefinition">[];
8
8
  variables?: "OperationDefinition"[];
9
+ ignorePrefix?: string[];
10
+ ignoreSuffix?: string[];
9
11
  }[], false>;
10
12
  'description-style': import("..").GraphQLESLintRule<{
11
13
  style?: "block" | "inline";
@@ -23,18 +25,22 @@ export declare const rules: {
23
25
  fragment?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle"> | {
24
26
  style?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle">;
25
27
  suffix?: string;
28
+ prefix?: string;
26
29
  };
27
30
  query?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle"> | {
28
31
  style?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle">;
29
32
  suffix?: string;
33
+ prefix?: string;
30
34
  };
31
35
  mutation?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle"> | {
32
36
  style?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle">;
33
37
  suffix?: string;
38
+ prefix?: string;
34
39
  };
35
40
  subscription?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle"> | {
36
41
  style?: import("json-schema-to-ts/lib/types/type-utils").Writable<import("../utils").CaseStyle | "matchDocumentStyle">;
37
42
  suffix?: string;
43
+ prefix?: string;
38
44
  };
39
45
  fileExtension?: ".gql" | ".graphql";
40
46
  }[], false>;
@@ -19,6 +19,9 @@ declare const schema: {
19
19
  readonly suffix: {
20
20
  readonly type: "string";
21
21
  };
22
+ readonly prefix: {
23
+ readonly type: "string";
24
+ };
22
25
  };
23
26
  };
24
27
  };