summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL/Type
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-05-14 09:17:14 +0200
committerEugen Wissner <belka@caraus.de>2020-05-14 22:16:56 +0200
commita5c44f30facdaabd94ed25953a3bd88005efa868 (patch)
treebf768b92b5b3ecab5c939d04bf4ec6ebdb7e5257 /src/Language/GraphQL/Type
parent4c19c88e98bea77ebccc786cd55b30e23ab6e897 (diff)
downloadgraphql-a5c44f30facdaabd94ed25953a3bd88005efa868.tar.gz
Add basic output object type support
Diffstat (limited to 'src/Language/GraphQL/Type')
-rw-r--r--src/Language/GraphQL/Type/Definition.hs18
-rw-r--r--src/Language/GraphQL/Type/Schema.hs11
2 files changed, 29 insertions, 0 deletions
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)
+ }