graphql-persisted_queries 1.8.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rspec.yml +9 -7
- data/.github/workflows/rubocop.yml +2 -2
- data/.rubocop.yml +10 -1
- data/.rubocop_todo.yml +17 -0
- data/CHANGELOG.md +12 -1
- data/README.md +4 -0
- data/benchmark/compiled_queries.rb +12 -1
- data/gemfiles/{graphql_1_12_0.gemfile → graphql_2_3_11.gemfile} +1 -1
- data/graphql-persisted_queries.gemspec +4 -2
- data/lib/graphql/persisted_queries/compiled_queries/instrumentation.rb +18 -0
- data/lib/graphql/persisted_queries/compiled_queries/query_patch.rb +2 -0
- data/lib/graphql/persisted_queries/compiled_queries/resolver.rb +2 -3
- data/lib/graphql/persisted_queries/schema_patch.rb +5 -15
- data/lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb +11 -1
- data/lib/graphql/persisted_queries/store_adapters/memcached_store_adapter.rb +2 -2
- data/lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb +22 -3
- data/lib/graphql/persisted_queries/store_adapters/redis_store_adapter.rb +4 -6
- data/lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb +7 -2
- data/lib/graphql/persisted_queries/version.rb +1 -1
- data/lib/graphql/persisted_queries.rb +2 -2
- metadata +39 -13
- data/gemfiles/graphql_1_12_4.gemfile +0 -5
- data/gemfiles/graphql_1_13_16.gemfile +0 -5
- data/gemfiles/graphql_1_13_7.gemfile +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eef23367af0ca5ac44fc10cbdd454f693c98e7e8783f0571f43a261a0e06c93f
|
4
|
+
data.tar.gz: 5338fcbb68762525ca474d4720c4f785e5f6d521d5b28bc524a187ed40553313
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8a78da34ce4706d08de137178f3f81426b590ee13568f4b7c3a8f8c6d788caf7c77a32b7ea5d12bb0ca0c139077d7a42a1192f5a4f4c07867e3634341314e7f
|
7
|
+
data.tar.gz: b02bafae180e3996349bc259d464b40d30e2ef02f078d39fb3bf4cd445cdee5152fa7c80910ba326128f4bc9d40a242895fd611c6b186eba516920bb31cf5344
|
data/.github/workflows/rspec.yml
CHANGED
@@ -18,20 +18,22 @@ jobs:
|
|
18
18
|
strategy:
|
19
19
|
fail-fast: false
|
20
20
|
matrix:
|
21
|
-
ruby: [
|
21
|
+
ruby: [3.1, 3.2, 3.3, 3.4]
|
22
22
|
gemfile: [
|
23
|
-
"gemfiles/graphql_1_12_0.gemfile",
|
24
|
-
"gemfiles/graphql_1_12_4.gemfile",
|
25
|
-
"gemfiles/graphql_1_13_7.gemfile",
|
26
|
-
"gemfiles/graphql_1_13_16.gemfile",
|
27
23
|
"gemfiles/graphql_2_1_0.gemfile",
|
28
24
|
"gemfiles/graphql_2_2_5.gemfile",
|
29
|
-
"gemfiles/
|
25
|
+
"gemfiles/graphql_2_3_11.gemfile",
|
26
|
+
"gemfiles/graphql_master.gemfile",
|
30
27
|
]
|
28
|
+
exclude:
|
29
|
+
- ruby: "3.1"
|
30
|
+
gemfile: gemfiles/graphql_2_3_11.gemfile
|
31
|
+
- ruby: "3.1"
|
32
|
+
gemfile: gemfiles/graphql_master.gemfile
|
31
33
|
|
32
34
|
steps:
|
33
35
|
- uses: actions/checkout@v2
|
34
|
-
- uses: actions/cache@
|
36
|
+
- uses: actions/cache@v4
|
35
37
|
with:
|
36
38
|
path: /home/runner/bundle
|
37
39
|
key: bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }}
|
@@ -17,5 +17,5 @@ jobs:
|
|
17
17
|
ruby-version: 2.7
|
18
18
|
- name: Lint Ruby code with RuboCop
|
19
19
|
run: |
|
20
|
-
bundle install --gemfile gemfiles/
|
21
|
-
bundle exec --gemfile gemfiles/
|
20
|
+
bundle install --gemfile gemfiles/graphql_2_0_0.gemfile --jobs 4 --retry 3
|
21
|
+
bundle exec --gemfile gemfiles/graphql_2_0_0.gemfile rubocop
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
2
|
+
|
1
3
|
AllCops:
|
2
4
|
TargetRubyVersion: 2.6
|
3
5
|
Include:
|
@@ -15,7 +17,7 @@ AllCops:
|
|
15
17
|
Style/StringLiterals:
|
16
18
|
EnforcedStyle: double_quotes
|
17
19
|
|
18
|
-
|
20
|
+
Layout/LineLength:
|
19
21
|
Max: 100
|
20
22
|
|
21
23
|
Metrics/BlockLength:
|
@@ -24,3 +26,10 @@ Metrics/BlockLength:
|
|
24
26
|
|
25
27
|
Style/NumericLiterals:
|
26
28
|
Enabled: false
|
29
|
+
|
30
|
+
Naming/VariableNumber:
|
31
|
+
Enabled: false
|
32
|
+
|
33
|
+
Lint/ConstantDefinitionInBlock:
|
34
|
+
Exclude:
|
35
|
+
- spec/**/*
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2025-06-23 08:24:05 UTC using RuboCop version 1.77.0.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 5
|
10
|
+
# Configuration parameters: AllowedParentClasses.
|
11
|
+
Lint/MissingSuper:
|
12
|
+
Exclude:
|
13
|
+
- 'lib/graphql/persisted_queries/store_adapters/memcached_store_adapter.rb'
|
14
|
+
- 'lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb'
|
15
|
+
- 'lib/graphql/persisted_queries/store_adapters/redis_store_adapter.rb'
|
16
|
+
- 'lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb'
|
17
|
+
- 'spec/graphql/persisted_queries/store_adapters/base_store_adapter_spec.rb'
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
# Change log
|
2
2
|
|
3
|
-
##
|
3
|
+
## 2.0.0 (2025-06-28)
|
4
|
+
|
5
|
+
- [PR#87](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/87)
|
6
|
+
[[BREAKING](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/87#issuecomment-3008620281)] Add option to skip query marshalling for in-memory storage ([@viralpraxis][])
|
7
|
+
|
8
|
+
## 1.8.2 (2025-06-12)
|
9
|
+
|
10
|
+
- [PR#79](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/79)
|
11
|
+
Deprecate old ruby and gql versions ([@DmitryTsepelev][])
|
12
|
+
- [PR#78](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/78)
|
13
|
+
Migrate CompiledQueries instrumentation to tracer ([@DmitryTsepelev][])
|
4
14
|
|
5
15
|
## 1.8.1 (2024-06-01)
|
6
16
|
|
@@ -129,3 +139,4 @@ Handle situations when prepare_ast happens before instrumentation ([@DmitryTsepe
|
|
129
139
|
[@rbviz]: https://github.com/rbviz
|
130
140
|
[@louim]: https://github.com/louim
|
131
141
|
[@mpospelov]: https://github.com/mpospelov
|
142
|
+
[@viralpraxis]: https://github.com/viralpraxis
|
data/README.md
CHANGED
@@ -12,6 +12,8 @@ Used in production by:
|
|
12
12
|
- Toptal
|
13
13
|
- _Want to be here? Let me know_ 🙂
|
14
14
|
|
15
|
+
You can support my open–source work [here](https://boosty.to/dmitry_tsepelev).
|
16
|
+
|
15
17
|
## Getting started
|
16
18
|
|
17
19
|
First of all, install and configure [apollo's persisted queries](https://www.apollographql.com/docs/react/api/link/persisted-queries/) on the front–end side:
|
@@ -90,6 +92,8 @@ It is possible to skip some parts of the query lifecycle for cases when query is
|
|
90
92
|
|
91
93
|
An experimental tracing feature can be enabled by setting `tracing: true` when configuring the plugin. Read more about this feature in the [Tracing guide](docs/tracing.md).
|
92
94
|
|
95
|
+
You can skip marshalling for queries stored in memory by passing the `marshal_inmemory_queries: false` option. This only affects the `memory` and `redis_with_local_cache` stores.
|
96
|
+
|
93
97
|
> 📖 Read more about the gem internals: [Persisted queries in GraphQL:
|
94
98
|
Slim down Apollo requests to your Ruby application](https://evilmartians.com/chronicles/persisted-queries-in-graphql-slim-down-apollo-requests-to-your-ruby-application)
|
95
99
|
|
@@ -17,6 +17,12 @@ class GraphqlSchema < GraphQL::Schema
|
|
17
17
|
query QueryType
|
18
18
|
end
|
19
19
|
|
20
|
+
class GraphqlSchemaWithoutMarshalling < GraphQL::Schema
|
21
|
+
use GraphQL::PersistedQueries, compiled_queries: true, marshal_inmemory_queries: false
|
22
|
+
|
23
|
+
query QueryType
|
24
|
+
end
|
25
|
+
|
20
26
|
GraphqlSchema.to_definition
|
21
27
|
|
22
28
|
puts
|
@@ -32,10 +38,15 @@ Benchmark.bm(28) do |x|
|
|
32
38
|
context = { extensions: { "persistedQuery" => { "sha256Hash" => sha256 } } }
|
33
39
|
# warmup
|
34
40
|
GraphqlSchema.execute(query, context: context)
|
41
|
+
GraphqlSchemaWithoutMarshalling.execute(query, context: context)
|
35
42
|
|
36
|
-
x.report("#{field_count} fields#{
|
43
|
+
x.report("#{field_count} fields#{' (nested)' if with_nested} (marshalled)") do
|
37
44
|
GraphqlSchema.execute(query, context: context)
|
38
45
|
end
|
46
|
+
|
47
|
+
x.report("#{field_count} fields#{' (nested)' if with_nested}") do
|
48
|
+
GraphqlSchemaWithoutMarshalling.execute(query, context: context)
|
49
|
+
end
|
39
50
|
end
|
40
51
|
end
|
41
52
|
end
|
@@ -22,12 +22,14 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.required_ruby_version = ">= 2.7"
|
24
24
|
|
25
|
-
spec.add_dependency "graphql", ">=
|
25
|
+
spec.add_dependency "graphql", ">= 2.0"
|
26
|
+
spec.add_dependency "base64"
|
26
27
|
|
27
28
|
spec.add_development_dependency "rspec", "~> 3.9"
|
28
29
|
spec.add_development_dependency "rake", ">= 10.0"
|
29
|
-
spec.add_development_dependency "rubocop", "0
|
30
|
+
spec.add_development_dependency "rubocop", "~> 1.77.0"
|
30
31
|
spec.add_development_dependency "redis"
|
31
32
|
spec.add_development_dependency "dalli"
|
32
33
|
spec.add_development_dependency "connection_pool"
|
34
|
+
spec.add_development_dependency "benchmark"
|
33
35
|
end
|
@@ -8,6 +8,8 @@ module GraphQL
|
|
8
8
|
class << self
|
9
9
|
# Actions to perform before the query resolution
|
10
10
|
def before_query(query)
|
11
|
+
query = query.query if query.class.name == "GraphQL::Query::Partial" # rubocop:disable Style/ClassEqualityComparison
|
12
|
+
|
11
13
|
return unless query.context[:extensions]
|
12
14
|
|
13
15
|
query.try_load_document!
|
@@ -19,6 +21,22 @@ module GraphQL
|
|
19
21
|
|
20
22
|
def after_query(*); end
|
21
23
|
end
|
24
|
+
|
25
|
+
# Instrumentations were deprecated in 2.2.5, this is a module to migrate to new interface
|
26
|
+
module Tracer
|
27
|
+
def execute_query(query:)
|
28
|
+
GraphQL::PersistedQueries::CompiledQueries::Instrumentation.before_query(query)
|
29
|
+
super
|
30
|
+
end
|
31
|
+
|
32
|
+
def execute_multiplex(multiplex:)
|
33
|
+
multiplex.queries.each do |query|
|
34
|
+
GraphQL::PersistedQueries::CompiledQueries::Instrumentation.before_query(query)
|
35
|
+
end
|
36
|
+
|
37
|
+
super
|
38
|
+
end
|
39
|
+
end
|
22
40
|
end
|
23
41
|
end
|
24
42
|
end
|
@@ -13,6 +13,7 @@ module GraphQL
|
|
13
13
|
@persisted_query_not_found
|
14
14
|
end
|
15
15
|
|
16
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
16
17
|
def prepare_ast
|
17
18
|
return super if @context[:extensions].nil? || @document
|
18
19
|
|
@@ -27,6 +28,7 @@ module GraphQL
|
|
27
28
|
resolver.persist(query_string, @document)
|
28
29
|
end
|
29
30
|
end
|
31
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
30
32
|
end
|
31
33
|
|
32
34
|
def try_load_document!
|
@@ -38,8 +38,7 @@ module GraphQL
|
|
38
38
|
return if hash.nil?
|
39
39
|
|
40
40
|
with_error_handling do
|
41
|
-
|
42
|
-
Marshal.load(compiled_query) if compiled_query # rubocop:disable Security/MarshalLoad
|
41
|
+
@schema.persisted_query_store.fetch_query(hash, compiled_query: true)
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
@@ -50,7 +49,7 @@ module GraphQL
|
|
50
49
|
|
51
50
|
with_error_handling do
|
52
51
|
@schema.persisted_query_store.save_query(
|
53
|
-
hash,
|
52
|
+
hash, compiled_query, compiled_query: true
|
54
53
|
)
|
55
54
|
end
|
56
55
|
end
|
@@ -26,8 +26,7 @@ module GraphQL
|
|
26
26
|
|
27
27
|
def configure_compiled_queries(schema)
|
28
28
|
if graphql_ruby_after_2_2_5?
|
29
|
-
schema.trace_with(GraphQL::
|
30
|
-
schema.instance_exec { own_instrumenters[:query] << CompiledQueries::Instrumentation }
|
29
|
+
schema.trace_with(GraphQL::PersistedQueries::CompiledQueries::Instrumentation::Tracer)
|
31
30
|
else
|
32
31
|
schema.instrument :query, CompiledQueries::Instrumentation
|
33
32
|
end
|
@@ -78,7 +77,10 @@ module GraphQL
|
|
78
77
|
end
|
79
78
|
|
80
79
|
def verify_http_method=(verify)
|
81
|
-
|
80
|
+
return unless verify
|
81
|
+
|
82
|
+
require "graphql/persisted_queries/analyzers/http_method_ast_analyzer"
|
83
|
+
query_analyzer(Analyzers::HttpMethodAstAnalyzer)
|
82
84
|
end
|
83
85
|
|
84
86
|
def persisted_queries_tracing_enabled?
|
@@ -94,18 +96,6 @@ module GraphQL
|
|
94
96
|
persisted_query_store.tracers = tracers if persisted_queries_tracing_enabled?
|
95
97
|
end
|
96
98
|
end
|
97
|
-
|
98
|
-
private
|
99
|
-
|
100
|
-
def prepare_analyzer
|
101
|
-
if using_ast_analysis?
|
102
|
-
require "graphql/persisted_queries/analyzers/http_method_ast_analyzer"
|
103
|
-
Analyzers::HttpMethodAstAnalyzer
|
104
|
-
else
|
105
|
-
require "graphql/persisted_queries/analyzers/http_method_analyzer"
|
106
|
-
Analyzers::HttpMethodAnalyzer.new
|
107
|
-
end
|
108
|
-
end
|
109
99
|
end
|
110
100
|
end
|
111
101
|
end
|
@@ -24,7 +24,9 @@ module GraphQL
|
|
24
24
|
|
25
25
|
def save_query(hash, query, compiled_query: false)
|
26
26
|
key = build_key(hash, compiled_query)
|
27
|
-
trace("save_query", adapter: @name)
|
27
|
+
trace("save_query", adapter: @name) do
|
28
|
+
query.tap { save(key, query) }
|
29
|
+
end
|
28
30
|
end
|
29
31
|
|
30
32
|
def fetch(_hash)
|
@@ -44,6 +46,14 @@ module GraphQL
|
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
49
|
+
def serialize(query)
|
50
|
+
Marshal.dump(query)
|
51
|
+
end
|
52
|
+
|
53
|
+
def deserialize(serialized_query)
|
54
|
+
Marshal.load(serialized_query) if serialized_query # rubocop:disable Security/MarshalLoad
|
55
|
+
end
|
56
|
+
|
47
57
|
private
|
48
58
|
|
49
59
|
def build_key(hash, compiled_query)
|
@@ -18,11 +18,11 @@ module GraphQL
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def fetch(hash)
|
21
|
-
@dalli_proc.call { |dalli| dalli.get(key_for(hash)) }
|
21
|
+
@dalli_proc.call { |dalli| deserialize(dalli.get(key_for(hash))) }
|
22
22
|
end
|
23
23
|
|
24
24
|
def save(hash, query)
|
25
|
-
@dalli_proc.call { |dalli| dalli.set(key_for(hash), query, @expiration) }
|
25
|
+
@dalli_proc.call { |dalli| dalli.set(key_for(hash), serialize(query), @expiration) }
|
26
26
|
end
|
27
27
|
|
28
28
|
private
|
@@ -5,17 +5,36 @@ module GraphQL
|
|
5
5
|
module StoreAdapters
|
6
6
|
# Memory adapter for storing persisted queries
|
7
7
|
class MemoryStoreAdapter < BaseStoreAdapter
|
8
|
-
def initialize(**
|
8
|
+
def initialize(**options)
|
9
9
|
@storage = {}
|
10
10
|
@name = :memory
|
11
|
+
@marshal_inmemory_queries = options.fetch(:marshal_inmemory_queries, true)
|
11
12
|
end
|
12
13
|
|
13
14
|
def fetch(hash)
|
14
|
-
@storage[hash]
|
15
|
+
deserialize(@storage[hash])
|
15
16
|
end
|
16
17
|
|
17
18
|
def save(hash, query)
|
18
|
-
@storage[hash] = query
|
19
|
+
@storage[hash] = serialize(query)
|
20
|
+
end
|
21
|
+
|
22
|
+
def serialize(query)
|
23
|
+
if @marshal_inmemory_queries
|
24
|
+
super(query)
|
25
|
+
else
|
26
|
+
query
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def deserialize(serialized_query)
|
31
|
+
return unless serialized_query
|
32
|
+
|
33
|
+
if @marshal_inmemory_queries
|
34
|
+
super(serialized_query)
|
35
|
+
else
|
36
|
+
serialized_query
|
37
|
+
end
|
19
38
|
end
|
20
39
|
end
|
21
40
|
end
|
@@ -18,11 +18,13 @@ module GraphQL
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def fetch(hash)
|
21
|
-
@redis_proc.call
|
21
|
+
@redis_proc.call do |redis|
|
22
|
+
deserialize(redis.get(key_for(hash)))
|
23
|
+
end
|
22
24
|
end
|
23
25
|
|
24
26
|
def save(hash, query)
|
25
|
-
@redis_proc.call { |redis| redis.set(key_for(hash), query, ex: @expiration) }
|
27
|
+
@redis_proc.call { |redis| redis.set(key_for(hash), serialize(query), ex: @expiration) }
|
26
28
|
end
|
27
29
|
|
28
30
|
private
|
@@ -32,8 +34,6 @@ module GraphQL
|
|
32
34
|
end
|
33
35
|
|
34
36
|
# rubocop: disable Metrics/MethodLength
|
35
|
-
# rubocop: disable Metrics/CyclomaticComplexity
|
36
|
-
# rubocop: disable Metrics/PerceivedComplexity
|
37
37
|
def build_redis_proc(redis_client)
|
38
38
|
if redis_client.is_a?(Hash)
|
39
39
|
build_redis_proc(RedisClientBuilder.new(**redis_client).build)
|
@@ -48,8 +48,6 @@ module GraphQL
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
# rubocop: enable Metrics/MethodLength
|
51
|
-
# rubocop: enable Metrics/CyclomaticComplexity
|
52
|
-
# rubocop: enable Metrics/PerceivedComplexity
|
53
51
|
end
|
54
52
|
end
|
55
53
|
end
|
@@ -8,8 +8,9 @@ module GraphQL
|
|
8
8
|
DEFAULT_REDIS_ADAPTER_CLASS = RedisStoreAdapter
|
9
9
|
DEFAULT_MEMORY_ADAPTER_CLASS = MemoryStoreAdapter
|
10
10
|
|
11
|
+
# rubocop:disable Metrics/ParameterLists, Metrics/MethodLength
|
11
12
|
def initialize(redis_client: {}, expiration: nil, namespace: nil, redis_adapter_class: nil,
|
12
|
-
memory_adapter_class: nil)
|
13
|
+
memory_adapter_class: nil, marshal_inmemory_queries: true)
|
13
14
|
redis_adapter_class ||= DEFAULT_REDIS_ADAPTER_CLASS
|
14
15
|
memory_adapter_class ||= DEFAULT_MEMORY_ADAPTER_CLASS
|
15
16
|
|
@@ -18,9 +19,13 @@ module GraphQL
|
|
18
19
|
expiration: expiration,
|
19
20
|
namespace: namespace
|
20
21
|
)
|
21
|
-
@
|
22
|
+
@marshal_inmemory_queries = marshal_inmemory_queries
|
23
|
+
@memory_adapter = memory_adapter_class.new(
|
24
|
+
marshal_inmemory_queries: marshal_inmemory_queries
|
25
|
+
)
|
22
26
|
@name = :redis_with_local_cache
|
23
27
|
end
|
28
|
+
# rubocop:enable Metrics/ParameterLists, Metrics/MethodLength
|
24
29
|
|
25
30
|
def fetch(hash)
|
26
31
|
result = @memory_adapter.fetch(hash)
|
@@ -15,7 +15,7 @@ require "graphql/persisted_queries/compiled_queries/query_patch"
|
|
15
15
|
module GraphQL
|
16
16
|
# Plugin definition
|
17
17
|
module PersistedQueries
|
18
|
-
# rubocop:disable Metrics/MethodLength
|
18
|
+
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
19
19
|
def self.use(schema_defn, **options)
|
20
20
|
schema = schema_defn.is_a?(Class) ? schema_defn : schema_defn.target
|
21
21
|
|
@@ -35,7 +35,7 @@ module GraphQL
|
|
35
35
|
store = options.delete(:store) || :memory
|
36
36
|
schema.configure_persisted_query_store(store, **options)
|
37
37
|
end
|
38
|
-
# rubocop:enable Metrics/MethodLength
|
38
|
+
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
39
39
|
|
40
40
|
def self.configure_compiled_queries
|
41
41
|
if Gem::Dependency.new("graphql", "< 1.12.0").match?("graphql", GraphQL::VERSION)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-persisted_queries
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DmitryTsepelev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphql
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: base64
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rspec
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +70,16 @@ dependencies:
|
|
56
70
|
name: rubocop
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- -
|
73
|
+
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
75
|
+
version: 1.77.0
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- -
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
82
|
+
version: 1.77.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: redis
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +122,20 @@ dependencies:
|
|
108
122
|
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: benchmark
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
111
139
|
description: Persisted queries for graphql-ruby
|
112
140
|
email:
|
113
141
|
- dmitry.a.tsepelev@gmail.com
|
@@ -119,6 +147,7 @@ files:
|
|
119
147
|
- ".github/workflows/rubocop.yml"
|
120
148
|
- ".gitignore"
|
121
149
|
- ".rubocop.yml"
|
150
|
+
- ".rubocop_todo.yml"
|
122
151
|
- CHANGELOG.md
|
123
152
|
- Gemfile
|
124
153
|
- LICENSE.txt
|
@@ -137,13 +166,10 @@ files:
|
|
137
166
|
- docs/http_cache.md
|
138
167
|
- docs/skip_query_preprocessing.md
|
139
168
|
- docs/tracing.md
|
140
|
-
- gemfiles/graphql_1_12_0.gemfile
|
141
|
-
- gemfiles/graphql_1_12_4.gemfile
|
142
|
-
- gemfiles/graphql_1_13_16.gemfile
|
143
|
-
- gemfiles/graphql_1_13_7.gemfile
|
144
169
|
- gemfiles/graphql_2_0_0.gemfile
|
145
170
|
- gemfiles/graphql_2_1_0.gemfile
|
146
171
|
- gemfiles/graphql_2_2_5.gemfile
|
172
|
+
- gemfiles/graphql_2_3_11.gemfile
|
147
173
|
- gemfiles/graphql_master.gemfile
|
148
174
|
- graphql-persisted_queries.gemspec
|
149
175
|
- lib/graphql/persisted_queries.rb
|
@@ -192,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
218
|
- !ruby/object:Gem::Version
|
193
219
|
version: '0'
|
194
220
|
requirements: []
|
195
|
-
rubygems_version: 3.
|
221
|
+
rubygems_version: 3.5.16
|
196
222
|
signing_key:
|
197
223
|
specification_version: 4
|
198
224
|
summary: Persisted queries for graphql-ruby
|