diff options
| author | Eugen Wissner <belka@caraus.de> | 2023-01-10 09:53:18 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2023-01-10 09:53:18 +0100 |
| commit | 9021f3a25d2b474160abae58cd98c4b6d08d87d0 (patch) | |
| tree | ab75aadbade95707fbf645ae56b5241e6a9fbd58 /src | |
| parent | 025331a9ee07bd3080de6be0f5d514118052d1b5 (diff) | |
| download | graphql-9021f3a25d2b474160abae58cd98c4b6d08d87d0.tar.gz | |
Encode input object types
Diffstat (limited to 'src')
| -rw-r--r-- | src/Language/GraphQL/AST/Encoder.hs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/Language/GraphQL/AST/Encoder.hs b/src/Language/GraphQL/AST/Encoder.hs index b5265cc..1ee0c6c 100644 --- a/src/Language/GraphQL/AST/Encoder.hs +++ b/src/Language/GraphQL/AST/Encoder.hs @@ -106,6 +106,17 @@ argumentDefinition formatter definition' = <> maybe mempty (defaultValue formatter . Full.node) defaultValue' <> directives formatter directives' +inputValueDefinition :: Formatter -> Full.InputValueDefinition -> Lazy.Text.Text +inputValueDefinition formatter definition' = + let Full.InputValueDefinition description' name' type'' defaultValue' directives' = definition' + in optempty (description formatter) description' + <> indentLine formatter + <> Lazy.Text.fromStrict name' + <> colon formatter + <> type' type'' + <> maybe mempty (defaultValue formatter . Full.node) defaultValue' + <> directives formatter directives' + typeDefinition :: Formatter -> Full.TypeDefinition -> Lazy.Text typeDefinition formatter = \case Full.ScalarTypeDefinition description' name' directives' @@ -142,7 +153,13 @@ typeDefinition formatter = \case <> optempty (directives formatter) directives' <> eitherFormat formatter " " "" <> bracesList formatter (enumValueDefinition formatter) members' - _typeDefinition' -> "" -- TODO: Types missing. + Full.InputObjectTypeDefinition description' name' directives' fields' + -> optempty (description formatter) description' + <> "input " + <> Lazy.Text.fromStrict name' + <> optempty (directives formatter) directives' + <> eitherFormat formatter " " "" + <> bracesList formatter (inputValueDefinition nextFormatter) fields' where nextFormatter = incrementIndent formatter |
