lighthouse-graphql 0.4.0 → 0.5.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.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +139 -1
  3. data/README.md +8 -5
  4. data/docs/configuration.md +26 -2
  5. data/docs/directives.md +287 -4
  6. data/docs/generators.md +82 -0
  7. data/docs/getting-started.md +26 -30
  8. data/docs/relationships.md +42 -0
  9. data/docs/relay.md +137 -0
  10. data/docs/resolvers.md +261 -22
  11. data/docs/security.md +17 -0
  12. data/docs/types.md +219 -0
  13. data/docs/uploads.md +80 -0
  14. data/lib/generators/lighthouse/base_classes.rb +32 -49
  15. data/lib/generators/lighthouse/install/install_generator.rb +83 -24
  16. data/lib/generators/lighthouse/install/templates/initializer.rb.tt +14 -6
  17. data/lib/generators/lighthouse/install/templates/schema.rb.tt +10 -3
  18. data/lib/lighthouse/async_mutation_job.rb +17 -0
  19. data/lib/lighthouse/complexity.rb +5 -4
  20. data/lib/lighthouse/config.rb +13 -2
  21. data/lib/lighthouse/controller.rb +27 -9
  22. data/lib/lighthouse/dataloader_sources/preload_loader.rb +16 -0
  23. data/lib/lighthouse/dataloader_sources/relation_counts_loader.rb +46 -0
  24. data/lib/lighthouse/default_resolve_dispatcher.rb +26 -0
  25. data/lib/lighthouse/directive_resolvers/all_resolver.rb +1 -1
  26. data/lib/lighthouse/directive_resolvers/argument_binding.rb +61 -0
  27. data/lib/lighthouse/directive_resolvers/argument_transforms_resolver.rb +220 -0
  28. data/lib/lighthouse/directive_resolvers/association_resolvers.rb +2 -2
  29. data/lib/lighthouse/directive_resolvers/async_resolver.rb +90 -0
  30. data/lib/lighthouse/directive_resolvers/base.rb +63 -14
  31. data/lib/lighthouse/directive_resolvers/builder_applier.rb +89 -19
  32. data/lib/lighthouse/directive_resolvers/can_resolvers.rb +1 -1
  33. data/lib/lighthouse/directive_resolvers/convention_resolver.rb +2 -1
  34. data/lib/lighthouse/directive_resolvers/count_resolver.rb +1 -1
  35. data/lib/lighthouse/directive_resolvers/field_resolver.rb +35 -7
  36. data/lib/lighthouse/directive_resolvers/first_resolver.rb +1 -1
  37. data/lib/lighthouse/directive_resolvers/global_id_resolver.rb +57 -0
  38. data/lib/lighthouse/directive_resolvers/lazy_load_resolver.rb +61 -0
  39. data/lib/lighthouse/directive_resolvers/limit_resolver.rb +59 -0
  40. data/lib/lighthouse/directive_resolvers/method_resolver.rb +38 -3
  41. data/lib/lighthouse/directive_resolvers/model_mutation_resolver.rb +1 -1
  42. data/lib/lighthouse/directive_resolvers/namespaced_resolver.rb +31 -0
  43. data/lib/lighthouse/directive_resolvers/paginate_resolver.rb +1 -1
  44. data/lib/lighthouse/directive_resolvers/resolution.rb +19 -4
  45. data/lib/lighthouse/directive_resolvers/subscription_resolver.rb +2 -1
  46. data/lib/lighthouse/directive_resolvers/throttle_resolver.rb +77 -0
  47. data/lib/lighthouse/directive_resolvers/type_method_resolver.rb +81 -0
  48. data/lib/lighthouse/directive_resolvers/with_count_resolver.rb +43 -0
  49. data/lib/lighthouse/directive_resolvers/with_resolver.rb +42 -0
  50. data/lib/lighthouse/directives/arguments/more_filters.rb +215 -0
  51. data/lib/lighthouse/directives/definitions.rb +52 -0
  52. data/lib/lighthouse/directives/model_directive.rb +131 -0
  53. data/lib/lighthouse/directives/node_directive.rb +134 -0
  54. data/lib/lighthouse/directives/pagination_manipulator.rb +1 -1
  55. data/lib/lighthouse/directives/registry.rb +21 -21
  56. data/lib/lighthouse/directives/visibility_directive.rb +71 -0
  57. data/lib/lighthouse/enum_directive.rb +41 -0
  58. data/lib/lighthouse/field_resolver_stack.rb +53 -6
  59. data/lib/lighthouse/generated_resolvers.rb +13 -8
  60. data/lib/lighthouse/global_id.rb +31 -0
  61. data/lib/lighthouse/graphql/version.rb +1 -1
  62. data/lib/lighthouse/multipart_request.rb +43 -0
  63. data/lib/lighthouse/node_registry.rb +68 -0
  64. data/lib/lighthouse/pagination.rb +3 -0
  65. data/lib/lighthouse/rb_lighthouse.rb +33 -0
  66. data/lib/lighthouse/relation_counts.rb +29 -0
  67. data/lib/lighthouse/resolve_info.rb +80 -0
  68. data/lib/lighthouse/resolver_bases.rb +9 -2
  69. data/lib/lighthouse/resolver_dispatch.rb +36 -11
  70. data/lib/lighthouse/scalar_coercion.rb +72 -0
  71. data/lib/lighthouse/schema_cache.rb +2 -1
  72. data/lib/lighthouse/schema_generator.rb +11 -10
  73. data/lib/lighthouse/schema_implementation.rb +4 -8
  74. data/lib/lighthouse/support/environment.rb +13 -0
  75. data/lib/lighthouse/support/model_resolver.rb +7 -5
  76. data/lib/lighthouse/support/preload.rb +49 -0
  77. data/lib/lighthouse/type.rb +103 -0
  78. data/lib/lighthouse/type_resolution.rb +150 -0
  79. data/lib/lighthouse/upload.rb +26 -0
  80. data/lib/lighthouse/upload_store.rb +32 -0
  81. data/sig/lighthouse/directives.rbs +3 -2
  82. data/sig/lighthouse.rbs +18 -0
  83. metadata +38 -1
