{-# LANGUAGE DeriveLift #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Data.Morpheus.Types.Internal.AST
(
Ref (..),
Position (..),
Message,
anonymousRef,
FieldName (..),
Description,
Stage,
RESOLVED,
VALID,
RAW,
VALIDATION_MODE (..),
Value (..),
ScalarValue (..),
Object,
GQLValue (..),
replaceValue,
decodeScientific,
convertToJSONName,
convertToHaskellName,
RawValue,
ValidValue,
RawObject,
ValidObject,
ResolvedObject,
ResolvedValue,
splitDuplicates,
removeDuplicates,
Argument (..),
Arguments,
SelectionSet,
SelectionContent (..),
Selection (..),
Fragments,
Fragment (..),
Operation (..),
Variable (..),
VariableDefinitions,
DefaultValue,
getOperationName,
getOperationDataType,
ScalarDefinition (..),
DataEnum,
FieldsDefinition,
ArgumentDefinition,
DataUnion,
ArgumentsDefinition (..),
FieldDefinition (..),
InputFieldsDefinition,
TypeContent (..),
TypeDefinition (..),
Schema (..),
DataTypeWrapper (..),
TypeKind (..),
DataFingerprint (..),
TypeWrapper (..),
TypeRef (..),
DataEnumValue (..),
OperationType (..),
QUERY,
MUTATION,
SUBSCRIPTION,
Directive (..),
TypeUpdater,
ConsD (..),
TypeCategory,
DataInputUnion,
VariableContent (..),
TypeLib,
initTypeLib,
defineType,
isFieldNullable,
kindOf,
toNullableField,
toListField,
isObject,
isInput,
toHSWrappers,
isNullable,
toGQLWrapper,
isWeaker,
isSubscription,
isOutputObject,
sysTypes,
isSystemTypeName,
isEntNode,
createField,
createArgument,
createEnumType,
createScalarType,
createType,
createUnionType,
createAlias,
createInputUnionFields,
fieldVisibility,
createEnumValue,
insertType,
lookupDeprecated,
lookupDeprecatedReason,
lookupWith,
hsTypeName,
GQLQuery (..),
Variables,
isNullableWrapper,
unsafeFromFields,
OrderedMap,
GQLError (..),
GQLErrors,
ObjectEntry (..),
UnionTag (..),
__inputname,
updateSchema,
internalFingerprint,
ANY,
IN,
OUT,
FromAny (..),
ToAny (..),
TRUE,
FALSE,
TypeName (..),
Token,
Msg (..),
intercalateName,
toFieldName,
TypeNameRef (..),
isEnum,
Fields (..),
fieldsToArguments,
mkCons,
mkConsEnum,
Directives,
DirectiveDefinitions,
DirectiveDefinition (..),
DirectiveLocation (..),
FieldContent (..),
fieldContentArgs,
mkField,
TypeNameTH (..),
isOutput,
mkObjectField,
UnionMember (..),
mkUnionMember,
)
where
import Data.HashMap.Lazy (HashMap)
import Data.Morpheus.Types.Internal.AST.Base
import Data.Morpheus.Types.Internal.AST.DirectiveLocation (DirectiveLocation (..))
import Data.Morpheus.Types.Internal.AST.OrderedMap
import Data.Morpheus.Types.Internal.AST.Selection
import Data.Morpheus.Types.Internal.AST.TH
import Data.Morpheus.Types.Internal.AST.TypeSystem
import Data.Morpheus.Types.Internal.AST.Value
import Language.Haskell.TH.Syntax (Lift)
type Variables = HashMap FieldName ResolvedValue
data GQLQuery = GQLQuery
{ fragments :: Fragments,
operation :: Operation RAW,
inputVariables :: [(FieldName, ResolvedValue)]
}
deriving (Show, Lift)