From a96d4e6ef3b1020d239f0061af5861aadeb278fc Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Tue, 27 Dec 2022 10:37:34 +0100 Subject: Add Semigroup and Monoid instances for Description --- src/Language/GraphQL/AST/Encoder.hs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/Language/GraphQL/AST/Encoder.hs') diff --git a/src/Language/GraphQL/AST/Encoder.hs b/src/Language/GraphQL/AST/Encoder.hs index a58a161..d19b9e6 100644 --- a/src/Language/GraphQL/AST/Encoder.hs +++ b/src/Language/GraphQL/AST/Encoder.hs @@ -72,7 +72,8 @@ typeSystemDefinition formatter = \case $ optempty (directives formatter) operationDirectives <> "schema " <> bracesList formatter operationTypeDefinition (NonEmpty.toList operationTypeDefinitions') - _ -> "" -- TODO: TypeDefinition and DerictiveDefinition missing. + Full.TypeDefinition typeDefinition' -> typeDefinition formatter typeDefinition' + _ -> "" -- TODO: DerictiveDefinition missing. where operationTypeDefinition (Full.OperationTypeDefinition operationType' namedType') = indentLine (incrementIndent formatter) @@ -80,6 +81,20 @@ typeSystemDefinition formatter = \case <> colon formatter <> Lazy.Text.fromStrict namedType' +typeDefinition :: Formatter -> Full.TypeDefinition -> Lazy.Text.Text +typeDefinition formatter = \case + Full.ScalarTypeDefinition description' name' directives' + -> optempty (description formatter) description' + <> "scalar " + <> Lazy.Text.fromStrict name' + <> optempty (directives formatter) directives' + _typeDefinition' -> "" -- TODO: Types missing. + +description :: Formatter -> Full.Description -> Lazy.Text.Text +description _formatter (Full.Description Nothing) = "" +description formatter (Full.Description (Just description')) = + stringValue formatter description' + -- | Converts a t'Full.ExecutableDefinition' into a string. definition :: Formatter -> Full.ExecutableDefinition -> Lazy.Text definition formatter x -- cgit v1.2.3