| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.GraphQL.Schema
Contents
Description
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
Constructors
| ValueInt Int32 | |
| ValueFloat Double | |
| ValueString Text | |
| ValueBoolean Bool | |
| ValueNull | |
| ValueEnum Name | |
| ValueList [Value] | |
| ValueObject [ObjectField] |