@graphql-eslint/eslint-plugin 3.12.0-alpha-20220929103858-c00a837 → 3.12.0-alpha-20220929104135-4ef9ac0

Sign up to get free protection for your applications and to get access to all the features.
package/index.js CHANGED
@@ -776,6 +776,14 @@ const rule = {
776
776
  description: 'Definitions – `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.',
777
777
  default: false,
778
778
  },
779
+ ignorePrefix: {
780
+ type: 'array',
781
+ default: [],
782
+ },
783
+ ignoreSuffix: {
784
+ type: 'array',
785
+ default: [],
786
+ },
779
787
  },
780
788
  },
781
789
  },
@@ -834,6 +842,18 @@ const rule = {
834
842
  const prevName = ('alias' in prevNode && ((_c = prevNode.alias) === null || _c === void 0 ? void 0 : _c.value)) ||
835
843
  ('name' in prevNode && ((_d = prevNode.name) === null || _d === void 0 ? void 0 : _d.value));
836
844
  if (prevName) {
845
+ if ((opts.ignorePrefix || []).length > 0) {
846
+ const shouldSkipIgnorePrefix = opts.ignorePrefix.some(prefix => prefix === prevName || prefix === currName || prevName.startsWith(prefix) || currName.startsWith(prefix));
847
+ if (shouldSkipIgnorePrefix) {
848
+ continue;
849
+ }
850
+ }
851
+ if ((opts.ignoreSuffix || []).length > 0) {
852
+ const shouldSkipIgnoreSuffix = opts.ignoreSuffix.some(suffix => suffix === prevName || suffix === currName || prevName.endsWith(suffix) || currName.endsWith(suffix));
853
+ if (shouldSkipIgnoreSuffix) {
854
+ continue;
855
+ }
856
+ }
837
857
  // Compare with lexicographic order
838
858
  const compareResult = prevName.localeCompare(currName);
839
859
  const shouldSort = compareResult === 1;
@@ -1212,32 +1232,6 @@ const rule$3 = {
1212
1232
  fullName
1213
1233
  }
1214
1234
  }
1215
- `,
1216
- },
1217
- {
1218
- title: 'Correct',
1219
- usage: [{ fragment: { style: 'kebab-case', suffix: 'Mutation', prefix: 'mutation.' } }],
1220
- name: 'mutation.add-alert.graphql',
1221
- code: /* GraphQL */ `
1222
- # mutation.add-alert.graphql
1223
- mutation addAlert($input: AddAlertInput!) {
1224
- addAlert(input: $input) {
1225
- ...AlertFields
1226
- }
1227
- }
1228
- `,
1229
- },
1230
- {
1231
- title: 'Correct',
1232
- usage: [{ fragment: { prefix: 'query.' } }],
1233
- name: 'query.me.graphql',
1234
- code: /* GraphQL */ `
1235
- # query.me.graphql
1236
- query me {
1237
- me {
1238
- ...UserFields
1239
- }
1240
- }
1241
1235
  `,
1242
1236
  },
1243
1237
  ],
@@ -1267,7 +1261,6 @@ const rule$3 = {
1267
1261
  properties: {
1268
1262
  style: { enum: CASE_STYLES },
1269
1263
  suffix: { type: 'string' },
1270
- prefix: { type: 'string' },
1271
1264
  },
1272
1265
  },
1273
1266
  },
@@ -1333,13 +1326,13 @@ const rule$3 = {
1333
1326
  option = { style: option };
1334
1327
  }
1335
1328
  const expectedExtension = options.fileExtension || fileExtension;
1336
- let expectedFilename = option.prefix || '';
1329
+ let expectedFilename;
1337
1330
  if (option.style) {
1338
1331
  expectedFilename =
1339
1332
  option.style === 'matchDocumentStyle' ? docName : convertCase(option.style, docName);
1340
1333
  }
1341
1334
  else {
1342
- expectedFilename += filename;
1335
+ expectedFilename = filename;
1343
1336
  }
1344
1337
  expectedFilename += (option.suffix || '') + expectedExtension;
1345
1338
  const filenameWithExtension = filename + expectedExtension;
package/index.mjs CHANGED
@@ -770,6 +770,14 @@ const rule = {
770
770
  description: 'Definitions – `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.',
771
771
  default: false,
772
772
  },
773
+ ignorePrefix: {
774
+ type: 'array',
775
+ default: [],
776
+ },
777
+ ignoreSuffix: {
778
+ type: 'array',
779
+ default: [],
780
+ },
773
781
  },
774
782
  },
775
783
  },
