{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Data.Morpheus
( interpreter,
debugInterpreter,
App,
deriveApp,
runApp,
withDebugger,
)
where
import Data.Morpheus.App
( App,
MapAPI,
runApp,
withDebugger,
)
import Data.Morpheus.Server.Deriving.App
( RootResolverConstraint,
deriveApp,
)
import Data.Morpheus.Types
( RootResolver (..),
)
import Relude
interpreter ::
(MapAPI a b, RootResolverConstraint m e query mut sub) =>
RootResolver m e query mut sub ->
a ->
m b
interpreter :: RootResolver m e query mut sub -> a -> m b
interpreter = App e m -> a -> m b
forall a b (m :: * -> *) e.
(MapAPI a b, Monad m) =>
App e m -> a -> m b
runApp (App e m -> a -> m b)
-> (RootResolver m e query mut sub -> App e m)
-> RootResolver m e query mut sub
-> a
-> m b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RootResolver m e query mut sub -> App e m
forall (m :: * -> *) event (query :: (* -> *) -> *)
(mut :: (* -> *) -> *) (sub :: (* -> *) -> *).
RootResolverConstraint m event query mut sub =>
RootResolver m event query mut sub -> App event m
deriveApp
debugInterpreter ::
(MapAPI a b, RootResolverConstraint m e query mut sub) =>
RootResolver m e query mut sub ->
a ->
m b
debugInterpreter :: RootResolver m e query mut sub -> a -> m b
debugInterpreter = App e m -> a -> m b
forall a b (m :: * -> *) e.
(MapAPI a b, Monad m) =>
App e m -> a -> m b
runApp (App e m -> a -> m b)
-> (RootResolver m e query mut sub -> App e m)
-> RootResolver m e query mut sub
-> a
-> m b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. App e m -> App e m
forall e (m :: * -> *). App e m -> App e m
withDebugger (App e m -> App e m)
-> (RootResolver m e query mut sub -> App e m)
-> RootResolver m e query mut sub
-> App e m
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RootResolver m e query mut sub -> App e m
forall (m :: * -> *) event (query :: (* -> *) -> *)
(mut :: (* -> *) -> *) (sub :: (* -> *) -> *).
RootResolverConstraint m event query mut sub =>
RootResolver m event query mut sub -> App event m
deriveApp