0d23df3da2
Provide an internal function to add errors
...
The old function, addErrMsg, takes only a string with an error
description, but more information is required for the execution errors:
locations and path. addErrMsg should be deprecated after the switching
to the new addError.
2021-05-09 12:42:02 +02:00
5a5f265fe4
Validate non-nullable values inside lists
2021-05-06 22:23:16 +02:00
2220f0ca56
Remove unused OverloadedStrings pragmas
2021-04-14 07:09:21 +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
4d762d6356
Add location information to list values
2021-03-14 12:19:30 +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
d74e27e903
traverseMaybe OrderedMap
2021-02-15 09:04:16 +01:00
90d36f66b9
Combine value inserted into the OrderedMap
2021-02-14 14:46:06 +01:00
c1a1b47aea
Add OrderedMap prototype
2021-02-13 06:56:10 +01:00
1e8405a6d6
Document AST.Document.escape
2021-02-11 12:02:08 +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
ebf4f4d24e
Update stack snapshot to 17.x.
2021-02-02 07:15:30 +01:00
1c7554c328
Validate variable usage is allowed in objects
2021-01-22 09:26:22 +01:00
c018657e25
Fix the type in messages when validating variables
2021-01-04 08:24:50 +01:00
71a5964c27
Rename variablesInAllowedPositionRule's variables
...
Name variablesInAllowedPositionRule's variables more meaningful.
2020-12-27 11:47:29 +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
4a3b4cb16d
Fix singleFieldSubscriptionsRule fragment lookup
...
singleFieldSubscriptionsRule picks up a wrong fragment definition.
2020-11-06 08:33:51 +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
6daae8a521
Validate directives are in valid locations
2020-10-02 06:31:38 +02:00
56b63f1c3e
Validate input object field names
2020-09-30 05:14:52 +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