diff options
| author | Eugen Wissner <belka@caraus.de> | 2020-06-07 06:16:45 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2020-06-07 06:16:45 +0200 |
| commit | 377c87045e468b9a34e7bee40129fcd03e519968 (patch) | |
| tree | 2489f6fdf413c0869a7143fa7677a7077bc133fc /src | |
| parent | 4c9264c12c15d52e40a245b21acaa70f76cc9ba4 (diff) | |
| download | graphql-377c87045e468b9a34e7bee40129fcd03e519968.tar.gz | |
Add description to the enum type values
Diffstat (limited to 'src')
| -rw-r--r-- | src/Language/GraphQL/AST/Core.hs | 1 | ||||
| -rw-r--r-- | src/Language/GraphQL/Execute/Coerce.hs | 5 | ||||
| -rw-r--r-- | src/Language/GraphQL/Execute/Execution.hs | 1 | ||||
| -rw-r--r-- | src/Language/GraphQL/Execute/Transform.hs | 1 | ||||
| -rw-r--r-- | src/Language/GraphQL/Trans.hs | 1 | ||||
| -rw-r--r-- | src/Language/GraphQL/Type/Definition.hs | 7 | ||||
| -rw-r--r-- | src/Language/GraphQL/Type/Directive.hs | 1 | ||||
| -rw-r--r-- | src/Language/GraphQL/Type/Out.hs | 2 |
8 files changed, 12 insertions, 7 deletions
diff --git a/src/Language/GraphQL/AST/Core.hs b/src/Language/GraphQL/AST/Core.hs index 59d43eb..0fe3e03 100644 --- a/src/Language/GraphQL/AST/Core.hs +++ b/src/Language/GraphQL/AST/Core.hs @@ -1,7 +1,6 @@ -- | This is the AST meant to be executed. module Language.GraphQL.AST.Core ( Arguments(..) - , Name ) where import Data.HashMap.Strict (HashMap) diff --git a/src/Language/GraphQL/Execute/Coerce.hs b/src/Language/GraphQL/Execute/Coerce.hs index ab4099c..b550bea 100644 --- a/src/Language/GraphQL/Execute/Coerce.hs +++ b/src/Language/GraphQL/Execute/Coerce.hs @@ -14,9 +14,8 @@ import qualified Data.HashMap.Strict as HashMap import qualified Data.Text.Lazy as Text.Lazy import qualified Data.Text.Lazy.Builder as Text.Builder import qualified Data.Text.Lazy.Builder.Int as Text.Builder -import qualified Data.Set as Set import Data.Scientific (toBoundedInteger, toRealFloat) -import Language.GraphQL.AST.Core +import Language.GraphQL.AST (Name) import qualified Language.GraphQL.Type.In as In import Language.GraphQL.Type.Definition @@ -147,7 +146,7 @@ coerceInputLiteral (In.ScalarBaseType type') value coerceInputLiteral (In.EnumBaseType type') (Enum enumValue) | member enumValue type' = Just $ Enum enumValue where - member value (EnumType _ _ members) = Set.member value members + member value (EnumType _ _ members) = HashMap.member value members coerceInputLiteral (In.InputObjectBaseType type') (Object values) = let (In.InputObjectType _ _ inputFields) = type' in Object diff --git a/src/Language/GraphQL/Execute/Execution.hs b/src/Language/GraphQL/Execute/Execution.hs index 8a3f400..a46316f 100644 --- a/src/Language/GraphQL/Execute/Execution.hs +++ b/src/Language/GraphQL/Execute/Execution.hs @@ -19,6 +19,7 @@ import Data.Sequence (Seq(..)) import Data.Text (Text) import qualified Data.Text as Text import qualified Data.Sequence as Seq +import Language.GraphQL.AST (Name) import Language.GraphQL.AST.Core import Language.GraphQL.Error import Language.GraphQL.Execute.Coerce diff --git a/src/Language/GraphQL/Execute/Transform.hs b/src/Language/GraphQL/Execute/Transform.hs index 8364105..315136c 100644 --- a/src/Language/GraphQL/Execute/Transform.hs +++ b/src/Language/GraphQL/Execute/Transform.hs @@ -43,6 +43,7 @@ import Data.Sequence (Seq, (<|), (><)) import Data.Text (Text) import qualified Data.Text as Text import qualified Language.GraphQL.AST as Full +import Language.GraphQL.AST (Name) import Language.GraphQL.AST.Core import Language.GraphQL.Execute.Coerce import Language.GraphQL.Type.Directive (Directive(..)) diff --git a/src/Language/GraphQL/Trans.hs b/src/Language/GraphQL/Trans.hs index 7dc5523..fa7718a 100644 --- a/src/Language/GraphQL/Trans.hs +++ b/src/Language/GraphQL/Trans.hs @@ -14,6 +14,7 @@ import Control.Monad.Trans.Reader (ReaderT, asks) import qualified Data.HashMap.Strict as HashMap import Data.Maybe (fromMaybe) import Data.Text (Text) +import Language.GraphQL.AST (Name) import Language.GraphQL.AST.Core import Language.GraphQL.Type.Definition import Prelude hiding (lookup) diff --git a/src/Language/GraphQL/Type/Definition.hs b/src/Language/GraphQL/Type/Definition.hs index 0f92857..411a7b3 100644 --- a/src/Language/GraphQL/Type/Definition.hs +++ b/src/Language/GraphQL/Type/Definition.hs @@ -3,6 +3,7 @@ -- | Types that can be used as both input and output types. module Language.GraphQL.Type.Definition ( EnumType(..) + , EnumValue(..) , ScalarType(..) , Subs , Value(..) @@ -15,7 +16,6 @@ module Language.GraphQL.Type.Definition import Data.Int (Int32) import Data.HashMap.Strict (HashMap) -import Data.Set (Set) import Data.String (IsString(..)) import Data.Text (Text) import Language.GraphQL.AST.Document (Name) @@ -51,7 +51,10 @@ data ScalarType = ScalarType Name (Maybe Text) -- Some leaf values of requests and input values are Enums. GraphQL serializes -- Enum values as strings, however internally Enums can be represented by any -- kind of type, often integers. -data EnumType = EnumType Name (Maybe Text) (Set Text) +data EnumType = EnumType Name (Maybe Text) (HashMap Name EnumValue) + +-- | Enum value is a single member of an 'EnumType'. +newtype EnumValue = EnumValue (Maybe Text) -- | The @String@ scalar type represents textual data, represented as UTF-8 -- character sequences. The String type is most often used by GraphQL to diff --git a/src/Language/GraphQL/Type/Directive.hs b/src/Language/GraphQL/Type/Directive.hs index 261bf04..017132c 100644 --- a/src/Language/GraphQL/Type/Directive.hs +++ b/src/Language/GraphQL/Type/Directive.hs @@ -6,6 +6,7 @@ module Language.GraphQL.Type.Directive ) where import qualified Data.HashMap.Strict as HashMap +import Language.GraphQL.AST (Name) import Language.GraphQL.AST.Core import Language.GraphQL.Type.Definition diff --git a/src/Language/GraphQL/Type/Out.hs b/src/Language/GraphQL/Type/Out.hs index acd348c..9367d54 100644 --- a/src/Language/GraphQL/Type/Out.hs +++ b/src/Language/GraphQL/Type/Out.hs @@ -24,7 +24,7 @@ module Language.GraphQL.Type.Out import Data.HashMap.Strict (HashMap) import Data.Text (Text) -import Language.GraphQL.AST.Core +import Language.GraphQL.AST (Name) import Language.GraphQL.Trans import Language.GraphQL.Type.Definition import qualified Language.GraphQL.Type.In as In |
