Add operation type encoder

This commit is contained in:
2022-10-02 11:38:53 +02:00
parent 2321d1a1bc
commit bf2e4925b4
3 changed files with 16 additions and 1 deletions

View File

@ -11,6 +11,7 @@ module Language.GraphQL.AST.Encoder
, directive
, document
, minified
, operationType
, pretty
, type'
, value
@ -34,7 +35,7 @@ import qualified Language.GraphQL.AST.Document as Full
-- Use 'pretty' or 'minified' to construct the formatter.
data Formatter
= Minified
| Pretty Word
| Pretty !Word
-- | Constructs a formatter for pretty printing.
pretty :: Formatter
@ -294,6 +295,12 @@ nonNullType :: Full.NonNullType -> Lazy.Text
nonNullType (Full.NonNullTypeNamed x) = Lazy.Text.fromStrict x <> "!"
nonNullType (Full.NonNullTypeList x) = listType x <> "!"
-- | Produces lowercase operation type: query, mutation or subscription.
operationType :: Formatter -> Full.OperationType -> Lazy.Text
operationType _formatter Full.Query = "query"
operationType _formatter Full.Mutation = "mutation"
operationType _formatter Full.Subscription = "subscription"
-- * Internal
between :: Char -> Char -> Lazy.Text -> Lazy.Text