Class: GraphQL::StaticValidation::DefinitionDependencies::DependencyMap

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/static_validation/definition_dependencies.rb

Overview

Map definition AST nodes to the definition AST nodes they depend on. Expose circular depednencies.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDependencyMap

Returns a new instance of DependencyMap


92
93
94
95
96
97
# File 'lib/graphql/static_validation/definition_dependencies.rb', line 92

def initialize
  @dependencies = Hash.new { |h, k| h[k] = [] }
  @cyclical_definitions = []
  @unmet_dependencies = Hash.new { |h, k| h[k] = [] }
  @unused_dependencies = []
end

Instance Attribute Details

#cyclical_definitionsArray<GraphQL::Language::Nodes::FragmentDefinition> (readonly)


84
85
86
# File 'lib/graphql/static_validation/definition_dependencies.rb', line 84

def cyclical_definitions
  @cyclical_definitions
end

#unmet_dependenciesHash<Node, Array<GraphQL::Language::Nodes::FragmentSpread>> (readonly)

Returns:


87
88
89
# File 'lib/graphql/static_validation/definition_dependencies.rb', line 87

def unmet_dependencies
  @unmet_dependencies
end

#unused_dependenciesArray<GraphQL::Language::Nodes::FragmentDefinition> (readonly)


90
91
92
# File 'lib/graphql/static_validation/definition_dependencies.rb', line 90

def unused_dependencies
  @unused_dependencies
end

Instance Method Details

#[](definition_node) ⇒ Array<GraphQL::Language::Nodes::AbstractNode>

Returns dependencies for definition_node

Returns:


100
101
102
# File 'lib/graphql/static_validation/definition_dependencies.rb', line 100

def [](definition_node)
  @dependencies[definition_node]
end