From ba07f8298bda9b18ea0408988cc2cd2239ce9726 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 13 Oct 2024 19:40:12 +0200 Subject: Validate repeatable directives --- src/Language/GraphQL/AST/DirectiveLocation.hs | 2 +- src/Language/GraphQL/AST/Document.hs | 6 +++++- src/Language/GraphQL/AST/Encoder.hs | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src/Language/GraphQL/AST') diff --git a/src/Language/GraphQL/AST/DirectiveLocation.hs b/src/Language/GraphQL/AST/DirectiveLocation.hs index d109666..600f931 100644 --- a/src/Language/GraphQL/AST/DirectiveLocation.hs +++ b/src/Language/GraphQL/AST/DirectiveLocation.hs @@ -1,6 +1,6 @@ {-# LANGUAGE Safe #-} --- | Various parts of a GraphQL document can be annotated with directives. +-- | Various parts of a GraphQL document can be annotated with directives. -- This module describes locations in a document where directives can appear. module Language.GraphQL.AST.DirectiveLocation ( DirectiveLocation(..) diff --git a/src/Language/GraphQL/AST/Document.hs b/src/Language/GraphQL/AST/Document.hs index f695495..101cf78 100644 --- a/src/Language/GraphQL/AST/Document.hs +++ b/src/Language/GraphQL/AST/Document.hs @@ -380,7 +380,11 @@ instance Show NonNullType where -- -- Directives begin with "@", can accept arguments, and can be applied to the -- most GraphQL elements, providing additional information. -data Directive = Directive Name [Argument] Location deriving (Eq, Show) +data Directive = Directive + { name :: Name + , arguments :: [Argument] + , location :: Location + } deriving (Eq, Show) -- * Type System diff --git a/src/Language/GraphQL/AST/Encoder.hs b/src/Language/GraphQL/AST/Encoder.hs index afa30de..a1076e4 100644 --- a/src/Language/GraphQL/AST/Encoder.hs +++ b/src/Language/GraphQL/AST/Encoder.hs @@ -277,7 +277,7 @@ pipeList :: Foldable t => Formatter -> t Lazy.Text -> Lazy.Text pipeList Minified = (" " <>) . Lazy.Text.intercalate " | " . toList pipeList (Pretty _) = Lazy.Text.concat . fmap (("\n" <> indentSymbol <> "| ") <>) - . toList + . toList enumValueDefinition :: Formatter -> Full.EnumValueDefinition -> Lazy.Text enumValueDefinition (Pretty _) enumValue = -- cgit v1.2.3