@@ -828,6 +836,18 @@ const rule = {
828
836
  const prevName = ('alias' in prevNode && ((_c = prevNode.alias) === null || _c === void 0 ? void 0 : _c.value)) ||
829
837
  ('name' in prevNode && ((_d = prevNode.name) === null || _d === void 0 ? void 0 : _d.value));
830
838
  if (prevName) {
839
+ if ((opts.ignorePrefix || []).length > 0) {
840
+ const shouldSkipIgnorePrefix = opts.ignorePrefix.some(prefix => prefix === prevName || prefix === currName || prevName.startsWith(prefix) || currName.startsWith(prefix));
841
+ if (shouldSkipIgnorePrefix) {
842
+ continue;
843
+ }
844
+ }
845
+ if ((opts.ignoreSuffix || []).length > 0) {
846
+ const shouldSkipIgnoreSuffix = opts.ignoreSuffix.some(suffix => suffix === prevName || suffix === currName || prevName.endsWith(suffix) || currName.endsWith(suffix));
847
+ if (shouldSkipIgnoreSuffix) {
848
+ continue;
849
+ }
850
+ }
831
851
  // Compare with lexicographic order
832
852
  const compareResult = prevName.localeCompare(currName);
833
853
  const shouldSort = compareResult === 1;
@@ -1206,32 +1226,6 @@ const rule$3 = {
1206
1226
  fullName
1207
1227
  }
1208
1228
  }
1209
- `,
1210
- },
1211
- {
1212
- title: 'Correct',
1213
- usage: [{ fragment: { style: 'kebab-case', suffix: 'Mutation', prefix: 'mutation.' } }],
1214
- name: 'mutation.add-alert.graphql',
1215
- code: /* GraphQL */ `
1216
- # mutation.add-alert.graphql
1217
- mutation addAlert($input: AddAlertInput!) {
1218
- addAlert(input: $input) {
1219
- ...AlertFields
1220
- }
1221
- }
1222
- `,
1223
- },
1224
- {
1225
- title: 'Correct',
1226
- usage: [{ fragment: { prefix: 'query.' } }],
1227
- name: 'query.me.graphql',
1228
- code: /* GraphQL */ `
1229
- # query.me.graphql
1230
- query me {
1231
- me {
1232
- ...UserFields
1233
- }
1234
- }
1235
1229
  `,
1236
1230
  },
1237
1231
  ],
@@ -1261,7 +1255,6 @@ const rule$3 = {
1261
1255
  properties: {
1262
1256
  style: { enum: CASE_STYLES },
1263
1257
  suffix: { type: 'string' },
1264
- prefix: { type: 'string' },
1265
1258
  },
1266
1259
  },
1267
1260
  },
@@ -1327,13 +1320,13 @@ const rule$3 = {
1327
1320
  option = { style: option };
1328
1321
  }
1329
1322
  const expectedExtension = options.fileExtension || fileExtension;
1330
- let expectedFilename = option.prefix || '';
1323
+ let expectedFilename;
1331
1324
  if (option.style) {
1332
1325
  expectedFilename =
1333
1326
  option.style === 'matchDocumentStyle' ? docName : convertCase(option.style, docName);
1334
1327
  }
1335
1328
  else {
1336
- expectedFilename += filename;
1329
+ expectedFilename = filename;
1337
1330
  }
1338
1331
  expectedFilename += (option.suffix || '') + expectedExtension;
1339
1332
  const filenameWithExtension = filename + expectedExtension;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-eslint/eslint-plugin",
3
- "version": "3.12.0-alpha-20220929103858-c00a837",
3
+ "version": "3.12.0-alpha-20220929104135-4ef9ac0",
4
4
  "description": "GraphQL plugin for ESLint",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -11,6 +11,8 @@ export declare type AlphabetizeConfig = {
11
11
  variables?: typeof variablesEnum;
12
12
  arguments?: typeof argumentsEnum;
13
13
  definitions?: boolean;
14
+ ignorePrefix?: string[];
15
+ ignoreSuffix?: string[];
14
16
  };
15
17
  declare const rule: GraphQLESLintRule<[AlphabetizeConfig]>;
16
18
  export default rule;
@@ -5,7 +5,6 @@ declare const ACCEPTED_EXTENSIONS: ['.gql', '.graphql'];
5
5
  declare type PropertySchema = {
6
6
  style?: CaseStyle;
7
7
  suffix?: string;
8
- prefix?: string;
9
8
  };
10
9
  export declare type MatchDocumentFilenameRuleConfig = {
11
10
  fileExtension?: typeof ACCEPTED_EXTENSIONS[number];