data/sig/lighthouse.rbs CHANGED
@@ -39,6 +39,18 @@ module Lighthouse
39
39
  def call: (StandardError error, context? context) -> void
40
40
  end
41
41
 
42
+ # Config.global_id: encodes and decodes Relay global ids (@globalId, @node).
43
+ interface _GlobalId
44
+ def encode: (String type, untyped id) -> String
45
+ def decode: (String global_id) -> Array[String]
46
+ end
47
+
48
+ # Config.upload_store: stores the file an @upload argument carries, and returns
49
+ # what the argument holds instead (an ActiveStorage blob's signed id by default).
50
+ interface _UploadStore
51
+ def call: (untyped file, ?disk: String?, ?path: String?, ?public: bool?) -> untyped
52
+ end
53
+
42
54
  # Config.authenticated_user and Config.policy_user: the user of a request.
43
55
  interface _UserReader
44
56
  def call: (context? context) -> untyped
@@ -132,6 +144,12 @@ module Lighthouse
132
144
  def self.convert_empty_strings_to_null: () -> bool
133
145
  def self.convert_empty_strings_to_null=: (bool? enabled) -> bool?
134
146
 
147
+ def self.global_id: () -> _GlobalId
148
+ def self.global_id=: (_GlobalId? codec) -> _GlobalId?
149
+
150
+ def self.upload_store: () -> _UploadStore
151
+ def self.upload_store=: (_UploadStore? store) -> _UploadStore?
152
+
135
153
  # Whether @broadcast triggers in an ActiveJob (Lighthouse::GraphQL::BroadcastJob)
136
154
  # unless the directive says shouldQueue; and the job's queue (nil: ActiveJob's default).
137
155
  def self.queue_broadcasts: () -> bool
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lighthouse-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vaz Innovation
@@ -62,14 +62,18 @@ files:
62
62
  - docs/events.md
63
63
  - docs/federation.md
64
64
  - docs/filtering-and-ordering.md
65
+ - docs/generators.md
65
66
  - docs/getting-started.md
66
67
  - docs/motivation.md
67
68
  - docs/mutations.md
68
69
  - docs/performance.md
69
70
  - docs/relationships.md
