class GraphQL::StaticValidation::Error

Generates GraphQL-compliant validation message.

def initialize(message, path: nil, nodes: [])

def initialize(message, path: nil, nodes: [])
  @message = message
  @nodes = Array(nodes)
  @path = path
end

def locations

def locations
  nodes.map do |node|
    h = {"line" => node.line, "column" => node.col}
    h["filename"] = node.filename if node.filename
    h
  end
end

def to_h

A hash representation of this Message
def to_h
  {
    "message" => message,
    "locations" => locations
  }.tap { |h| h["path"] = path unless path.nil? }
end