Module: GraphQL::PersistedQueries

Defined in:
lib/graphql/persisted_queries.rb,
lib/graphql/persisted_queries/errors.rb,
lib/graphql/persisted_queries/version.rb,
lib/graphql/persisted_queries/resolver.rb,
lib/graphql/persisted_queries/schema_patch.rb,
lib/graphql/persisted_queries/error_handlers.rb,
lib/graphql/persisted_queries/store_adapters.rb,
lib/graphql/persisted_queries/builder_helpers.rb,
lib/graphql/persisted_queries/resolver_helpers.rb,
lib/graphql/persisted_queries/multiplex_resolver.rb,
lib/graphql/persisted_queries/hash_generator_builder.rb,
lib/graphql/persisted_queries/compiled_queries/resolver.rb,
lib/graphql/persisted_queries/compiled_queries/query_patch.rb,
lib/graphql/persisted_queries/analyzers/http_method_analyzer.rb,
lib/graphql/persisted_queries/analyzers/http_method_validator.rb,
lib/graphql/persisted_queries/compiled_queries/instrumentation.rb,
lib/graphql/persisted_queries/compiled_queries/multiplex_patch.rb,
lib/graphql/persisted_queries/error_handlers/base_error_handler.rb,
lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb,
lib/graphql/persisted_queries/analyzers/http_method_ast_analyzer.rb,
lib/graphql/persisted_queries/store_adapters/redis_store_adapter.rb,
lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb,
lib/graphql/persisted_queries/store_adapters/redis_client_builder.rb,
lib/graphql/persisted_queries/error_handlers/default_error_handler.rb,
lib/graphql/persisted_queries/store_adapters/memcached_store_adapter.rb,
lib/graphql/persisted_queries/store_adapters/memcached_client_builder.rb,
lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb

Overview

Plugin definition

Defined Under Namespace

Modules: Analyzers, BuilderHelpers, CompiledQueries, ErrorHandlers, ResolverHelpers, SchemaPatch, StoreAdapters Classes: HashGeneratorBuilder, MultiplexResolver, NotFound, Resolver, WrongHash

Constant Summary collapse

VERSION =
"1.8.0"

Class Method Summary collapse

Class Method Details

.configure_compiled_queriesObject

rubocop:enable Metrics/MethodLength



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/graphql/persisted_queries.rb', line 40

def self.configure_compiled_queries
  if Gem::Dependency.new("graphql", "< 1.12.0").match?("graphql", GraphQL::VERSION)
    raise ArgumentError, "compiled_queries are not supported for graphql-ruby < 1.12.0"
  end

  if Gem::Dependency.new("graphql", "< 2.0.14").match?("graphql", GraphQL::VERSION)
    GraphQL::Execution::Multiplex.singleton_class.prepend(
      GraphQL::PersistedQueries::CompiledQueries::MultiplexPatch
    )
  end

  GraphQL::Query.prepend(GraphQL::PersistedQueries::CompiledQueries::QueryPatch)
end

.use(schema_defn, **options) ⇒ Object

rubocop:disable Metrics/MethodLength



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/graphql/persisted_queries.rb', line 19

def self.use(schema_defn, **options)
  schema = schema_defn.is_a?(Class) ? schema_defn : schema_defn.target

  compiled_queries = options.delete(:compiled_queries)
  SchemaPatch.patch(schema, compiled_queries)
  configure_compiled_queries if compiled_queries

  schema.hash_generator = options.delete(:hash_generator) || :sha256

  schema.verify_http_method = options.delete(:verify_http_method)

  error_handler = options.delete(:error_handler) || :default
  schema.configure_persisted_query_error_handler(error_handler)

  schema.persisted_queries_tracing_enabled = options.delete(:tracing)

  store = options.delete(:store) || :memory
  schema.configure_persisted_query_store(store, **options)
end