forked from OSS/graphql
		
	Add operation type encoder
This commit is contained in:
		| @@ -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" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user