graphql-eslint icon indicating copy to clipboard operation
graphql-eslint copied to clipboard

`GraphQL-ESLint` v4 Roadmap (after Node 12 end of life)

Open dimaMachina opened this issue 2 years ago • 0 comments

  • [ ] Node 12 drop support
  • [ ] Support ESLint 9, drop support for ESLint 7 and 8
  • [ ] Support GraphQL 17
  • [ ] Bundle to ESM only
  • [ ] rename parserOptions.operations to parserOptions.documents to make consistency with graphql-config https://github.com/B2o5T/graphql-eslint/issues/770#issuecomment-967561242
  • [ ] Remove GraphQLRuleTester from bundle and publish as @graphql-eslint/rule-tester https://github.com/B2o5T/graphql-eslint/issues/946#issuecomment-1030802927
  • [ ] alphabetize changes
    • add definitions: true option for all config
    • rename values: ['EnumTypeDefinition'] and variables: ['OperationDefinition'] options to values: true and variables: true
  • [ ] bring back possible-type-extension to recommended config
  • [ ] Remove unique-enum-value-names rule, rename no-case-insensitive-enum-values-duplicates to unique-enum-value-names with new option caseSensitive https://github.com/B2o5T/graphql-eslint/discussions/793
  • [ ] Add unique-operation-name and unique-fragment-name rules to recommended config.

The whole concept of sibling operations provided by parserOptions.operations or graphql-config's documents fields is based on uniquely named operations and fragments, for omitting false-positive/negative cases when operations and fragments are located in separated files. For this reason, these rules must be included in recommended config

  • [ ] enable strict: true in tsconfig.json
  • [ ] known-directives remove ignoreClientDirectives in favour of graphql-config's extensions.customDirectives https://github.com/B2o5T/graphql-eslint/issues/1076#issuecomment-1143594491

dimaMachina avatar Mar 06 '22 01:03 dimaMachina