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

  • 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