🎉 Welcome to the new GraphQL-ESLint website. Try new playground page →
Rules
Selection Set Depth

selection-set-depth

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

💡 This rule provides suggestions (opens in a new tab)

  • 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 (opens in a new tab).

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