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
c60dd98fc5
Release 0.9.0.0
2020-07-24 21:58:49 +02:00
b9d5b1fb1b
Return a stream as well from graphql* functions
2020-07-19 07:36:06 +02:00
09135c581a
Constrain base monad to MonadCatch
...
Let's try MonadThrow/MonadCatch. It looks nice at a first glance. The
monad transformer stack contains only the ReaderT, less lifts are
required. Exception subtyping is easier, the user can (and should)
define custom error types and throw them. And it is still possible to
use pure error handling, if someone doesn't like runtime exceptions or
need to run a query in a pure environment.
Fixes #42 .
2020-07-17 07:05:03 +02:00
ae2210f659
Support subscriptions
...
This is experimental support.
The implementation is based on conduit and is boring. There is a new
resolver data constructor that should create a source event stream. The
executor receives the events, pipes them through the normal execution
and puts them into the response stream which is returned to the user.
- Tests are missing.
- The executor should check field value resolver on subscription types.
- The graphql function should probably return (Either
ResponseEventStream Response), but I'm not sure about this. It will
make the usage more complicated if no subscriptions are involved, but
with the current API implementing subscriptions is more
difficult than it should be.
2020-07-14 19:37:56 +02:00
840e129c44
Parse subscriptions
2020-07-11 06:34:10 +02:00
04a58be3f8
Label parsers with help info
...
Fixes #36 .
2020-07-10 08:43:47 +02:00
28781586a5
Parse comments in the front of definitions
2020-07-09 08:11:12 +02:00
c9e265f72c
Return parser error location in a list
...
An error can have multiple locations which are returned in a listt with
key "locations".
2020-07-08 08:17:55 +02:00
b2d473de8d
Export sum type for all GraphQL types
2020-07-06 19:10:34 +02:00
a6f9cec413
Handle errors using custom types
...
Fixes #32 .
2020-07-05 14:36:00 +02:00
2f4310268a
Merge Trans and Type.Out modules
2020-07-02 07:33:03 +02:00
8b164c4844
Move Core module out of AST
2020-06-30 10:28:10 +02:00
705e506c13
Combine Resolver and ActionT in ResolverT
2020-06-29 13:14:23 +02:00
175268b422
Add a github actions workflow
2020-06-24 10:12:22 +02:00