From 4c0d226030015c98ce76ebb4815dc9162ad10b11 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 7 Dec 2019 09:46:00 +0100 Subject: [PATCH] Move Transform to Language.GraphQL.Execute Language.GraphQL.AST.Transform is an internal module. Even though it works with the AST, it is a part of the execution process, it translates the original parser tree into a simpler one, so the executor has less work to do. Language.GraphQL.AST should contain only the parser and be independent from other packages, so it can be used on its own. --- package.yaml | 2 +- src/Language/GraphQL/Execute.hs | 2 +- src/Language/GraphQL/{AST => Execute}/Transform.hs | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) rename src/Language/GraphQL/{AST => Execute}/Transform.hs (99%) diff --git a/package.yaml b/package.yaml index 222b64e..dff96d4 100644 --- a/package.yaml +++ b/package.yaml @@ -37,7 +37,7 @@ dependencies: library: source-dirs: src other-modules: - - Language.GraphQL.AST.Transform + - Language.GraphQL.Execute.Transform - Language.GraphQL.Execute.Directive tests: diff --git a/src/Language/GraphQL/Execute.hs b/src/Language/GraphQL/Execute.hs index 59e85bf..74f33f9 100644 --- a/src/Language/GraphQL/Execute.hs +++ b/src/Language/GraphQL/Execute.hs @@ -15,7 +15,7 @@ import Data.Text (Text) import qualified Data.Text as Text import qualified Language.GraphQL.AST as AST import qualified Language.GraphQL.AST.Core as AST.Core -import qualified Language.GraphQL.AST.Transform as Transform +import qualified Language.GraphQL.Execute.Transform as Transform import Language.GraphQL.Error import qualified Language.GraphQL.Schema as Schema diff --git a/src/Language/GraphQL/AST/Transform.hs b/src/Language/GraphQL/Execute/Transform.hs similarity index 99% rename from src/Language/GraphQL/AST/Transform.hs rename to src/Language/GraphQL/Execute/Transform.hs index fadf929..9bcb3b2 100644 --- a/src/Language/GraphQL/AST/Transform.hs +++ b/src/Language/GraphQL/Execute/Transform.hs @@ -4,7 +4,7 @@ -- | After the document is parsed, before getting executed the AST is -- transformed into a similar, simpler AST. This module is responsible for -- this transformation. -module Language.GraphQL.AST.Transform +module Language.GraphQL.Execute.Transform ( document ) where @@ -30,6 +30,9 @@ data Replacement = Replacement type TransformT a = StateT Replacement (ReaderT Schema.Subs Maybe) a +liftJust :: forall a. a -> TransformT a +liftJust = lift . lift . Just + -- | Rewrites the original syntax tree into an intermediate representation used -- for query execution. document :: Schema.Subs -> Full.Document -> Maybe Core.Document @@ -179,6 +182,3 @@ value (Full.Object o) = objectField :: Full.ObjectField -> TransformT (Core.Name, Core.Value) objectField (Full.ObjectField name value') = (name,) <$> value value' - -liftJust :: forall a. a -> TransformT a -liftJust = lift . lift . Just