dd6fdf69f6
Release 1.0.0.0
2021-07-04 09:57:17 +02:00
b99bb72272
Report subscription error locations
2021-07-02 09:28:03 +02:00
6fe9eb72e4
Fix merging fields with arguments
...
executeField shouldn't assume that a selection has only one field with a
given name, but it should take the first field. The underlying cause is
a wrong pattern, which (because of the laziness) is executed only if the
field has arguments.
2021-06-18 06:51:14 +02:00
c311cb0070
Add constructor with additional schema types
2021-05-13 17:40:38 +02:00
1af95345d2
Deprecate internal error generation functions
...
The functions generating errors in the executor should be changed anyway
when we provide better error messages from the executor, with the error
location and response path. So public definitions of these functions are
deprecated now and they are replaced by more generic functions in the
executor code.
2021-05-10 09:43:39 +02:00
5a5f265fe4
Validate non-nullable values inside lists
2021-05-06 22:23:16 +02:00
5654b78935
Traverse input object properties once
2021-04-12 07:09:39 +02:00
328e6acdee
Emit list item errors once
2021-03-16 10:08:13 +01:00
Ben Sinclair
ca0f0bd32d
Fix some issues with directive definitions
...
I found some issues with directive definitions:
- I couldn't use `on FIELD_DEFINITION`, I believe because `FIELD` was parsed
first in `executableDirectiveLocation`. I've combined both
`executableDirectiveLocation` and `typetypeSystemDirectiveLocation` into one
function which can reorder them to ensure every directive location gets a fair
chance at parsing.
Not actually to do with directives, some literals weren't being parsed
correctly.
- The GraphQL spec defines list to be `[]` or `[Value]`, but empty literal lists
weren't being parsed correctly because of using `some` instead of `many`.
- The GraphQL spec defines objects to be `{}` or `{Name: Value}`, but empty
literal objects had the same issue.
2021-02-21 23:35:34 +11:00
10e4d64052
Replace Map with OrderedMap
2021-02-19 08:09:04 +01:00
1e8405a6d6
Document AST.Document.escape
2021-02-11 12:02:08 +01:00
2839b28590
Release 0.11.1.0
2021-02-07 08:10:46 +01:00
ed725ea514
Split validation rule tests in contexts
2021-02-06 12:54:27 +01:00
b27da54bf4
Provide custom Show instances for AST values
2021-02-04 08:12:12 +01:00
a034f2ce4d
Validate values
2021-02-03 05:47:40 +01:00
22abf7ca58
Validate variable usages are allowed in arguments
2020-12-26 06:31:56 +01:00
5a6709030c
Add show instances for AST type representation
2020-12-17 20:42:47 +01:00
2bcae9e0a7
Implement Show class for GraphQL type definitions
...
.. in the `Type` modules.
2020-12-14 22:36:27 +01:00
2dbc985dfc
Validate fragment spreads are possible
2020-11-19 08:48:37 +01:00
86a0e00f7e
Collect interface implementations
2020-11-17 08:10:32 +01:00
1f4eb6fb9b
Implement basic "Field Selection Merging" rule
2020-11-15 10:11:09 +01:00
f5209481aa
Extract collectFields function
2020-11-11 08:49:45 +01:00
445f33dcf3
Release 0.11.0.0
2020-11-07 09:05:47 +01:00
7c0b0ace4d
Collect types once the schema is created
2020-10-07 05:24:51 +02:00
a91bc7f2d2
Validate required input fields
2020-10-05 14:51:21 +02:00
d5f518fe82
Validate required arguments
2020-10-03 07:34:34 +02:00
466416d4b0
Validate directives are defined
2020-09-29 06:21:32 +02:00
4602eb1df3
Validate arguments are defined
2020-09-28 07:06:15 +02:00
ced9b815db
Validate leaf selections
2020-09-26 09:06:30 +02:00
3373c94895
Validate field selections on composite types
2020-09-26 07:57:25 +02:00
9bfa2aa7e8
Validate input fields have unique names
2020-09-24 05:47:31 +02:00
e9a94147fb
Validate variables are used
2020-09-22 04:42:25 +02:00
3e393004ae
Validate all variables are defined
2020-09-21 07:28:40 +02:00
38c3097bcf
Validate fragments are input types
2020-09-20 06:59:27 +02:00
21a7d9cce4
Validate variable names are unique
2020-09-19 18:18:26 +02:00
9a08aa5de7
Validate directives are unique per location
2020-09-18 07:32:58 +02:00
497b93c41b
Validate arguments have unique names
2020-09-17 10:33:37 +02:00
6e644c5b4b
Move path to the execution error
...
Since it isn't possible to get a path during validation, without
executing the query.
2020-09-16 09:12:49 +02:00
4c10ce9204
Use Seq as base monad in the validator
...
It is more natural to implement the logic: try to apply each rule to
each node.
2020-09-15 08:06:07 +02:00
08998dbd93
Validate fragments don't form cycles
2020-09-11 08:03:49 +02:00
c2c57b6363
Validate all fragments are used
2020-09-09 17:04:31 +02:00
f6ff0ab9c7
Validate fragments on composite types
2020-09-07 22:01:49 +02:00
d327d9d1ce
Validate fragment spread type existence
2020-09-05 10:00:58 +02:00
14ed209828
Collect types from the subscription root
2020-09-04 19:12:19 +02:00
33318a3b01
Validate fragment spread target existence
2020-08-31 11:06:27 +02:00
4b59da2fcb
Release 0.10.0.0
2020-08-29 12:12:04 +02:00
7e78f98f09
Validate fragment name uniqueness
2020-08-28 08:32:21 +02:00
7355533268
Validate single root field in subscriptions
2020-08-25 21:03:42 +02:00
54dbf1df16
Remove encoder test based on old external files
2020-08-22 06:39:52 +02:00
1a788a6261
Loose monad condition on test methods
2020-08-20 20:53:47 +02:00