Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Event e c = Event {}
- type family UnSubResolver (a :: * -> *) :: * -> *
- data Resolver (o :: OperationType) event (m :: * -> *) value
- class MapStrategy (from :: OperationType) (to :: OperationType) where
- class LiftOperation (o :: OperationType)
- runRootResModel :: Monad m => RootResModel e m -> Context -> ResponseStream e m (Value VALID)
- toResolver :: forall o e m a b. (LiftOperation o, Monad m) => (Arguments VALID -> Eventless a) -> (a -> Resolver o e m b) -> Resolver o e m b
- lift :: (MonadTrans t, Monad m) => m a -> t m a
- type SubEvent event m = Event (Channel event) (event -> m GQLResponse)
- type Eventless = Result ()
- class Applicative f => Failure error (f :: * -> *) where
- failure :: error -> f v
- class GQLChannel a where
- type StreamChannel a :: *
- streamChannels :: a -> [Channel a]
- data ResponseEvent event (m :: * -> *)
- type ResponseStream event (m :: * -> *) = ResultT (ResponseEvent event m) m
- cleanEvents :: Functor m => ResultT e m a -> ResultT e' m a
- data Result events a
- newtype ResultT event (m :: * -> *) a = ResultT {
- runResultT :: m (Result event a)
- unpackEvents :: Result event a -> [event]
- type LibUpdater lib = lib -> Eventless lib
- resolveUpdates :: Monad m => lib -> [lib -> m lib] -> m lib
- setTypeName :: Monad m => TypeName -> Resolver o e m a -> Resolver o e m a
- data ObjectResModel o e m = ObjectResModel {
- __typename :: TypeName
- objectFields :: [FieldResModel o e m]
- data ResModel (o :: OperationType) e (m :: * -> *)
- type FieldResModel o e m = (FieldName, Resolver o e m (ResModel o e m))
- type WithOperation (o :: OperationType) = LiftOperation o
- class PushEvents e m where
- pushEvents :: [e] -> m ()
- subscribe :: forall e m a. (PushEvents (Channel e) (ResolverState (Channel e) m), Monad m) => [StreamChannel e] -> Resolver QUERY e m (e -> Resolver QUERY e m a) -> Resolver SUBSCRIPTION e m a
- data Context = Context {}
- unsafeInternalContext :: (Monad m, LiftOperation o) => Resolver o e m Context
- data RootResModel e m = RootResModel {}
- unsafeBind :: forall o e m a b. Monad m => Resolver o e m a -> (a -> Resolver o e m b) -> Resolver o e m b
- liftStateless :: (LiftOperation o, Monad m) => Eventless a -> Resolver o e m a
- resultOr :: (GQLErrors -> a') -> (a -> a') -> Result e a -> a'
- withArguments :: forall o e m a. (LiftOperation o, Monad m) => (Arguments VALID -> Resolver o e m a) -> Resolver o e m a
- mkBoolean :: Bool -> ResModel o e m
- mkFloat :: Float -> ResModel o e m
- mkInt :: Int -> ResModel o e m
- mkEnum :: TypeName -> TypeName -> ResModel o e m
- mkList :: [ResModel o e m] -> ResModel o e m
- mkUnion :: TypeName -> Resolver o e m (ResModel o e m) -> ResModel o e m
- mkObject :: TypeName -> [(FieldName, Resolver o e m (ResModel o e m))] -> ResModel o e m
- mkNull :: ResModel o e m
- mkString :: Token -> ResModel o e m
Documentation
Instances
GQLChannel (Event channel content) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core type StreamChannel (Event channel content) :: Type Source # streamChannels :: Event channel content -> [Channel (Event channel content)] Source # | |
type StreamChannel (Event channel content) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core |
type family UnSubResolver (a :: * -> *) :: * -> * Source #
Instances
type UnSubResolver (Resolver SUBSCRIPTION e m) Source # | |
data Resolver (o :: OperationType) event (m :: * -> *) value Source #
Instances
class MapStrategy (from :: OperationType) (to :: OperationType) where Source #
mapStrategy :: Monad m => Resolver from e m (ResModel from e m) -> Resolver to e m (ResModel to e m) Source #
Instances
MapStrategy o o Source # | |
MapStrategy QUERY SUBSCRIPTION Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Resolver mapStrategy :: Monad m => Resolver QUERY e m (ResModel QUERY e m) -> Resolver SUBSCRIPTION e m (ResModel SUBSCRIPTION e m) Source # |
class LiftOperation (o :: OperationType) Source #
packResolver, withResolver
Instances
LiftOperation SUBSCRIPTION Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Resolver packResolver :: Monad m => ResolverState e m a -> Resolver SUBSCRIPTION e m a withResolver :: Monad m => ResolverState e m a -> (a -> Resolver SUBSCRIPTION e m b) -> Resolver SUBSCRIPTION e m b | |
LiftOperation MUTATION Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Resolver packResolver :: Monad m => ResolverState e m a -> Resolver MUTATION e m a withResolver :: Monad m => ResolverState e m a -> (a -> Resolver MUTATION e m b) -> Resolver MUTATION e m b | |
LiftOperation QUERY Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Resolver packResolver :: Monad m => ResolverState e m a -> Resolver QUERY e m a withResolver :: Monad m => ResolverState e m a -> (a -> Resolver QUERY e m b) -> Resolver QUERY e m b |
runRootResModel :: Monad m => RootResModel e m -> Context -> ResponseStream e m (Value VALID) Source #
toResolver :: forall o e m a b. (LiftOperation o, Monad m) => (Arguments VALID -> Eventless a) -> (a -> Resolver o e m b) -> Resolver o e m b Source #
lift :: (MonadTrans t, Monad m) => m a -> t m a #
Lift a computation from the argument monad to the constructed monad.
type SubEvent event m = Event (Channel event) (event -> m GQLResponse) Source #
class Applicative f => Failure error (f :: * -> *) where Source #
Instances
Failure error (Either error) Source # | |
Defined in Data.Morpheus.Internal.Utils | |
Failure Message (Result e) Source # | |
Monad m => Failure GQLErrors (ResultT event m) Source # | |
Applicative m => Failure Message (ResultT event m) Source # | |
(LiftOperation o, Monad m) => Failure GQLErrors (Resolver o e m) Source # | |
(LiftOperation o, Monad m) => Failure Message (Resolver o e m) Source # | |
Failure [GQLError] (Result ev) Source # | |
(Stream s, Ord e, Failure [a] m) => Failure [a] (ParsecT e s m) Source # | |
Defined in Data.Morpheus.Internal.Utils |
class GQLChannel a where Source #
type StreamChannel a :: * Source #
streamChannels :: a -> [Channel a] Source #
Instances
GQLChannel () Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core type StreamChannel () :: Type Source # streamChannels :: () -> [Channel ()] Source # | |
GQLChannel (Event channel content) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core type StreamChannel (Event channel content) :: Type Source # streamChannels :: Event channel content -> [Channel (Event channel content)] Source # |
type ResponseStream event (m :: * -> *) = ResultT (ResponseEvent event m) m Source #
Instances
Failure Message (Result e) Source # | |
PushEvents events (Result events) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core pushEvents :: [events] -> Result events () Source # | |
Monad (Result e) Source # | |
Functor (Result events) Source # | |
Applicative (Result e) Source # | |
Failure [GQLError] (Result ev) Source # | |
newtype ResultT event (m :: * -> *) a Source #
ResultT | |
|
Instances
Monad m => Failure GQLErrors (ResultT event m) Source # | |
Applicative m => Failure Message (ResultT event m) Source # | |
Applicative m => PushEvents event (ResultT event m) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core pushEvents :: [event] -> ResultT event m () Source # | |
MonadTrans (ResultT event) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core | |
Monad m => Monad (ResultT event m) Source # | |
Functor m => Functor (ResultT event m) Source # | |
Applicative m => Applicative (ResultT event m) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core pure :: a -> ResultT event m a # (<*>) :: ResultT event m (a -> b) -> ResultT event m a -> ResultT event m b # liftA2 :: (a -> b -> c) -> ResultT event m a -> ResultT event m b -> ResultT event m c # (*>) :: ResultT event m a -> ResultT event m b -> ResultT event m b # (<*) :: ResultT event m a -> ResultT event m b -> ResultT event m a # |
unpackEvents :: Result event a -> [event] Source #
type LibUpdater lib = lib -> Eventless lib Source #
resolveUpdates :: Monad m => lib -> [lib -> m lib] -> m lib Source #
data ObjectResModel o e m Source #
ObjectResModel | |
|
Instances
Show (ObjectResModel o e m) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Resolver showsPrec :: Int -> ObjectResModel o e m -> ShowS # show :: ObjectResModel o e m -> String # showList :: [ObjectResModel o e m] -> ShowS # | |
Merge (ObjectResModel o e m) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Resolver merge :: (Monad m0, Failure GQLErrors m0) => [Ref] -> ObjectResModel o e m -> ObjectResModel o e m -> m0 (ObjectResModel o e m) Source # |
data ResModel (o :: OperationType) e (m :: * -> *) Source #
ResNull | |
ResScalar ScalarValue | |
ResEnum TypeName TypeName | |
ResList [ResModel o e m] | |
ResObject (ObjectResModel o e m) | |
ResUnion TypeName (Resolver o e m (ResModel o e m)) |
type WithOperation (o :: OperationType) = LiftOperation o Source #
class PushEvents e m where Source #
pushEvents :: [e] -> m () Source #
Instances
PushEvents events (Result events) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core pushEvents :: [events] -> Result events () Source # | |
Applicative m => PushEvents event (ResultT event m) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Core pushEvents :: [event] -> ResultT event m () Source # | |
Monad m => PushEvents e (Resolver MUTATION e m) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolving.Resolver pushEvents :: [e] -> Resolver MUTATION e m () Source # |
subscribe :: forall e m a. (PushEvents (Channel e) (ResolverState (Channel e) m), Monad m) => [StreamChannel e] -> Resolver QUERY e m (e -> Resolver QUERY e m a) -> Resolver SUBSCRIPTION e m a Source #
unsafeInternalContext :: (Monad m, LiftOperation o) => Resolver o e m Context Source #
A function to return the internal Context
within a resolver's monad.
Using the Context
itself is unsafe because it expposes internal structures
of the AST, but you can use the Data.Morpheus.Types.SelectionTree typeclass to manipulate
the internal AST with a safe interface.
data RootResModel e m Source #
unsafeBind :: forall o e m a b. Monad m => Resolver o e m a -> (a -> Resolver o e m b) -> Resolver o e m b Source #
liftStateless :: (LiftOperation o, Monad m) => Eventless a -> Resolver o e m a Source #
withArguments :: forall o e m a. (LiftOperation o, Monad m) => (Arguments VALID -> Resolver o e m a) -> Resolver o e m a Source #