summaryrefslogtreecommitdiff
path: root/Data/GraphQL/AST/Core.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Data/GraphQL/AST/Core.hs')
-rw-r--r--Data/GraphQL/AST/Core.hs17
1 files changed, 12 insertions, 5 deletions
diff --git a/Data/GraphQL/AST/Core.hs b/Data/GraphQL/AST/Core.hs
index 2ca3928..f0c617c 100644
--- a/Data/GraphQL/AST/Core.hs
+++ b/Data/GraphQL/AST/Core.hs
@@ -3,29 +3,36 @@ module Data.GraphQL.AST.Core where
import Data.Int (Int32)
import Data.List.NonEmpty (NonEmpty)
+import Data.String
import Data.Text (Text)
-newtype Name = Name Text deriving (Eq,Show)
+type Name = Text
-newtype Document = Document (NonEmpty Operation) deriving (Eq,Show)
+type Document = NonEmpty Operation
-data Operation = Query (NonEmpty Field)
+data Operation = Query (NonEmpty Field)
| Mutation (NonEmpty Field)
deriving (Eq,Show)
-data Field = Field Name [Argument] [Field] deriving (Eq,Show)
+data Field = Field (Maybe Alias) Name [Argument] [Field] deriving (Eq,Show)
+
+type Alias = Name
data Argument = Argument Name Value deriving (Eq,Show)
data Value = ValueInt Int32
-- GraphQL Float is double precision
| ValueFloat Double
- | ValueBoolean Bool
| ValueString Text
+ | ValueBoolean Bool
+ | ValueNull
| ValueEnum Name
| ValueList [Value]
| ValueObject [ObjectField]
deriving (Eq,Show)
+instance IsString Value where
+ fromString = ValueString . fromString
+
data ObjectField = ObjectField Name Value deriving (Eq,Show)