71
+ - docs/relay.md
70
72
  - docs/resolvers.md
71
73
  - docs/security.md
72
74
  - docs/subscriptions.md
75
+ - docs/types.md
76
+ - docs/uploads.md
73
77
  - docs/validation.md
74
78
  - lib/generators/lighthouse/base_classes.rb
75
79
  - lib/generators/lighthouse/builder_generator.rb
@@ -85,6 +89,7 @@ files:
85
89
  - lib/generators/lighthouse/subscription_generator.rb
86
90
  - lib/generators/lighthouse/validator_generator.rb
87
91
  - lib/lighthouse-graphql.rb
92
+ - lib/lighthouse/async_mutation_job.rb
88
93
  - lib/lighthouse/broadcast_job.rb
89
94
  - lib/lighthouse/broadcasting.rb
90
95
  - lib/lighthouse/cache_control.rb
@@ -101,11 +106,17 @@ files:
101
106
  - lib/lighthouse/controller.rb
102
107
  - lib/lighthouse/dataloader_sources/association_loader.rb
103
108
  - lib/lighthouse/dataloader_sources/model_loader.rb
109
+ - lib/lighthouse/dataloader_sources/preload_loader.rb
104
110
  - lib/lighthouse/dataloader_sources/relation_count_loader.rb
111
+ - lib/lighthouse/dataloader_sources/relation_counts_loader.rb
105
112
  - lib/lighthouse/dataloader_sources/relation_page_loader.rb
113
+ - lib/lighthouse/default_resolve_dispatcher.rb
106
114
  - lib/lighthouse/directive_resolvers/aggregate_resolver.rb
107
115
  - lib/lighthouse/directive_resolvers/all_resolver.rb
116
+ - lib/lighthouse/directive_resolvers/argument_binding.rb
117
+ - lib/lighthouse/directive_resolvers/argument_transforms_resolver.rb
108
118
  - lib/lighthouse/directive_resolvers/association_resolvers.rb
119
+ - lib/lighthouse/directive_resolvers/async_resolver.rb
109
120
  - lib/lighthouse/directive_resolvers/auth_resolver.rb
110
121
  - lib/lighthouse/directive_resolvers/base.rb
111
122
  - lib/lighthouse/directive_resolvers/broadcast_resolver.rb
@@ -119,25 +130,39 @@ files:
119
130
  - lib/lighthouse/directive_resolvers/field_resolver.rb
120
131
  - lib/lighthouse/directive_resolvers/find_resolver.rb
121
132
  - lib/lighthouse/directive_resolvers/first_resolver.rb
133
+ - lib/lighthouse/directive_resolvers/global_id_resolver.rb
122
134
  - lib/lighthouse/directive_resolvers/guard_resolver.rb
135
+ - lib/lighthouse/directive_resolvers/lazy_load_resolver.rb
136
+ - lib/lighthouse/directive_resolvers/limit_resolver.rb
123
137
  - lib/lighthouse/directive_resolvers/method_resolver.rb
124
138
  - lib/lighthouse/directive_resolvers/model_mutation_resolver.rb
139
+ - lib/lighthouse/directive_resolvers/namespaced_resolver.rb
125
140
  - lib/lighthouse/directive_resolvers/paginate_resolver.rb
126
141
  - lib/lighthouse/directive_resolvers/rename_resolver.rb
127
142
  - lib/lighthouse/directive_resolvers/resolution.rb
128
143
  - lib/lighthouse/directive_resolvers/soft_delete_resolvers.rb
129
144
  - lib/lighthouse/directive_resolvers/subscription_resolver.rb
145
+ - lib/lighthouse/directive_resolvers/throttle_resolver.rb
146
+ - lib/lighthouse/directive_resolvers/type_method_resolver.rb
130
147
  - lib/lighthouse/directive_resolvers/validator_resolver.rb
131
148
  - lib/lighthouse/directive_resolvers/where_conditions_applier.rb
149
+ - lib/lighthouse/directive_resolvers/with_count_resolver.rb
150
+ - lib/lighthouse/directive_resolvers/with_resolver.rb
132
151
  - lib/lighthouse/directives/arguments/base.rb
