# frozen_string_literal: true require "delegate" require "json" require "set" require "singleton" require "forwardable" require_relative "./graphql/railtie" if defined? Rails::Railtie module GraphQL class Error < StandardError end # Turn a query string or schema definition into an AST # @param graphql_string [String] a GraphQL query string or schema definition # @return [GraphQL::Language::Nodes::Document] def self.parse(graphql_string, tracer: GraphQL::Tracing::NullTracer) parse_with_racc(graphql_string, tracer: tracer) end # Read the contents of `filename` and parse them as GraphQL # @param filename [String] Path to a `.graphql` file containing IDL or query # @return [GraphQL::Language::Nodes::Document] def self.parse_file(filename) content = File.read(filename) parse_with_racc(content, filename: filename) end def self.parse_with_racc(string, filename: nil, tracer: GraphQL::Tracing::NullTracer) GraphQL::Language::Parser.parse(string, filename: filename, tracer: tracer) end # @return [Array] def self.scan(graphql_string) scan_with_ragel(graphql_string) end def self.scan_with_ragel(graphql_string) GraphQL::Language::Lexer.tokenize(graphql_string) end end # Order matters for these: require "graphql/execution_error" require "graphql/define" require "graphql/base_type" require "graphql/object_type" require "graphql/enum_type" require "graphql/input_object_type" require "graphql/interface_type" require "graphql/list_type" require "graphql/non_null_type" require "graphql/union_type" require "graphql/argument" require "graphql/field" require "graphql/type_kinds" require "graphql/backwards_compatibility" require "graphql/scalar_type" require "graphql/directive" require "graphql/name_validator" require "graphql/language" require "graphql/analysis" require "graphql/tracing" require "graphql/execution" require "graphql/relay" require "graphql/schema" require "graphql/boolean_type" require "graphql/float_type" require "graphql/id_type" require "graphql/int_type" require "graphql/string_type" require "graphql/schema/built_in_types" require "graphql/schema/loader" require "graphql/schema/printer" require "graphql/introspection" require "graphql/analysis_error" require "graphql/coercion_error" require "graphql/runtime_type_error" require "graphql/invalid_null_error" require "graphql/invalid_name_error" require "graphql/unresolved_type_error" require "graphql/string_encoding_error" require "graphql/query" require "graphql/internal_representation" require "graphql/static_validation" require "graphql/version" require "graphql/compatibility" require "graphql/function" require "graphql/filter" require "graphql/subscriptions" require "graphql/parse_error" require "graphql/backtrace" require "graphql/deprecated_dsl"