{-# LANGUAGE NamedFieldPuns #-}
module Data.Morpheus.Types.Internal.Resolving
( Event (..),
UnSubResolver,
Resolver,
MapStrategy (..),
LiftOperation,
runRootResModel,
toResolver,
lift,
SubEvent,
Eventless,
Failure (..),
GQLChannel (..),
ResponseEvent (..),
ResponseStream,
cleanEvents,
Result (..),
ResultT (..),
unpackEvents,
LibUpdater,
resolveUpdates,
setTypeName,
ObjectResModel (..),
ResModel (..),
FieldResModel,
WithOperation,
PushEvents (..),
subscribe,
Context (..),
unsafeInternalContext,
RootResModel (..),
unsafeBind,
liftStateless,
resultOr,
withArguments,
mkBoolean,
mkFloat,
mkInt,
mkEnum,
mkList,
mkUnion,
mkObject,
mkNull,
mkString,
)
where
import Data.Morpheus.Types.Internal.AST
( FieldName,
ScalarValue (..),
Token,
TypeName,
)
import Data.Morpheus.Types.Internal.Resolving.Core
import Data.Morpheus.Types.Internal.Resolving.Resolver
mkString :: Token -> ResModel o e m
mkString = ResScalar . String
mkFloat :: Float -> ResModel o e m
mkFloat = ResScalar . Float
mkInt :: Int -> ResModel o e m
mkInt = ResScalar . Int
mkBoolean :: Bool -> ResModel o e m
mkBoolean = ResScalar . Boolean
mkEnum :: TypeName -> TypeName -> ResModel o e m
mkEnum = ResEnum
mkList :: [ResModel o e m] -> ResModel o e m
mkList = ResList
mkUnion :: TypeName -> Resolver o e m (ResModel o e m) -> ResModel o e m
mkUnion = ResUnion
mkNull :: ResModel o e m
mkNull = ResNull
mkObject ::
TypeName ->
[(FieldName, Resolver o e m (ResModel o e m))] ->
ResModel o e m
mkObject __typename objectFields =
ResObject
( ObjectResModel
{ __typename,
objectFields
}
)