Module

Prospero.Parser

Package
purescript-prospero
Repository
rowtype-yoga/purescript-prospero

#parseQuery Source

parseQuery :: String -> Either String (Array Selection)

Convenience wrapper: no variables, assumes query operation.

#parseOperation Source

parseOperation :: String -> Map String InputValue -> Either String ParsedOperation

Parse a query with variable values, returning operation type and resolved selections.

#parseOperationWithDefer Source

parseOperationWithDefer :: String -> Map String InputValue -> Either String { deferred :: Array DeferredFragment, operationType :: OperationType, selections :: Array Selection }

Parse with @defer support, separating deferred fragments from immediate selections.

#ParsedOperation Source

type ParsedOperation = { operationType :: OperationType, selections :: Array Selection }

#DeferredFragment Source

type DeferredFragment = { label :: Maybe String, selections :: Array Selection }

Re-exports from Prospero.Parser.AST

#VariableDef Source

type VariableDef = { colon :: SourceToken, defaultValue :: Maybe (SourceToken /\ Value), directives :: Array Directive, dollar :: SourceToken, name :: Name, type :: TypeRef }

#TypeCondition Source

type TypeCondition = { name :: Name, on :: SourceToken }

#Operation Source

type Operation = { directives :: Array Directive, name :: Maybe Name, operationType :: Maybe (SourceToken /\ OperationType), selectionSet :: SelectionSet, variableDefinitions :: Maybe (Wrapped (Array VariableDef)) }

#ObjectField Source

type ObjectField = { colon :: SourceToken, name :: Name, value :: Value }

#InlineFragment Source

type InlineFragment = { directives :: Array Directive, selectionSet :: SelectionSet, spread :: SourceToken, typeCondition :: Maybe TypeCondition }

#FragmentSpread Source

type FragmentSpread = { directives :: Array Directive, name :: Name, spread :: SourceToken }

#Fragment Source

type Fragment = { directives :: Array Directive, keyword :: SourceToken, name :: Name, selectionSet :: SelectionSet, typeCondition :: TypeCondition }

#FieldNode Source

type FieldNode = { alias :: Maybe (Name /\ SourceToken), arguments :: Maybe (Wrapped (Array Argument)), directives :: Array Directive, name :: Name, selectionSet :: Maybe SelectionSet }

#Document Source

data Document

Constructors

#Directive Source

type Directive = { arguments :: Maybe (Wrapped (Array Argument)), at :: SourceToken, name :: Name }

#Argument Source

type Argument = { colon :: SourceToken, name :: Name, value :: Value }

Re-exports from Prospero.Parser.Monad

#ParseError Source

type ParseError = { message :: String, position :: SourcePos }

#runParser Source

Re-exports from Prospero.Parser.Token

#Wrapped Source

newtype Wrapped a

Constructors

Instances

#SourceToken Source

type SourceToken = { leadingTrivia :: Array Trivia, range :: SourceRange, value :: Token }

#SourceRange Source

type SourceRange = { end :: SourcePos, start :: SourcePos }

#SourcePos Source

type SourcePos = { column :: Int, line :: Int }

#Name Source

newtype Name

Constructors

Instances