Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module provides a representation of a GraphQL
Schema in addition to
functions for defining and manipulating Schemas.
Synopsis
- data Resolver m
- type Schema m = NonEmpty (Resolver m)
- type Subs = Name -> Maybe Value
- object :: MonadIO m => Name -> ActionT m [Resolver m] -> Resolver m
- objectA :: MonadIO m => Name -> (Arguments -> ActionT m [Resolver m]) -> Resolver m
- scalar :: (MonadIO m, ToJSON a) => Name -> ActionT m a -> Resolver m
- scalarA :: (MonadIO m, ToJSON a) => Name -> (Arguments -> ActionT m a) -> Resolver m
- enum :: MonadIO m => Name -> ActionT m [Text] -> Resolver m
- enumA :: MonadIO m => Name -> (Arguments -> ActionT m [Text]) -> Resolver m
- resolve :: MonadIO m => [Resolver m] -> Fields -> CollectErrsT m Value
- wrappedEnum :: MonadIO m => Name -> ActionT m (Wrapping [Text]) -> Resolver m
- wrappedEnumA :: MonadIO m => Name -> (Arguments -> ActionT m (Wrapping [Text])) -> Resolver m
- wrappedObject :: MonadIO m => Name -> ActionT m (Wrapping [Resolver m]) -> Resolver m
- wrappedObjectA :: MonadIO m => Name -> (Arguments -> ActionT m (Wrapping [Resolver m])) -> Resolver m
- wrappedScalar :: (MonadIO m, ToJSON a) => Name -> ActionT m (Wrapping a) -> Resolver m
- wrappedScalarA :: (MonadIO m, ToJSON a) => Name -> (Arguments -> ActionT m (Wrapping a)) -> Resolver m
- data Field
- data Argument = Argument Name Value
- data Value
Documentation
type Schema m = NonEmpty (Resolver m) Source #
A GraphQL schema.
m
is usually expected to be an instance of MonadIO
.
scalar :: (MonadIO m, ToJSON a) => Name -> ActionT m a -> Resolver m Source #
A scalar represents a primitive value, like a string or an integer.
enum :: MonadIO m => Name -> ActionT m [Text] -> Resolver m Source #
Represents one of a finite set of possible values.
Used in place of a scalar
when the possible responses are easily enumerable.
wrappedEnum :: MonadIO m => Name -> ActionT m (Wrapping [Text]) -> Resolver m Source #
Like enum
but can be null or a list of enums.
wrappedEnumA :: MonadIO m => Name -> (Arguments -> ActionT m (Wrapping [Text])) -> Resolver m Source #
wrappedObject :: MonadIO m => Name -> ActionT m (Wrapping [Resolver m]) -> Resolver m Source #
Like object
but can be null or a list of objects.
wrappedObjectA :: MonadIO m => Name -> (Arguments -> ActionT m (Wrapping [Resolver m])) -> Resolver m Source #
wrappedScalar :: (MonadIO m, ToJSON a) => Name -> ActionT m (Wrapping a) -> Resolver m Source #
Like scalar
but can be null or a list of scalars.
wrappedScalarA :: (MonadIO m, ToJSON a) => Name -> (Arguments -> ActionT m (Wrapping a)) -> Resolver m Source #
AST Reexports
ValueInt Int32 | |
ValueFloat Double | |
ValueString Text | |
ValueBoolean Bool | |
ValueNull | |
ValueEnum Name | |
ValueList [Value] | |
ValueObject [ObjectField] |