Commit Graph

210 Commits

Author SHA1 Message Date
a96d4e6ef3
Add Semigroup and Monoid instances for Description 2022-12-27 10:38:08 +01:00
3ce6e7da46
Encode schema definitions 2022-12-25 16:38:00 +01:00
a5cf0a32e8
Replace ">> pure ()" with void 2022-12-24 18:59:40 +01:00
2f9881bb21
Fix GHC 9.2 warnings and deprecations
- Fix GHC 9.2 warnings
- Convert comments to proper deprecations
2022-12-24 18:09:52 +01:00
bf2e4925b4
Add operation type encoder 2022-10-02 11:38:53 +02:00
2f19093803
Change execute' to shouldResolveTo helper method 2022-07-01 12:18:02 +02:00
0dac9701bc
Document usage of the json flag 2022-06-30 11:10:46 +02:00
0d25f482dd
Remove deprecated Error functions 2022-03-31 21:49:44 +02:00
Dmitrii Skurikhin
8503c0f288 enhance query errors 2022-02-16 08:58:16 +01:00
647547206f
Add back graphql function, but jsonless 2022-01-20 11:43:21 +01:00
Dmitrii Skurikhin
0c8edae90a fix empty list argument parsing 2022-01-09 09:00:56 +01:00
Dmitrii Skurikhin
1f7bd92d11 fix index position in error path 2022-01-07 08:31:47 +01:00
116aa1f6bb
Put JSON support behind a flag 2021-12-24 13:35:18 +01:00
df078a59d0
Add Serialize and VariableValue value instances
- `Serialize` instance for `Type.Definition.Value`.
- `VariableValue` instance for `Type.Definition.Value`.

It makes it possible to use the library without an additional
serialization format like JSON.
2021-12-22 08:56:01 +01:00
930b8f10b7
Eta reduce and update required hlint 2021-11-23 09:21:07 +01:00
eedab9e742
Don't append a trailing newline in gql 2021-09-22 08:50:20 +02:00
a3f18932bd
Add TH module with gql quasi quoter 2021-09-21 09:37:57 +02:00
7b00e8a0ab
Deprecate unused functions from the old executor 2021-09-05 09:14:57 +02:00
7444895a58
Remove unused (and not exposed) Execute.Internal 2021-09-04 07:27:51 +02:00
de4f69ab03
Add CHANGELOG entries for the new executor 2021-09-04 07:12:34 +02:00
b96d75f447
Replace the old executor 2021-09-03 22:47:49 +02:00
7b4c7e2b8c
Handle argument locations 2021-09-02 08:45:23 +02:00
233a58094d
Adjust value completion tests 2021-09-01 09:27:12 +02:00
c0d41a56ce Show the value and expected type in value completion errors 2021-08-31 17:30:04 +02:00
c7e586a125 Copy subscription code 2021-08-31 17:30:04 +02:00
f808d0664f Handle errors 2021-08-31 17:30:04 +02:00
2dafb00a16 Use sequences of selections 2021-08-31 17:30:04 +02:00
5505739e21 Collect fields 2021-08-31 17:30:04 +02:00
db721a3f53 Skip recursive fragments and marked fields 2021-08-31 17:30:04 +02:00
fef7c1ed98 Inline fragment spreads 2021-08-31 17:30:04 +02:00
4f7e990bf9 Use directives from the Type module 2021-08-31 17:30:04 +02:00
5e234ad4a9 Pass variables when generating the IR 2021-08-31 17:30:04 +02:00
9babf64cf6 Stub selection execution 2021-08-31 17:30:04 +02:00
5751870d2a Rewrite the executor tree 2021-08-31 17:30:04 +02:00
d7422e46ca Provide error information for variable definitions 2021-08-31 17:30:04 +02:00
f527b61a3d Stub request execution 2021-08-31 17:30:04 +02:00
38ec439e9f Handle query errors on invalid operations 2021-08-31 17:30:04 +02:00
dd996570c2 Add new executor module 2021-08-31 17:30:04 +02:00
cc8f14f122
Provide a custom Show instance for output Value 2021-08-31 17:29:20 +02:00
b99bb72272
Report subscription error locations 2021-07-02 09:28:03 +02:00
b580d1a988
Attach the field location to resolver exceptions 2021-06-27 13:42:58 +02:00
96bb061666
Fail with a location for result coercion
The intermediate representation was further modified so that the
operation definitions contain location information. Probably I should
introduce a data type that generalizes fields and operations, so it
contains object type, location and the selection set, so the functions
don't accept so many arguments.
2021-06-24 09:29:24 +02:00
812f6967d4
Provide locations for argument errors
The executor still doesn't give an error per argument, but a single
error per field with locations for all arguments.
If a non-null argument isn't specified, only the error location of the
field is given. If some arguments cannot be coerced, only the locations
of these arguments are given, non-null arguments are ignored. This
should still be improved, so the executor returns all errors at once.
The transformation tree is changed, so that argument map contains
locations of the arguments (but not the locations of the argument values
yet).
2021-06-22 09:13:27 +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
2ce2be5d91
Provide location information for interface errors 2021-06-17 08:15:27 +02:00
c311cb0070
Add constructor with additional schema types 2021-05-13 17:40:38 +02:00
1b7cd85216
Add location information to the intermediate tree 2021-05-12 06:51:59 +02:00
f671645043
Remove unused QueryError.TransformationError 2021-05-11 07:11:47 +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
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