Skip to Content
This is documentation for v4 of the plugin. For v3 click here.
ESLGraphQL-ESLint
Rulesselection-set-depth

selection-set-depth

✅ The "extends": "plugin:@graphql-eslint/operations-recommended" property in a configuration file enables this rule.

💡 This rule provides suggestions

  • Category: Operations
  • Rule name: @graphql-eslint/selection-set-depth
  • Requires GraphQL Schema: false ℹ️
  • Requires GraphQL Operations: true ℹ️

Limit the complexity of the GraphQL operations solely by their depth. Based on graphql-depth-limit.

Usage Examples

Incorrect

# eslint @graphql-eslint/selection-set-depth: ['error', { maxDepth: 1 }] query deep2 { viewer { # Level 0 albums { # Level 1 title # Level 2 } } }

Correct

# eslint @graphql-eslint/selection-set-depth: ['error', { maxDepth: 4 }] query deep2 { viewer { # Level 0 albums { # Level 1 title # Level 2 } } }

Correct (ignored field)

# eslint @graphql-eslint/selection-set-depth: ['error', { maxDepth: 1, ignore: ['albums'] }] query deep2 { viewer { # Level 0 albums { # Level 1 title # Level 2 } } }

Config Schema

The schema defines the following properties:

maxDepth (number, required)

ignore (array)

The object is an array with all elements of the type string.

Additional restrictions:

  • Minimum items: 1
  • Unique items: true

Resources

Last updated on