summaryrefslogtreecommitdiff
path: root/Data
diff options
context:
space:
mode:
Diffstat (limited to 'Data')
-rw-r--r--Data/GraphQL.hs16
1 files changed, 16 insertions, 0 deletions
diff --git a/Data/GraphQL.hs b/Data/GraphQL.hs
new file mode 100644
index 0000000..d18ff2f
--- /dev/null
+++ b/Data/GraphQL.hs
@@ -0,0 +1,16 @@
+module Data.GraphQL where
+
+import Control.Applicative (Alternative, empty)
+
+import Data.Text (Text)
+
+import qualified Data.Aeson as Aeson
+import qualified Data.Attoparsec.Text as Attoparsec
+
+import Data.GraphQL.Execute
+import Data.GraphQL.Parser
+import Data.GraphQL.Schema
+
+graphql :: (Alternative m, Monad m) => Schema m -> Text -> m Aeson.Value
+graphql schema = either (const empty) (execute schema)
+ . Attoparsec.parseOnly document