graphql-result_cache 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -8
- data/lib/graphql/result_cache/field.rb +1 -0
- data/lib/graphql/result_cache/field_instrument.rb +1 -1
- data/lib/graphql/result_cache/introspection/field_type.rb +13 -0
- data/lib/graphql/result_cache/introspection.rb +8 -0
- data/lib/graphql/result_cache/version.rb +1 -1
- data/lib/graphql/result_cache.rb +1 -4
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c49ef03b8c247374a8b3374471873c4a921dc9fc1b4a4e9e379e2d6f04a61cdd
|
4
|
+
data.tar.gz: bc292f89395de326e1e84feee22a648fe4a553d7151f0e50dd46a11a234a5adf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7acd578c4015a18728af29976c44267cd11bf79978db95164c8a01f82bc4aeb2e076080fe87440448b08eea17b4e652ad588711e5c581704cf678ecb78f779f4
|
7
|
+
data.tar.gz: a072f2778e71b313151a4af9f6683f2ec633c12da1cfd477b2db596f4ab8b8b057f91d4cfbb5e386705eb8d80f817e5d2022afc802cb5a19b3d79e1bfc5827a9
|
data/README.md
CHANGED
@@ -110,15 +110,10 @@ GraphQL::ResultCache.configure do |config|
|
|
110
110
|
end
|
111
111
|
```
|
112
112
|
|
113
|
-
When
|
113
|
+
When using with introspection, you need to assign custom introspection to avoid getting the nullable type for a non-null type.
|
114
114
|
```ruby
|
115
|
-
class
|
116
|
-
|
117
|
-
# ...
|
118
|
-
GraphQL::ResultCache.introspection = params[:query].include? '__schema'
|
119
|
-
result = MySchema.execute(params[:query], variables: ensure_hash(params[:variables]), context: context, operation_name: params[:operationName])
|
120
|
-
render json: GraphQL::ResultCache::Result.new(result)
|
121
|
-
end
|
115
|
+
class MySchema < GraphQL::Schema
|
116
|
+
introspection ::GraphQL::ResultCache::Introspection
|
122
117
|
end
|
123
118
|
```
|
124
119
|
|
@@ -9,6 +9,7 @@ module GraphQL
|
|
9
9
|
def to_graphql
|
10
10
|
field_defn = super # Returns a GraphQL::Field
|
11
11
|
field_defn.metadata[:result_cache] = @result_cache_config
|
12
|
+
field_defn.metadata[:original_non_null] = true if @result_cache_config && field_defn.type.non_null?
|
12
13
|
field_defn
|
13
14
|
end
|
14
15
|
end
|
@@ -12,7 +12,7 @@ module GraphQL
|
|
12
12
|
cached_resolve_proc = cached_resolve(field)
|
13
13
|
field.redefine do
|
14
14
|
resolve(cached_resolve_proc)
|
15
|
-
type(field.type.of_type) if
|
15
|
+
type(field.type.of_type) if field.type.non_null?
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module GraphQL
|
2
|
+
module ResultCache
|
3
|
+
module Introspection
|
4
|
+
class FieldType < ::GraphQL::Introspection::FieldType
|
5
|
+
|
6
|
+
def type
|
7
|
+
@object.metadata[:original_non_null] && !@object.type.non_null? ? @object.type.to_non_null_type : @object.type
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/graphql/result_cache.rb
CHANGED
@@ -3,6 +3,7 @@ require 'graphql/result_cache/version'
|
|
3
3
|
require 'graphql/result_cache/field'
|
4
4
|
require 'graphql/result_cache/result'
|
5
5
|
require 'graphql/result_cache/field_instrument'
|
6
|
+
require 'graphql/result_cache/introspection'
|
6
7
|
|
7
8
|
module GraphQL
|
8
9
|
module ResultCache
|
@@ -16,9 +17,6 @@ module GraphQL
|
|
16
17
|
# c.client_hash = -> { Rails.cache.read(:deploy_version) }
|
17
18
|
attr_accessor :client_hash
|
18
19
|
|
19
|
-
attr_accessor :introspection
|
20
|
-
alias introspection? introspection
|
21
|
-
|
22
20
|
# ```
|
23
21
|
# GraphQL::ResultCache.configure do |c|
|
24
22
|
# c.namespace = "GraphQL:Result"
|
@@ -34,7 +32,6 @@ module GraphQL
|
|
34
32
|
# Default configuration
|
35
33
|
@expires_in = 3600 # 1.hour
|
36
34
|
@namespace = 'GraphQL:Result'
|
37
|
-
@introspection = false
|
38
35
|
|
39
36
|
def self.use(schema_def, options: {})
|
40
37
|
schema_def.instrument(:field, ::GraphQL::ResultCache::FieldInstrument.new)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-result_cache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ying Fu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -90,6 +90,8 @@ files:
|
|
90
90
|
- lib/graphql/result_cache/context_config.rb
|
91
91
|
- lib/graphql/result_cache/field.rb
|
92
92
|
- lib/graphql/result_cache/field_instrument.rb
|
93
|
+
- lib/graphql/result_cache/introspection.rb
|
94
|
+
- lib/graphql/result_cache/introspection/field_type.rb
|
93
95
|
- lib/graphql/result_cache/key.rb
|
94
96
|
- lib/graphql/result_cache/rails.rb
|
95
97
|
- lib/graphql/result_cache/result.rb
|