Eugen Wissner
2839b28590
Release 0.11.1.0
2021-02-07 08:10:46 +01:00
Eugen Wissner
ed725ea514
Split validation rule tests in contexts
2021-02-06 12:54:27 +01:00
Eugen Wissner
b27da54bf4
Provide custom Show instances for AST values
2021-02-04 08:12:12 +01:00
Eugen Wissner
a034f2ce4d
Validate values
2021-02-03 05:47:40 +01:00
Eugen Wissner
22abf7ca58
Validate variable usages are allowed in arguments
2020-12-26 06:31:56 +01:00
Eugen Wissner
5a6709030c
Add show instances for AST type representation
2020-12-17 20:42:47 +01:00
Eugen Wissner
2bcae9e0a7
Implement Show class for GraphQL type definitions
...
.. in the `Type` modules.
2020-12-14 22:36:27 +01:00
Eugen Wissner
2dbc985dfc
Validate fragment spreads are possible
2020-11-19 08:48:37 +01:00
Eugen Wissner
86a0e00f7e
Collect interface implementations
2020-11-17 08:10:32 +01:00
Eugen Wissner
1f4eb6fb9b
Implement basic "Field Selection Merging" rule
2020-11-15 10:11:09 +01:00
Eugen Wissner
f5209481aa
Extract collectFields function
2020-11-11 08:49:45 +01:00
Eugen Wissner
445f33dcf3
Release 0.11.0.0
2020-11-07 09:05:47 +01:00
Eugen Wissner
7c0b0ace4d
Collect types once the schema is created
2020-10-07 05:24:51 +02:00
Eugen Wissner
a91bc7f2d2
Validate required input fields
2020-10-05 14:51:21 +02:00
Eugen Wissner
d5f518fe82
Validate required arguments
2020-10-03 07:34:34 +02:00
Eugen Wissner
466416d4b0
Validate directives are defined
2020-09-29 06:21:32 +02:00
Eugen Wissner
4602eb1df3
Validate arguments are defined
2020-09-28 07:06:15 +02:00
Eugen Wissner
ced9b815db
Validate leaf selections
2020-09-26 09:06:30 +02:00
Eugen Wissner
3373c94895
Validate field selections on composite types
2020-09-26 07:57:25 +02:00
Eugen Wissner
9bfa2aa7e8
Validate input fields have unique names
2020-09-24 05:47:31 +02:00
Eugen Wissner
e9a94147fb
Validate variables are used
2020-09-22 04:42:25 +02:00
Eugen Wissner
3e393004ae
Validate all variables are defined
2020-09-21 07:28:40 +02:00
Eugen Wissner
38c3097bcf
Validate fragments are input types
2020-09-20 06:59:27 +02:00
Eugen Wissner
21a7d9cce4
Validate variable names are unique
2020-09-19 18:18:26 +02:00
Eugen Wissner
9a08aa5de7
Validate directives are unique per location
2020-09-18 07:32:58 +02:00
Eugen Wissner
497b93c41b
Validate arguments have unique names
2020-09-17 10:33:37 +02:00
Eugen Wissner
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
Eugen Wissner
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
Eugen Wissner
08998dbd93
Validate fragments don't form cycles
2020-09-11 08:03:49 +02:00
Eugen Wissner
c2c57b6363
Validate all fragments are used
2020-09-09 17:04:31 +02:00
Eugen Wissner
f6ff0ab9c7
Validate fragments on composite types
2020-09-07 22:01:49 +02:00
Eugen Wissner
d327d9d1ce
Validate fragment spread type existence
2020-09-05 10:00:58 +02:00
Eugen Wissner
14ed209828
Collect types from the subscription root
2020-09-04 19:12:19 +02:00
Eugen Wissner
33318a3b01
Validate fragment spread target existence
2020-08-31 11:06:27 +02:00
Eugen Wissner
4b59da2fcb
Release 0.10.0.0
2020-08-29 12:12:04 +02:00
Eugen Wissner
7e78f98f09
Validate fragment name uniqueness
2020-08-28 08:32:21 +02:00
Eugen Wissner
7355533268
Validate single root field in subscriptions
2020-08-25 21:03:42 +02:00
Eugen Wissner
54dbf1df16
Remove encoder test based on old external files
2020-08-22 06:39:52 +02:00
Eugen Wissner
1a788a6261
Loose monad condition on test methods
2020-08-20 20:53:47 +02:00
Eugen Wissner
c60dd98fc5
Release 0.9.0.0
2020-07-24 21:58:49 +02:00
Eugen Wissner
b9d5b1fb1b
Return a stream as well from graphql* functions
2020-07-19 07:36:06 +02:00
Eugen Wissner
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
Eugen Wissner
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
Eugen Wissner
840e129c44
Parse subscriptions
2020-07-11 06:34:10 +02:00
Eugen Wissner
04a58be3f8
Label parsers with help info
...
Fixes #36 .
2020-07-10 08:43:47 +02:00
Eugen Wissner
28781586a5
Parse comments in the front of definitions
2020-07-09 08:11:12 +02:00
Eugen Wissner
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
Eugen Wissner
b2d473de8d
Export sum type for all GraphQL types
2020-07-06 19:10:34 +02:00
Eugen Wissner
a6f9cec413
Handle errors using custom types
...
Fixes #32 .
2020-07-05 14:36:00 +02:00
Eugen Wissner
2f4310268a
Merge Trans and Type.Out modules
2020-07-02 07:33:03 +02:00