Add operation type encoder
This commit is contained in:
parent
2321d1a1bc
commit
bf2e4925b4
@ -16,6 +16,9 @@ and this project adheres to
|
||||
- `Language.GraphQL`: Added information about the *json* flag and switching to
|
||||
*graphql-spice* for JSON support.
|
||||
|
||||
### Added
|
||||
- Partial schema printing: operation type encoder.
|
||||
|
||||
## [1.0.3.0] - 2022-03-27
|
||||
### Fixed
|
||||
- Index position in error path. (Index and Segment paths of a field have been
|
||||
|
@ -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
|
||||
|
@ -173,3 +173,8 @@ spec = do
|
||||
|] '\n'
|
||||
actual = definition pretty operation
|
||||
in actual `shouldBe` expected
|
||||
|
||||
describe "operationType" $
|
||||
it "produces lowercase mutation operation type" $
|
||||
let actual = operationType pretty Full.Mutation
|
||||
in actual `shouldBe` "mutation"
|
||||
|
Loading…
Reference in New Issue
Block a user