133
152
  - lib/lighthouse/directives/arguments/filters.rb
153
+ - lib/lighthouse/directives/arguments/more_filters.rb
134
154
  - lib/lighthouse/directives/arguments/order_by.rb
135
155
  - lib/lighthouse/directives/arguments/soft_deletes.rb
156
+ - lib/lighthouse/directives/definitions.rb
157
+ - lib/lighthouse/directives/model_directive.rb
158
+ - lib/lighthouse/directives/node_directive.rb
136
159
  - lib/lighthouse/directives/pagination_info_types.rb
137
160
  - lib/lighthouse/directives/pagination_manipulator.rb
138
161
  - lib/lighthouse/directives/registry.rb
139
162
  - lib/lighthouse/directives/soft_deletes_directive.rb
163
+ - lib/lighthouse/directives/visibility_directive.rb
140
164
  - lib/lighthouse/directives/where_conditions_directive.rb
165
+ - lib/lighthouse/enum_directive.rb
141
166
  - lib/lighthouse/errors.rb
142
167
  - lib/lighthouse/events.rb
143
168
  - lib/lighthouse/events/execution_trace.rb
@@ -147,10 +172,12 @@ files:
147
172
  - lib/lighthouse/federation_directives.rb
148
173
  - lib/lighthouse/field_resolver_stack.rb
149
174
  - lib/lighthouse/generated_resolvers.rb
175
+ - lib/lighthouse/global_id.rb
150
176
  - lib/lighthouse/graphql.rb
151
177
  - lib/lighthouse/graphql/version.rb
152
178
  - lib/lighthouse/graphql_ruby_patches.rb
153
179
  - lib/lighthouse/ide_helper.rb
180
+ - lib/lighthouse/multipart_request.rb
154
181
  - lib/lighthouse/namespaces.rb
155
182
  - lib/lighthouse/nested_mutations.rb
156
183
  - lib/lighthouse/nested_mutations/belongs_to_operations.rb
@@ -158,6 +185,7 @@ files:
158
185
  - lib/lighthouse/nested_mutations/has_operations.rb
159
186
  - lib/lighthouse/nested_mutations/many_to_many_operations.rb
160
187
  - lib/lighthouse/nested_mutations/partitioner.rb
188
+ - lib/lighthouse/node_registry.rb
161
189
  - lib/lighthouse/pagination.rb
162
190
  - lib/lighthouse/persisted_queries.rb
163
191
  - lib/lighthouse/persisted_queries/batch.rb
@@ -165,8 +193,11 @@ files:
165
193
  - lib/lighthouse/rb_lighthouse.rb
166
194
  - lib/lighthouse/reference_resolver.rb
167
195
  - lib/lighthouse/relation_batch.rb
196
+ - lib/lighthouse/relation_counts.rb
197
+ - lib/lighthouse/resolve_info.rb
168
198
  - lib/lighthouse/resolver_bases.rb
169
199
  - lib/lighthouse/resolver_dispatch.rb
200
+ - lib/lighthouse/scalar_coercion.rb
170
201
  - lib/lighthouse/schema_cache.rb
171
202
  - lib/lighthouse/schema_factory.rb
172
203
  - lib/lighthouse/schema_generator.rb
@@ -177,10 +208,16 @@ files:
177
208
  - lib/lighthouse/support/authorization.rb
178
209
  - lib/lighthouse/support/batching.rb
179
210
  - lib/lighthouse/support/directive_args.rb
211
+ - lib/lighthouse/support/environment.rb
180
212
  - lib/lighthouse/support/model_resolver.rb
181
213
  - lib/lighthouse/support/naming.rb
214
+ - lib/lighthouse/support/preload.rb
182
215
  - lib/lighthouse/support/soft_deletes.rb
183
216
  - lib/lighthouse/tasks/lighthouse.rake
217
+ - lib/lighthouse/type.rb
218
+ - lib/lighthouse/type_resolution.rb
219
+ - lib/lighthouse/upload.rb
220
+ - lib/lighthouse/upload_store.rb
184
221
  - lib/lighthouse/where_conditions/operator_map.rb
185
222
  - sig/lighthouse.rbs
186
223
  - sig/lighthouse/controller.rbs