Key highlights:
- Major error handling support improvements;
- ASP.NET and Giraffe plug-and-play support;
- WebSocket support (implementing the
graphql-transport-ws
subprotocol) - .NET 6 and 7 support
Major changes
- Added
IGQLError
andIGQLErrorExtensions
interfaces. So that you can extend errors with extensions - Resolver now returns either Result<'T, IGQLError> or Result<'T, IGQLError list>
- FSharp.SystemTextJson is used by default
- Executor now accepts
ImmutableDictionary<string, JsonElement>
as variables list - Input objects are now deserialized into any record or class automatically and down the hierarchy. If an error happens it provides path to it within an input object
ValueOption
fields on input objects are now supported- Each error now has a
ErrorKind
SchemaConfig.ParseError
now provides a path of the error- ASP.NET Core DI integration added
- Options can be set using
GraphQLOptions<'Root>
- WebSocket support with
graphql-transport-ws
subprotocol (see the readme for usage)
Lots of appreciation to @valbers for extremely valuable contributions