From a5c44f30facdaabd94ed25953a3bd88005efa868 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 14 May 2020 09:17:14 +0200 Subject: Add basic output object type support --- src/Language/GraphQL/Type/Definition.hs | 18 ++++++++++++++++++ src/Language/GraphQL/Type/Schema.hs | 11 +++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/Language/GraphQL/Type/Definition.hs create mode 100644 src/Language/GraphQL/Type/Schema.hs (limited to 'src/Language/GraphQL/Type') diff --git a/src/Language/GraphQL/Type/Definition.hs b/src/Language/GraphQL/Type/Definition.hs new file mode 100644 index 0000000..016eeb8 --- /dev/null +++ b/src/Language/GraphQL/Type/Definition.hs @@ -0,0 +1,18 @@ +module Language.GraphQL.Type.Definition + ( ObjectType(..) + ) where + +import Data.HashMap.Strict (HashMap) +import Data.Text (Text) +import Language.GraphQL.Schema + +type Fields m = HashMap Text (FieldResolver m) + +-- | Object Type Definition. +-- +-- Almost all of the GraphQL types you define will be object types. Object +-- types have a name, but most importantly describe their fields. +data ObjectType m = ObjectType + { name :: Text + , fields :: Fields m + } diff --git a/src/Language/GraphQL/Type/Schema.hs b/src/Language/GraphQL/Type/Schema.hs new file mode 100644 index 0000000..f830c26 --- /dev/null +++ b/src/Language/GraphQL/Type/Schema.hs @@ -0,0 +1,11 @@ +module Language.GraphQL.Type.Schema + ( Schema(..) + ) where + +import Language.GraphQL.Type.Definition + +-- | Schema Definition +data Schema m = Schema + { query :: ObjectType m + , mutation :: Maybe (ObjectType m) + } -- cgit v1.2.3