Commit Graph

359 Commits

Author SHA1 Message Date
belka 73585dde85 Add unreleased changelog entry 2022-01-07 08:45:34 +01:00
Dmitrii Skurikhin 1f7bd92d11 fix index position in error path 2022-01-07 08:31:47 +01:00
belka 16cbe3fc28 Release 1.0.2.0 v1.0.2.0 2021-12-26 05:14:36 +01:00
belka f20cd02048 Loose bounds for compatibility with major versions 2021-12-25 07:42:10 +01:00
belka 116aa1f6bb Put JSON support behind a flag 2021-12-24 13:35:18 +01:00
belka 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
belka 930b8f10b7 Eta reduce and update required hlint 2021-11-23 09:21:07 +01:00
belka 0047a13bc0 Move JSON tests to the upcoming extra package 2021-11-22 07:22:28 +01:00
belka a044fc40d3 Release 1.0.1.0 v1.0.1.0 2021-09-27 07:24:02 +02:00
belka e6dbf936af Test with GHC 9.0 2021-09-24 08:49:37 +02:00
belka fbfbb3e73f Remove raw-strings-qq 2021-09-23 08:23:38 +02:00
belka eedab9e742 Don't append a trailing newline in gql 2021-09-22 08:50:20 +02:00
belka a3f18932bd Add TH module with gql quasi quoter 2021-09-21 09:37:57 +02:00
belka 60d1167839 Test nullability on value completion 2021-09-17 10:01:14 +02:00
belka 7b00e8a0ab Deprecate unused functions from the old executor 2021-09-05 09:14:57 +02:00
belka 7444895a58 Remove unused (and not exposed) Execute.Internal 2021-09-04 07:27:51 +02:00
belka de4f69ab03 Add CHANGELOG entries for the new executor 2021-09-04 07:12:34 +02:00
belka b96d75f447 Replace the old executor 2021-09-03 22:47:49 +02:00
belka 7b4c7e2b8c Handle argument locations 2021-09-02 08:45:23 +02:00
belka 233a58094d Adjust value completion tests 2021-09-01 09:27:12 +02:00
belka c0d41a56ce Show the value and expected type in value completion errors 2021-08-31 17:30:04 +02:00
belka c7e586a125 Copy subscription code 2021-08-31 17:30:04 +02:00
belka f808d0664f Handle errors 2021-08-31 17:30:04 +02:00
belka 2dafb00a16 Use sequences of selections 2021-08-31 17:30:04 +02:00
belka 5505739e21 Collect fields 2021-08-31 17:30:04 +02:00
belka db721a3f53 Skip recursive fragments and marked fields 2021-08-31 17:30:04 +02:00
belka fef7c1ed98 Inline fragment spreads 2021-08-31 17:30:04 +02:00
belka 4f7e990bf9 Use directives from the Type module 2021-08-31 17:30:04 +02:00
belka 5e234ad4a9 Pass variables when generating the IR 2021-08-31 17:30:04 +02:00
belka 9babf64cf6 Stub selection execution 2021-08-31 17:30:04 +02:00
belka 5751870d2a Rewrite the executor tree 2021-08-31 17:30:04 +02:00
belka d7422e46ca Provide error information for variable definitions 2021-08-31 17:30:04 +02:00
belka f527b61a3d Stub request execution 2021-08-31 17:30:04 +02:00
belka 38ec439e9f Handle query errors on invalid operations 2021-08-31 17:30:04 +02:00
belka dd996570c2 Add new executor module 2021-08-31 17:30:04 +02:00
belka cc8f14f122 Provide a custom Show instance for output Value 2021-08-31 17:29:20 +02:00
belka dd6fdf69f6 Release 1.0.0.0 v1.0.0.0 2021-07-04 09:57:17 +02:00
belka b99bb72272 Report subscription error locations 2021-07-02 09:28:03 +02:00
belka b580d1a988 Attach the field location to resolver exceptions 2021-06-27 13:42:58 +02:00
belka c601ccb4ad Add dependency version ranges
Also remove stack.yaml since it isn't used anymore. and adding libraries
to the snapshots doesn't seem to be as easy as I hoped.
2021-06-26 07:35:18 +02:00
belka 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
belka 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
belka 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
belka 2ce2be5d91 Provide location information for interface errors 2021-06-17 08:15:27 +02:00
belka c311cb0070 Add constructor with additional schema types 2021-05-13 17:40:38 +02:00
belka 1b7cd85216 Add location information to the intermediate tree 2021-05-12 06:51:59 +02:00
belka f671645043 Remove unused QueryError.TransformationError 2021-05-11 07:11:47 +02:00
belka 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
belka 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
belka 5a5f265fe4 Validate non-nullable values inside lists 2021-05-06 22:23:16 +02:00