rails-graphql 0.2.1 → 1.0.0.beta
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/ext/console.rb +18 -0
- data/ext/extconf.h +3 -0
- data/ext/extconf.rb +1 -54
- data/ext/gql_parser.c +646 -0
- data/ext/shared.c +482 -0
- data/ext/shared.h +177 -0
- data/lib/gql_parser.so +0 -0
- data/lib/rails/graphql/adapters/mysql_adapter.rb +59 -0
- data/lib/rails/graphql/adapters/pg_adapter.rb +25 -22
- data/lib/rails/graphql/adapters/sqlite_adapter.rb +17 -14
- data/lib/rails/graphql/alternative/field_set.rb +36 -0
- data/lib/rails/graphql/alternative/mutation.rb +17 -0
- data/lib/rails/graphql/alternative/query.rb +93 -0
- data/lib/rails/graphql/alternative/subscription.rb +17 -0
- data/lib/rails/graphql/alternative.rb +20 -0
- data/lib/rails/graphql/argument.rb +21 -24
- data/lib/rails/graphql/callback.rb +24 -9
- data/lib/rails/graphql/collectors/hash_collector.rb +14 -6
- data/lib/rails/graphql/collectors/idented_collector.rb +10 -7
- data/lib/rails/graphql/collectors/json_collector.rb +22 -17
- data/lib/rails/graphql/collectors.rb +4 -4
- data/lib/rails/graphql/config.rb +130 -15
- data/lib/rails/graphql/directive/cached_directive.rb +33 -0
- data/lib/rails/graphql/directive/deprecated_directive.rb +10 -10
- data/lib/rails/graphql/directive/include_directive.rb +5 -4
- data/lib/rails/graphql/directive/skip_directive.rb +5 -4
- data/lib/rails/graphql/directive.rb +118 -63
- data/lib/rails/graphql/errors.rb +33 -4
- data/lib/rails/graphql/event.rb +16 -5
- data/lib/rails/graphql/field/authorized_field.rb +19 -3
- data/lib/rails/graphql/field/input_field.rb +11 -10
- data/lib/rails/graphql/field/mutation_field.rb +42 -7
- data/lib/rails/graphql/field/output_field.rb +102 -13
- data/lib/rails/graphql/field/proxied_field.rb +31 -22
- data/lib/rails/graphql/field/resolved_field.rb +26 -24
- data/lib/rails/graphql/field/scoped_config.rb +10 -4
- data/lib/rails/graphql/field/subscription_field.rb +140 -0
- data/lib/rails/graphql/field/typed_field.rb +43 -22
- data/lib/rails/graphql/field.rb +70 -56
- data/lib/rails/graphql/global_id.rb +85 -0
- data/lib/rails/graphql/helpers/attribute_delegator.rb +5 -5
- data/lib/rails/graphql/helpers/inherited_collection/array.rb +50 -0
- data/lib/rails/graphql/helpers/inherited_collection/base.rb +43 -0
- data/lib/rails/graphql/helpers/inherited_collection/hash.rb +87 -0
- data/lib/rails/graphql/helpers/inherited_collection.rb +25 -76
- data/lib/rails/graphql/helpers/instantiable.rb +15 -0
- data/lib/rails/graphql/helpers/leaf_from_ar.rb +7 -7
- data/lib/rails/graphql/helpers/registerable.rb +44 -62
- data/lib/rails/graphql/helpers/unregisterable.rb +16 -0
- data/lib/rails/graphql/helpers/with_arguments.rb +31 -27
- data/lib/rails/graphql/helpers/with_assignment.rb +6 -6
- data/lib/rails/graphql/helpers/with_callbacks.rb +25 -8
- data/lib/rails/graphql/helpers/with_description.rb +71 -0
- data/lib/rails/graphql/helpers/with_directives.rb +54 -30
- data/lib/rails/graphql/helpers/with_events.rb +21 -23
- data/lib/rails/graphql/helpers/with_fields.rb +76 -22
- data/lib/rails/graphql/helpers/with_global_id.rb +22 -0
- data/lib/rails/graphql/helpers/with_name.rb +43 -0
- data/lib/rails/graphql/helpers/with_namespace.rb +7 -4
- data/lib/rails/graphql/helpers/with_owner.rb +8 -7
- data/lib/rails/graphql/helpers/with_schema_fields.rb +137 -55
- data/lib/rails/graphql/helpers/with_validator.rb +9 -9
- data/lib/rails/graphql/helpers.rb +10 -3
- data/lib/rails/graphql/introspection.rb +43 -36
- data/lib/rails/graphql/railtie.rb +88 -33
- data/lib/rails/graphql/railties/base_generator.rb +3 -9
- data/lib/rails/graphql/railties/channel.rb +157 -0
- data/lib/rails/graphql/railties/controller.rb +62 -17
- data/lib/rails/graphql/railties/controller_runtime.rb +5 -5
- data/lib/rails/graphql/railties/log_subscriber.rb +81 -14
- data/lib/rails/graphql/request/arguments.rb +24 -49
- data/lib/rails/graphql/request/backtrace.rb +191 -0
- data/lib/rails/graphql/request/component/field.rb +86 -65
- data/lib/rails/graphql/request/component/fragment.rb +72 -24
- data/lib/rails/graphql/request/component/operation/subscription.rb +164 -4
- data/lib/rails/graphql/request/component/operation.rb +63 -31
- data/lib/rails/graphql/request/component/spread.rb +68 -25
- data/lib/rails/graphql/request/component/typename.rb +27 -12
- data/lib/rails/graphql/request/component.rb +75 -36
- data/lib/rails/graphql/request/context.rb +18 -8
- data/lib/rails/graphql/request/errors.rb +16 -6
- data/lib/rails/graphql/request/event.rb +19 -8
- data/lib/rails/graphql/request/helpers/directives.rb +68 -27
- data/lib/rails/graphql/request/helpers/selection_set.rb +51 -25
- data/lib/rails/graphql/request/helpers/value_writers.rb +18 -16
- data/lib/rails/graphql/request/prepared_data.rb +98 -0
- data/lib/rails/graphql/request/steps/authorizable.rb +24 -14
- data/lib/rails/graphql/request/steps/organizable.rb +110 -48
- data/lib/rails/graphql/request/steps/{prepareable.rb → preparable.rb} +20 -7
- data/lib/rails/graphql/request/steps/{resolveable.rb → resolvable.rb} +15 -6
- data/lib/rails/graphql/request/strategy/cached_strategy.rb +64 -0
- data/lib/rails/graphql/request/strategy/dynamic_instance.rb +6 -6
- data/lib/rails/graphql/request/strategy/multi_query_strategy.rb +6 -13
- data/lib/rails/graphql/request/strategy/sequenced_strategy.rb +9 -9
- data/lib/rails/graphql/request/strategy.rb +131 -75
- data/lib/rails/graphql/request/subscription.rb +80 -0
- data/lib/rails/graphql/request.rb +305 -86
- data/lib/rails/graphql/schema.rb +240 -48
- data/lib/rails/graphql/shortcuts.rb +22 -3
- data/lib/rails/graphql/source/active_record/builders.rb +49 -35
- data/lib/rails/graphql/source/active_record_source.rb +70 -54
- data/lib/rails/graphql/source/base.rb +111 -0
- data/lib/rails/graphql/source/builder.rb +128 -0
- data/lib/rails/graphql/source/scoped_arguments.rb +31 -19
- data/lib/rails/graphql/source.rb +89 -213
- data/lib/rails/graphql/subscription/provider/action_cable.rb +112 -0
- data/lib/rails/graphql/subscription/provider/base.rb +191 -0
- data/lib/rails/graphql/subscription/provider.rb +18 -0
- data/lib/rails/graphql/subscription/store/base.rb +145 -0
- data/lib/rails/graphql/subscription/store/memory.rb +127 -0
- data/lib/rails/graphql/subscription/store.rb +19 -0
- data/lib/rails/graphql/subscription.rb +17 -0
- data/lib/rails/graphql/to_gql.rb +29 -32
- data/lib/rails/graphql/type/enum/directive_location_enum.rb +11 -11
- data/lib/rails/graphql/type/enum/type_kind_enum.rb +3 -3
- data/lib/rails/graphql/type/enum.rb +34 -48
- data/lib/rails/graphql/type/input.rb +74 -23
- data/lib/rails/graphql/type/interface.rb +16 -26
- data/lib/rails/graphql/type/object/directive_object.rb +4 -4
- data/lib/rails/graphql/type/object/enum_value_object.rb +3 -3
- data/lib/rails/graphql/type/object/field_object.rb +24 -6
- data/lib/rails/graphql/type/object/input_value_object.rb +3 -3
- data/lib/rails/graphql/type/object/schema_object.rb +5 -8
- data/lib/rails/graphql/type/object/type_object.rb +29 -19
- data/lib/rails/graphql/type/object.rb +26 -23
- data/lib/rails/graphql/type/scalar/any_scalar.rb +30 -0
- data/lib/rails/graphql/type/scalar/bigint_scalar.rb +5 -5
- data/lib/rails/graphql/type/scalar/binary_scalar.rb +3 -3
- data/lib/rails/graphql/type/scalar/boolean_scalar.rb +8 -8
- data/lib/rails/graphql/type/scalar/date_scalar.rb +3 -3
- data/lib/rails/graphql/type/scalar/date_time_scalar.rb +3 -3
- data/lib/rails/graphql/type/scalar/decimal_scalar.rb +3 -3
- data/lib/rails/graphql/type/scalar/float_scalar.rb +5 -5
- data/lib/rails/graphql/type/scalar/id_scalar.rb +6 -5
- data/lib/rails/graphql/type/scalar/int_scalar.rb +6 -5
- data/lib/rails/graphql/type/scalar/json_scalar.rb +39 -0
- data/lib/rails/graphql/type/scalar/string_scalar.rb +18 -4
- data/lib/rails/graphql/type/scalar/time_scalar.rb +5 -5
- data/lib/rails/graphql/type/scalar.rb +25 -22
- data/lib/rails/graphql/type/union.rb +14 -16
- data/lib/rails/graphql/type.rb +34 -25
- data/lib/rails/graphql/type_map.rb +256 -164
- data/lib/rails/graphql/uri.rb +166 -0
- data/lib/rails/graphql/version.rb +15 -3
- data/lib/rails/graphql.rake +3 -0
- data/lib/rails/graphql.rb +85 -52
- data/lib/rails-graphql.rb +1 -1
- data/test/assets/en.yml +29 -0
- data/test/assets/introspection-mem.txt +1 -1
- data/test/assets/mem.gql +18 -45
- data/test/assets/mysql.gql +392 -0
- data/test/assets/sqlite.gql +21 -12
- data/test/assets/translate.gql +335 -0
- data/test/config.rb +18 -8
- data/test/graphql/schema_test.rb +12 -19
- data/test/graphql/source_test.rb +8 -75
- data/test/graphql/type/enum_test.rb +207 -203
- data/test/graphql/type/input_test.rb +14 -9
- data/test/graphql/type/interface_test.rb +4 -4
- data/test/graphql/type/scalar/any_scalar_test.rb +38 -0
- data/test/graphql/type/scalar/boolean_scalar_test.rb +6 -3
- data/test/graphql/type/scalar/json_scalar_test.rb +23 -0
- data/test/graphql/type_map_test.rb +51 -66
- data/test/graphql/type_test.rb +0 -19
- data/test/graphql_test.rb +1 -1
- data/test/integration/{authorization/authorization_test.rb → authorization_test.rb} +40 -14
- data/test/integration/config.rb +36 -3
- data/test/integration/customization_test.rb +39 -0
- data/test/integration/global_id_test.rb +99 -0
- data/test/integration/memory/star_wars_introspection_test.rb +24 -16
- data/test/integration/memory/star_wars_query_test.rb +54 -3
- data/test/integration/memory/star_wars_validation_test.rb +1 -1
- data/test/integration/mysql/star_wars_introspection_test.rb +25 -0
- data/test/integration/persisted_query_test.rb +87 -0
- data/test/integration/resolver_precedence_test.rb +154 -0
- data/test/integration/schemas/memory.rb +22 -7
- data/test/integration/schemas/mysql.rb +62 -0
- data/test/integration/schemas/sqlite.rb +21 -12
- data/test/integration/sqlite/star_wars_global_id_test.rb +83 -0
- data/test/integration/sqlite/star_wars_introspection_test.rb +10 -0
- data/test/integration/sqlite/star_wars_query_test.rb +14 -1
- data/test/integration/translate_test.rb +61 -0
- data/test/test_ext.rb +16 -13
- metadata +108 -157
- data/ext/depend +0 -3
- data/ext/graphqlparser/Ast.cpp +0 -346
- data/ext/graphqlparser/Ast.h +0 -1214
- data/ext/graphqlparser/AstNode.h +0 -36
- data/ext/graphqlparser/AstVisitor.h +0 -137
- data/ext/graphqlparser/GraphQLParser.cpp +0 -76
- data/ext/graphqlparser/GraphQLParser.h +0 -55
- data/ext/graphqlparser/JsonVisitor.cpp +0 -161
- data/ext/graphqlparser/JsonVisitor.cpp.inc +0 -456
- data/ext/graphqlparser/JsonVisitor.h +0 -121
- data/ext/graphqlparser/JsonVisitor.h.inc +0 -110
- data/ext/graphqlparser/VERSION +0 -1
- data/ext/graphqlparser/c/GraphQLAst.cpp +0 -324
- data/ext/graphqlparser/c/GraphQLAst.h +0 -180
- data/ext/graphqlparser/c/GraphQLAstForEachConcreteType.h +0 -44
- data/ext/graphqlparser/c/GraphQLAstNode.cpp +0 -25
- data/ext/graphqlparser/c/GraphQLAstNode.h +0 -33
- data/ext/graphqlparser/c/GraphQLAstToJSON.cpp +0 -21
- data/ext/graphqlparser/c/GraphQLAstToJSON.h +0 -24
- data/ext/graphqlparser/c/GraphQLAstVisitor.cpp +0 -55
- data/ext/graphqlparser/c/GraphQLAstVisitor.h +0 -53
- data/ext/graphqlparser/c/GraphQLParser.cpp +0 -35
- data/ext/graphqlparser/c/GraphQLParser.h +0 -54
- data/ext/graphqlparser/dump_json_ast.cpp +0 -48
- data/ext/graphqlparser/lexer.lpp +0 -324
- data/ext/graphqlparser/parser.ypp +0 -693
- data/ext/graphqlparser/parsergen/lexer.cpp +0 -2633
- data/ext/graphqlparser/parsergen/lexer.h +0 -528
- data/ext/graphqlparser/parsergen/location.hh +0 -189
- data/ext/graphqlparser/parsergen/parser.tab.cpp +0 -3300
- data/ext/graphqlparser/parsergen/parser.tab.hpp +0 -646
- data/ext/graphqlparser/parsergen/position.hh +0 -179
- data/ext/graphqlparser/parsergen/stack.hh +0 -156
- data/ext/graphqlparser/syntaxdefs.h +0 -19
- data/ext/libgraphqlparser/AstNode.h +0 -36
- data/ext/libgraphqlparser/CMakeLists.txt +0 -148
- data/ext/libgraphqlparser/CONTRIBUTING.md +0 -23
- data/ext/libgraphqlparser/GraphQLParser.cpp +0 -76
- data/ext/libgraphqlparser/GraphQLParser.h +0 -55
- data/ext/libgraphqlparser/JsonVisitor.cpp +0 -161
- data/ext/libgraphqlparser/JsonVisitor.h +0 -121
- data/ext/libgraphqlparser/LICENSE +0 -22
- data/ext/libgraphqlparser/README.clang-tidy +0 -7
- data/ext/libgraphqlparser/README.md +0 -84
- data/ext/libgraphqlparser/ast/ast.ast +0 -203
- data/ext/libgraphqlparser/ast/ast.py +0 -61
- data/ext/libgraphqlparser/ast/c.py +0 -100
- data/ext/libgraphqlparser/ast/c.pyc +0 -0
- data/ext/libgraphqlparser/ast/c_impl.py +0 -61
- data/ext/libgraphqlparser/ast/c_impl.pyc +0 -0
- data/ext/libgraphqlparser/ast/c_visitor_impl.py +0 -39
- data/ext/libgraphqlparser/ast/c_visitor_impl.pyc +0 -0
- data/ext/libgraphqlparser/ast/casing.py +0 -26
- data/ext/libgraphqlparser/ast/casing.pyc +0 -0
- data/ext/libgraphqlparser/ast/cxx.py +0 -197
- data/ext/libgraphqlparser/ast/cxx.pyc +0 -0
- data/ext/libgraphqlparser/ast/cxx_impl.py +0 -61
- data/ext/libgraphqlparser/ast/cxx_impl.pyc +0 -0
- data/ext/libgraphqlparser/ast/cxx_json_visitor_header.py +0 -42
- data/ext/libgraphqlparser/ast/cxx_json_visitor_header.pyc +0 -0
- data/ext/libgraphqlparser/ast/cxx_json_visitor_impl.py +0 -80
- data/ext/libgraphqlparser/ast/cxx_json_visitor_impl.pyc +0 -0
- data/ext/libgraphqlparser/ast/cxx_visitor.py +0 -64
- data/ext/libgraphqlparser/ast/cxx_visitor.pyc +0 -0
- data/ext/libgraphqlparser/ast/js.py +0 -65
- data/ext/libgraphqlparser/ast/license.py +0 -10
- data/ext/libgraphqlparser/ast/license.pyc +0 -0
- data/ext/libgraphqlparser/c/GraphQLAstNode.cpp +0 -25
- data/ext/libgraphqlparser/c/GraphQLAstNode.h +0 -33
- data/ext/libgraphqlparser/c/GraphQLAstToJSON.cpp +0 -21
- data/ext/libgraphqlparser/c/GraphQLAstToJSON.h +0 -24
- data/ext/libgraphqlparser/c/GraphQLAstVisitor.cpp +0 -55
- data/ext/libgraphqlparser/c/GraphQLAstVisitor.h +0 -53
- data/ext/libgraphqlparser/c/GraphQLParser.cpp +0 -35
- data/ext/libgraphqlparser/c/GraphQLParser.h +0 -54
- data/ext/libgraphqlparser/clang-tidy-all.sh +0 -3
- data/ext/libgraphqlparser/cmake/version.cmake +0 -16
- data/ext/libgraphqlparser/dump_json_ast.cpp +0 -48
- data/ext/libgraphqlparser/go/README.md +0 -20
- data/ext/libgraphqlparser/go/callbacks.go +0 -18
- data/ext/libgraphqlparser/go/gotest.go +0 -64
- data/ext/libgraphqlparser/lexer.lpp +0 -324
- data/ext/libgraphqlparser/libgraphqlparser.pc.in +0 -11
- data/ext/libgraphqlparser/parser.ypp +0 -693
- data/ext/libgraphqlparser/parsergen/lexer.cpp +0 -2633
- data/ext/libgraphqlparser/parsergen/lexer.h +0 -528
- data/ext/libgraphqlparser/parsergen/location.hh +0 -189
- data/ext/libgraphqlparser/parsergen/parser.tab.cpp +0 -3300
- data/ext/libgraphqlparser/parsergen/parser.tab.hpp +0 -646
- data/ext/libgraphqlparser/parsergen/position.hh +0 -179
- data/ext/libgraphqlparser/parsergen/stack.hh +0 -156
- data/ext/libgraphqlparser/python/CMakeLists.txt +0 -14
- data/ext/libgraphqlparser/python/README.md +0 -5
- data/ext/libgraphqlparser/python/example.py +0 -31
- data/ext/libgraphqlparser/syntaxdefs.h +0 -19
- data/ext/libgraphqlparser/test/BuildCAPI.c +0 -5
- data/ext/libgraphqlparser/test/CMakeLists.txt +0 -25
- data/ext/libgraphqlparser/test/JsonVisitorTests.cpp +0 -28
- data/ext/libgraphqlparser/test/ParserTests.cpp +0 -352
- data/ext/libgraphqlparser/test/kitchen-sink.graphql +0 -59
- data/ext/libgraphqlparser/test/kitchen-sink.json +0 -1
- data/ext/libgraphqlparser/test/schema-kitchen-sink.graphql +0 -78
- data/ext/libgraphqlparser/test/schema-kitchen-sink.json +0 -1
- data/ext/libgraphqlparser/test/valgrind.supp +0 -33
- data/ext/version.cpp +0 -21
- data/lib/graphqlparser.so +0 -0
- data/lib/rails/graphql/native/functions.rb +0 -38
- data/lib/rails/graphql/native/location.rb +0 -41
- data/lib/rails/graphql/native/pointers.rb +0 -23
- data/lib/rails/graphql/native/visitor.rb +0 -349
- data/lib/rails/graphql/native.rb +0 -56
- data/test/integration/schemas/authorization.rb +0 -12
data/test/assets/mem.gql
CHANGED
@@ -3,34 +3,10 @@ schema {
|
|
3
3
|
mutation: _Mutation
|
4
4
|
}
|
5
5
|
|
6
|
-
"""
|
7
|
-
The Bigint scalar type represents a signed numeric non‐fractional value.
|
8
|
-
It can go beyond the Int 32‐bit limit, but it's exchanged as a string.
|
9
|
-
"""
|
10
|
-
scalar Bigint
|
11
|
-
|
12
|
-
"""
|
13
|
-
The Binary scalar type represents a Base64 string.
|
14
|
-
Normally used to share files and uploads.
|
15
|
-
"""
|
16
|
-
scalar Binary
|
17
|
-
|
18
6
|
"The Boolean scalar type represents true or false."
|
19
7
|
scalar Boolean
|
20
8
|
|
21
|
-
"The
|
22
|
-
scalar Date
|
23
|
-
|
24
|
-
"The DateTime scalar type represents a ISO 8601 string value."
|
25
|
-
scalar DateTime
|
26
|
-
|
27
|
-
"""
|
28
|
-
The Decimal scalar type represents signed fractional values with extra precision.
|
29
|
-
The values are exchange as string.
|
30
|
-
"""
|
31
|
-
scalar Decimal
|
32
|
-
|
33
|
-
"The Float scalar type represents signed double‐precision fractional values."
|
9
|
+
"The Float scalar type represents signed double-precision fractional values."
|
34
10
|
scalar Float
|
35
11
|
|
36
12
|
"""
|
@@ -39,21 +15,15 @@ way as a String but it accepts both numeric and string based values as input.
|
|
39
15
|
"""
|
40
16
|
scalar ID
|
41
17
|
|
42
|
-
"The Int scalar type represents a signed 32
|
18
|
+
"The Int scalar type represents a signed 32-bit numeric non-fractional value."
|
43
19
|
scalar Int
|
44
20
|
|
45
21
|
"""
|
46
|
-
The String scalar type represents textual data, represented as UTF
|
22
|
+
The String scalar type represents textual data, represented as UTF-8 character
|
47
23
|
sequences.
|
48
24
|
"""
|
49
25
|
scalar String
|
50
26
|
|
51
|
-
"""
|
52
|
-
The Time scalar type that represents a distance in time using hours,
|
53
|
-
minutes, seconds, and miliseconds.
|
54
|
-
"""
|
55
|
-
scalar Time
|
56
|
-
|
57
27
|
"One of the films in the Star Wars Trilogy"
|
58
28
|
enum Episode {
|
59
29
|
"Released in 1977."
|
@@ -174,19 +144,19 @@ interface Character {
|
|
174
144
|
"A mechanical creature in the Star Wars universe"
|
175
145
|
# Assigned to MemoryTest::Droid class
|
176
146
|
type Droid implements Character {
|
177
|
-
"The id of the
|
147
|
+
"The id of the droid"
|
178
148
|
id: ID!
|
179
149
|
|
180
|
-
"The name of the
|
150
|
+
"The name of the droid"
|
181
151
|
name: String
|
182
152
|
|
183
|
-
"The friends of the
|
153
|
+
"The friends of the droid, or an empty list if they have none"
|
184
154
|
friends: [Character]
|
185
155
|
|
186
156
|
"Which movies they appear in"
|
187
157
|
appearsIn: [Episode]
|
188
158
|
|
189
|
-
"
|
159
|
+
"Construction date and the name of the designer"
|
190
160
|
secretBackstory: String
|
191
161
|
|
192
162
|
"The primary function of the droid"
|
@@ -196,23 +166,26 @@ type Droid implements Character {
|
|
196
166
|
"A humanoid creature in the Star Wars universe"
|
197
167
|
# Assigned to MemoryTest::Human class
|
198
168
|
type Human implements Character {
|
199
|
-
"The id of the
|
169
|
+
"The id of the human"
|
200
170
|
id: ID!
|
201
171
|
|
202
|
-
"The name of the
|
172
|
+
"The name of the human"
|
203
173
|
name: String
|
204
174
|
|
205
|
-
"The friends of the
|
175
|
+
"The friends of the human, or an empty list if they have none"
|
206
176
|
friends: [Character]
|
207
177
|
|
208
178
|
"Which movies they appear in"
|
209
179
|
appearsIn: [Episode]
|
210
180
|
|
211
|
-
"
|
181
|
+
"Where are they from and how they came to be who they are"
|
212
182
|
secretBackstory: String
|
213
183
|
|
214
184
|
"The home planet of the human, or null if unknown"
|
215
185
|
homePlanet: String
|
186
|
+
|
187
|
+
"A greeting phrase from this person to someone"
|
188
|
+
greeting(name: String!): String
|
216
189
|
}
|
217
190
|
|
218
191
|
type _Mutation {
|
@@ -260,7 +233,7 @@ type _Query {
|
|
260
233
|
Directives provide a way to describe alternate runtime execution
|
261
234
|
and type validation behavior in a GraphQL document.
|
262
235
|
|
263
|
-
In some cases, you need to provide options to alter GraphQL
|
236
|
+
In some cases, you need to provide options to alter GraphQL's execution
|
264
237
|
behavior in ways field arguments will not suffice, such as conditionally
|
265
238
|
including or skipping a field. Directives provide this by describing
|
266
239
|
additional information to the executor.
|
@@ -329,8 +302,8 @@ type __InputValue {
|
|
329
302
|
}
|
330
303
|
|
331
304
|
"""
|
332
|
-
A GraphQL service
|
333
|
-
to as that service
|
305
|
+
A GraphQL service's collective type system capabilities are referred
|
306
|
+
to as that service's "schema". A schema is defined in terms of the
|
334
307
|
types and directives it supports as well as the root operation types
|
335
308
|
for each kind of operation: query, mutation, and subscription; this
|
336
309
|
determines the place in the type system where those operations begin.
|
@@ -397,7 +370,7 @@ type __Type {
|
|
397
370
|
}
|
398
371
|
|
399
372
|
"""
|
400
|
-
Indicate deprecated portions of a GraphQL service
|
373
|
+
Indicate deprecated portions of a GraphQL service's schema, such as deprecated
|
401
374
|
fields on a type or deprecated enum values.
|
402
375
|
"""
|
403
376
|
directive @deprecated(
|
@@ -0,0 +1,392 @@
|
|
1
|
+
schema {
|
2
|
+
query: _Query
|
3
|
+
mutation: _Mutation
|
4
|
+
}
|
5
|
+
|
6
|
+
"The Any scalar type allows anything for both input and output."
|
7
|
+
scalar Any
|
8
|
+
|
9
|
+
"""
|
10
|
+
The Bigint scalar type represents a signed numeric non-fractional value.
|
11
|
+
It can go beyond the Int 32-bit limit, but it's exchanged as a string.
|
12
|
+
"""
|
13
|
+
scalar Bigint
|
14
|
+
|
15
|
+
"""
|
16
|
+
The Binary scalar type represents a Base64 string.
|
17
|
+
Normally used to share files and uploads.
|
18
|
+
"""
|
19
|
+
scalar Binary
|
20
|
+
|
21
|
+
"The Boolean scalar type represents true or false."
|
22
|
+
scalar Boolean
|
23
|
+
|
24
|
+
"The Date scalar type represents a ISO 8601 string value."
|
25
|
+
scalar Date
|
26
|
+
|
27
|
+
"The DateTime scalar type represents a ISO 8601 string value."
|
28
|
+
scalar DateTime
|
29
|
+
|
30
|
+
"""
|
31
|
+
The Decimal scalar type represents signed fractional values with extra precision.
|
32
|
+
The values are exchange as string.
|
33
|
+
"""
|
34
|
+
scalar Decimal
|
35
|
+
|
36
|
+
"The Float scalar type represents signed double-precision fractional values."
|
37
|
+
scalar Float
|
38
|
+
|
39
|
+
"""
|
40
|
+
The ID scalar type represents a unique identifier and it is serialized in the same
|
41
|
+
way as a String but it accepts both numeric and string based values as input.
|
42
|
+
"""
|
43
|
+
scalar ID
|
44
|
+
|
45
|
+
"The Int scalar type represents a signed 32-bit numeric non-fractional value."
|
46
|
+
scalar Int
|
47
|
+
|
48
|
+
"""
|
49
|
+
The JSON scalar type represents an unstructured JSON data
|
50
|
+
with all its available kyes and values.
|
51
|
+
"""
|
52
|
+
scalar JSON
|
53
|
+
|
54
|
+
"""
|
55
|
+
The String scalar type represents textual data, represented as UTF-8 character
|
56
|
+
sequences.
|
57
|
+
"""
|
58
|
+
scalar String
|
59
|
+
|
60
|
+
"""
|
61
|
+
The Time scalar type that represents a distance in time using hours,
|
62
|
+
minutes, seconds, and miliseconds.
|
63
|
+
"""
|
64
|
+
scalar Time
|
65
|
+
|
66
|
+
"The valid locations that a directive may be placed."
|
67
|
+
enum __DirectiveLocation {
|
68
|
+
"Mark as a executable directive usable on query objects."
|
69
|
+
QUERY
|
70
|
+
|
71
|
+
"Mark as a executable directive usable on mutation objects."
|
72
|
+
MUTATION
|
73
|
+
|
74
|
+
"Mark as a executable directive usable on subscription objects."
|
75
|
+
SUBSCRIPTION
|
76
|
+
|
77
|
+
"Mark as a executable directive usable on field objects."
|
78
|
+
FIELD
|
79
|
+
|
80
|
+
"Mark as a executable directive usable on fragment definition objects."
|
81
|
+
FRAGMENT_DEFINITION
|
82
|
+
|
83
|
+
"Mark as a executable directive usable on fragment spread objects."
|
84
|
+
FRAGMENT_SPREAD
|
85
|
+
|
86
|
+
"Mark as a executable directive usable on inline fragment objects."
|
87
|
+
INLINE_FRAGMENT
|
88
|
+
|
89
|
+
"Mark as a type system directive usable on schema definitions."
|
90
|
+
SCHEMA
|
91
|
+
|
92
|
+
"Mark as a type system directive usable on scalar definitions."
|
93
|
+
SCALAR
|
94
|
+
|
95
|
+
"Mark as a type system directive usable on object definitions."
|
96
|
+
OBJECT
|
97
|
+
|
98
|
+
"Mark as a type system directive usable on field definitions."
|
99
|
+
FIELD_DEFINITION
|
100
|
+
|
101
|
+
"Mark as a type system directive usable on argument definitions."
|
102
|
+
ARGUMENT_DEFINITION
|
103
|
+
|
104
|
+
"Mark as a type system directive usable on interface definitions."
|
105
|
+
INTERFACE
|
106
|
+
|
107
|
+
"Mark as a type system directive usable on union definitions."
|
108
|
+
UNION
|
109
|
+
|
110
|
+
"Mark as a type system directive usable on enum definitions."
|
111
|
+
ENUM
|
112
|
+
|
113
|
+
"Mark as a type system directive usable on enum value definitions."
|
114
|
+
ENUM_VALUE
|
115
|
+
|
116
|
+
"Mark as a type system directive usable on input object definitions."
|
117
|
+
INPUT_OBJECT
|
118
|
+
|
119
|
+
"Mark as a type system directive usable on input field definitions."
|
120
|
+
INPUT_FIELD_DEFINITION
|
121
|
+
}
|
122
|
+
|
123
|
+
"""
|
124
|
+
The fundamental unit of any GraphQL Schema is the type.
|
125
|
+
This enum enlist all the valid base types.
|
126
|
+
"""
|
127
|
+
enum __TypeKind {
|
128
|
+
"Scalar types represent primitive leaf values in a GraphQL type system.\n"
|
129
|
+
SCALAR
|
130
|
+
|
131
|
+
"Objects represent a list of named fields, each of which yield a value of a\nspecific type.\n"
|
132
|
+
OBJECT
|
133
|
+
|
134
|
+
"Interfaces represent a list of named fields and their types.\n"
|
135
|
+
INTERFACE
|
136
|
+
|
137
|
+
"Unions represent an object that could be one of a list of GraphQL Object types.\n"
|
138
|
+
UNION
|
139
|
+
|
140
|
+
"Enum types, like scalar types, also represent leaf values in a GraphQL\ntype system. However Enum types describe the set of possible values.\n"
|
141
|
+
ENUM
|
142
|
+
|
143
|
+
"Objects represent a list of named fields, each of which yield a value of\na specific type.\n"
|
144
|
+
INPUT_OBJECT
|
145
|
+
|
146
|
+
"A GraphQL list is a special collection type which declares the type of\neach item in the List (referred to as the item type of the list).\n"
|
147
|
+
LIST
|
148
|
+
|
149
|
+
"This type wraps an underlying type, and this type acts identically to that wrapped\ntype, with the exception that null is not a valid response for the wrapping type.\n"
|
150
|
+
NON_NULL
|
151
|
+
}
|
152
|
+
|
153
|
+
# Assigned to Jedi class
|
154
|
+
input JediInput {
|
155
|
+
id: ID
|
156
|
+
|
157
|
+
jediTypeId: ID
|
158
|
+
|
159
|
+
name: String
|
160
|
+
|
161
|
+
_delete: Boolean = false
|
162
|
+
}
|
163
|
+
|
164
|
+
# Assigned to JediType class
|
165
|
+
input JediTypeInput {
|
166
|
+
id: ID
|
167
|
+
|
168
|
+
name: String
|
169
|
+
|
170
|
+
_delete: Boolean = false
|
171
|
+
|
172
|
+
jediAttributes: [JediInput!]
|
173
|
+
}
|
174
|
+
|
175
|
+
# Assigned to Jedi class
|
176
|
+
type Jedi {
|
177
|
+
id: ID!
|
178
|
+
|
179
|
+
jediTypeId: ID
|
180
|
+
|
181
|
+
name: String
|
182
|
+
|
183
|
+
jediType: JediType
|
184
|
+
}
|
185
|
+
|
186
|
+
# Assigned to JediType class
|
187
|
+
type JediType {
|
188
|
+
id: ID!
|
189
|
+
|
190
|
+
name: String
|
191
|
+
|
192
|
+
jedi: [Jedi!]!
|
193
|
+
}
|
194
|
+
|
195
|
+
type _Mutation {
|
196
|
+
createJediType(jediType: JediTypeInput!): JediType!
|
197
|
+
|
198
|
+
updateJediType(id: ID!, jediType: JediTypeInput!): JediType!
|
199
|
+
|
200
|
+
deleteJediType(id: ID!): Boolean!
|
201
|
+
|
202
|
+
createJedi(jedi: JediInput!): Jedi!
|
203
|
+
|
204
|
+
updateJedi(id: ID!, jedi: JediInput!): Jedi!
|
205
|
+
|
206
|
+
deleteJedi(id: ID!): Boolean!
|
207
|
+
}
|
208
|
+
|
209
|
+
type _Query {
|
210
|
+
__schema: __Schema!
|
211
|
+
|
212
|
+
__type(name: String!): __Type
|
213
|
+
|
214
|
+
jediTypes(order: String): [JediType!]!
|
215
|
+
|
216
|
+
jediType(id: ID!): JediType!
|
217
|
+
|
218
|
+
jedis: [Jedi!]!
|
219
|
+
|
220
|
+
jedi(id: ID!): Jedi!
|
221
|
+
}
|
222
|
+
|
223
|
+
"""
|
224
|
+
Directives provide a way to describe alternate runtime execution
|
225
|
+
and type validation behavior in a GraphQL document.
|
226
|
+
|
227
|
+
In some cases, you need to provide options to alter GraphQL's execution
|
228
|
+
behavior in ways field arguments will not suffice, such as conditionally
|
229
|
+
including or skipping a field. Directives provide this by describing
|
230
|
+
additional information to the executor.
|
231
|
+
"""
|
232
|
+
# Assigned to Rails::GraphQL::Directive class
|
233
|
+
type __Directive {
|
234
|
+
name: String!
|
235
|
+
|
236
|
+
description: String
|
237
|
+
|
238
|
+
locations: [__DirectiveLocation!]!
|
239
|
+
|
240
|
+
args: [__InputValue!]!
|
241
|
+
}
|
242
|
+
|
243
|
+
"""
|
244
|
+
One of the values of an Enum object. It is unique within the Enum set
|
245
|
+
of values. It's a string representation, not a numeric representation,
|
246
|
+
of a value kept as all caps (ie. ONE_VALUE).
|
247
|
+
"""
|
248
|
+
type __EnumValue {
|
249
|
+
name: String!
|
250
|
+
|
251
|
+
description: String
|
252
|
+
|
253
|
+
isDeprecated: Boolean!
|
254
|
+
|
255
|
+
deprecationReason: String
|
256
|
+
}
|
257
|
+
|
258
|
+
"""
|
259
|
+
Fields are the elements that compose both Objects and Interfaces. Each
|
260
|
+
field in these other objects may contain arguments and always yields
|
261
|
+
a value of a specific type.
|
262
|
+
"""
|
263
|
+
# Assigned to Rails::GraphQL::Field class
|
264
|
+
type __Field {
|
265
|
+
name: String!
|
266
|
+
|
267
|
+
description: String
|
268
|
+
|
269
|
+
args: [__InputValue!]!
|
270
|
+
|
271
|
+
type: __Type!
|
272
|
+
|
273
|
+
isDeprecated: Boolean!
|
274
|
+
|
275
|
+
deprecationReason: String
|
276
|
+
}
|
277
|
+
|
278
|
+
"""
|
279
|
+
Alongside with scalars and enums, input value objects allow the user
|
280
|
+
to provide values to arguments on fields and directives. Different
|
281
|
+
from those, input values accepts a list of keyed values, instead of
|
282
|
+
a single value.
|
283
|
+
"""
|
284
|
+
# Assigned to Rails::GraphQL::Field::InputField class
|
285
|
+
type __InputValue {
|
286
|
+
name: String!
|
287
|
+
|
288
|
+
description: String
|
289
|
+
|
290
|
+
type: __Type!
|
291
|
+
|
292
|
+
defaultValue: String
|
293
|
+
}
|
294
|
+
|
295
|
+
"""
|
296
|
+
A GraphQL service's collective type system capabilities are referred
|
297
|
+
to as that service's "schema". A schema is defined in terms of the
|
298
|
+
types and directives it supports as well as the root operation types
|
299
|
+
for each kind of operation: query, mutation, and subscription; this
|
300
|
+
determines the place in the type system where those operations begin.
|
301
|
+
"""
|
302
|
+
# Assigned to Rails::GraphQL::Schema class
|
303
|
+
type __Schema {
|
304
|
+
types: [__Type!]!
|
305
|
+
|
306
|
+
queryType: __Type!
|
307
|
+
|
308
|
+
mutationType: __Type
|
309
|
+
|
310
|
+
subscriptionType: __Type
|
311
|
+
|
312
|
+
directives: [__Directive!]!
|
313
|
+
}
|
314
|
+
|
315
|
+
"""
|
316
|
+
The fundamental unit of any GraphQL Schema is the type. There are six
|
317
|
+
kinds of named type definitions in GraphQL, and two wrapping types.
|
318
|
+
|
319
|
+
The most basic type is a +Scalar+. A scalar represents a primitive value,
|
320
|
+
like a string or an integer.
|
321
|
+
|
322
|
+
+Scalars+ and +Enums+ form the leaves in response trees; the intermediate
|
323
|
+
levels are +Object+ types, which define a set of fields.
|
324
|
+
|
325
|
+
An +Interface+ defines a list of fields; +Object+ types that implement
|
326
|
+
that interface are guaranteed to implement those fields.
|
327
|
+
|
328
|
+
A +Union+ defines a list of possible types; similar to interfaces,
|
329
|
+
whenever the type system claims a union will be returned, one of the
|
330
|
+
possible types will be returned.
|
331
|
+
|
332
|
+
Finally, oftentimes it is useful to provide complex structs as inputs
|
333
|
+
to GraphQL field arguments or variables; the +Input Object+ type allows
|
334
|
+
the schema to define exactly what data is expected.
|
335
|
+
"""
|
336
|
+
# Assigned to Rails::GraphQL::Type class
|
337
|
+
type __Type {
|
338
|
+
kind: __TypeKind!
|
339
|
+
|
340
|
+
name: String
|
341
|
+
|
342
|
+
description: String
|
343
|
+
|
344
|
+
"OBJECT and INTERFACE only"
|
345
|
+
fields(includeDeprecated: Boolean = false): [__Field!]
|
346
|
+
|
347
|
+
"OBJECT only"
|
348
|
+
interfaces: [__Type!]
|
349
|
+
|
350
|
+
"INTERFACE and UNION only"
|
351
|
+
possibleTypes: [__Type!]
|
352
|
+
|
353
|
+
"ENUM only"
|
354
|
+
enumValues(includeDeprecated: Boolean = false): [__EnumValue!]
|
355
|
+
|
356
|
+
"INPUT_OBJECT only"
|
357
|
+
inputFields: [__InputValue!]
|
358
|
+
|
359
|
+
"NON_NULL and LIST only"
|
360
|
+
ofType: __Type
|
361
|
+
}
|
362
|
+
|
363
|
+
"""
|
364
|
+
Indicate deprecated portions of a GraphQL service's schema, such as deprecated
|
365
|
+
fields on a type or deprecated enum values.
|
366
|
+
"""
|
367
|
+
directive @deprecated(
|
368
|
+
|
369
|
+
"""
|
370
|
+
Explain why the underlying element was marked as deprecated. If possible,
|
371
|
+
indicate what element should be used instead. This description is formatted
|
372
|
+
using Markdown syntax (as specified by [CommonMark](http://commonmark.org/)).
|
373
|
+
"""
|
374
|
+
reason: String
|
375
|
+
|
376
|
+
) on FIELD_DEFINITION | ENUM_VALUE
|
377
|
+
|
378
|
+
"Allows for conditional inclusion during execution as described by the if argument."
|
379
|
+
directive @include(
|
380
|
+
|
381
|
+
"When false, the underlying element will be automatically marked as null."
|
382
|
+
if: Boolean!
|
383
|
+
|
384
|
+
) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT
|
385
|
+
|
386
|
+
"Allows for conditional exclusion during execution as described by the if argument."
|
387
|
+
directive @skip(
|
388
|
+
|
389
|
+
"When true, the underlying element will be automatically marked as null."
|
390
|
+
if: Boolean!
|
391
|
+
|
392
|
+
) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT
|
data/test/assets/sqlite.gql
CHANGED
@@ -3,9 +3,12 @@ schema {
|
|
3
3
|
mutation: _Mutation
|
4
4
|
}
|
5
5
|
|
6
|
+
"The Any scalar type allows anything for both input and output."
|
7
|
+
scalar Any
|
8
|
+
|
6
9
|
"""
|
7
|
-
The Bigint scalar type represents a signed numeric non
|
8
|
-
It can go beyond the Int 32
|
10
|
+
The Bigint scalar type represents a signed numeric non-fractional value.
|
11
|
+
It can go beyond the Int 32-bit limit, but it's exchanged as a string.
|
9
12
|
"""
|
10
13
|
scalar Bigint
|
11
14
|
|
@@ -30,7 +33,7 @@ The values are exchange as string.
|
|
30
33
|
"""
|
31
34
|
scalar Decimal
|
32
35
|
|
33
|
-
"The Float scalar type represents signed double
|
36
|
+
"The Float scalar type represents signed double-precision fractional values."
|
34
37
|
scalar Float
|
35
38
|
|
36
39
|
"""
|
@@ -39,11 +42,17 @@ way as a String but it accepts both numeric and string based values as input.
|
|
39
42
|
"""
|
40
43
|
scalar ID
|
41
44
|
|
42
|
-
"The Int scalar type represents a signed 32
|
45
|
+
"The Int scalar type represents a signed 32-bit numeric non-fractional value."
|
43
46
|
scalar Int
|
44
47
|
|
45
48
|
"""
|
46
|
-
The
|
49
|
+
The JSON scalar type represents an unstructured JSON data
|
50
|
+
with all its available kyes and values.
|
51
|
+
"""
|
52
|
+
scalar JSON
|
53
|
+
|
54
|
+
"""
|
55
|
+
The String scalar type represents textual data, represented as UTF-8 character
|
47
56
|
sequences.
|
48
57
|
"""
|
49
58
|
scalar String
|
@@ -147,7 +156,7 @@ input LiteBaseInput {
|
|
147
156
|
|
148
157
|
factionId: ID
|
149
158
|
|
150
|
-
name: String
|
159
|
+
name: String!
|
151
160
|
|
152
161
|
planet: String
|
153
162
|
|
@@ -184,7 +193,7 @@ type LiteBase {
|
|
184
193
|
|
185
194
|
factionId: ID
|
186
195
|
|
187
|
-
name: String
|
196
|
+
name: String!
|
188
197
|
|
189
198
|
planet: String
|
190
199
|
|
@@ -242,7 +251,7 @@ type _Query {
|
|
242
251
|
|
243
252
|
liteFaction(id: ID!): LiteFaction!
|
244
253
|
|
245
|
-
liteBases: [LiteBase!]!
|
254
|
+
liteBases(order: String = "desc"): [LiteBase!]!
|
246
255
|
|
247
256
|
liteBase(id: ID!): LiteBase!
|
248
257
|
|
@@ -255,7 +264,7 @@ type _Query {
|
|
255
264
|
Directives provide a way to describe alternate runtime execution
|
256
265
|
and type validation behavior in a GraphQL document.
|
257
266
|
|
258
|
-
In some cases, you need to provide options to alter GraphQL
|
267
|
+
In some cases, you need to provide options to alter GraphQL's execution
|
259
268
|
behavior in ways field arguments will not suffice, such as conditionally
|
260
269
|
including or skipping a field. Directives provide this by describing
|
261
270
|
additional information to the executor.
|
@@ -324,8 +333,8 @@ type __InputValue {
|
|
324
333
|
}
|
325
334
|
|
326
335
|
"""
|
327
|
-
A GraphQL service
|
328
|
-
to as that service
|
336
|
+
A GraphQL service's collective type system capabilities are referred
|
337
|
+
to as that service's "schema". A schema is defined in terms of the
|
329
338
|
types and directives it supports as well as the root operation types
|
330
339
|
for each kind of operation: query, mutation, and subscription; this
|
331
340
|
determines the place in the type system where those operations begin.
|
@@ -392,7 +401,7 @@ type __Type {
|
|
392
401
|
}
|
393
402
|
|
394
403
|
"""
|
395
|
-
Indicate deprecated portions of a GraphQL service
|
404
|
+
Indicate deprecated portions of a GraphQL service's schema, such as deprecated
|
396
405
|
fields on a type or deprecated enum values.
|
397
406
|
"""
|
398
407
|
directive @deprecated(
|