{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE NoImplicitPrelude #-} module Data.Morpheus.Core ( parseDSL, parseFullGQLDocument, parseGQLDocument, parseTypeSystemDefinition, parseTypeDefinitions, validateRequest, parseRequestWith, validateSchema, parseRequest, SelectionTree (..), Config (..), VALIDATION_MODE (..), defaultConfig, debugConfig, App (..), AppData (..), runApp, withDebugger, mkApp, runAppStream, render, RenderGQL, ) where import Data.ByteString.Lazy.Char8 ( ByteString, ) import Data.Morpheus.Ext.SemigroupM ( (<:>), ) import Data.Morpheus.Parser ( parseRequest, parseRequestWith, parseTypeDefinitions, parseTypeSystemDefinition, ) import Data.Morpheus.Rendering.RenderGQL (RenderGQL) import qualified Data.Morpheus.Rendering.RenderGQL as R import Data.Morpheus.Schema.Schema (internalSchema) import Data.Morpheus.Types.App ( App (..), AppData (..), mkApp, runApp, runAppStream, withDebugger, ) import Data.Morpheus.Types.Internal.AST ( Schema, VALID, ) import Data.Morpheus.Types.Internal.Config ( Config (..), VALIDATION_MODE (..), debugConfig, defaultConfig, ) import Data.Morpheus.Types.Internal.Resolving ( Eventless, resultOr, sortErrors, ) import Data.Morpheus.Types.SelectionTree (SelectionTree (..)) import Data.Morpheus.Validation.Document.Validation (ValidateSchema (..)) import Data.Morpheus.Validation.Query.Validation ( validateRequest, ) import Relude hiding (ByteString) render :: RenderGQL a => a -> ByteString render :: a -> ByteString render = a -> ByteString forall a. RenderGQL a => a -> ByteString R.renderGQL parseDSL :: ByteString -> Either String (Schema VALID) parseDSL :: ByteString -> Either String (Schema VALID) parseDSL = (GQLErrors -> Either String (Schema VALID)) -> (Schema VALID -> Either String (Schema VALID)) -> Result () (Schema VALID) -> Either String (Schema VALID) forall a' a e. (GQLErrors -> a') -> (a -> a') -> Result e a -> a' resultOr (String -> Either String (Schema VALID) forall a b. a -> Either a b Left (String -> Either String (Schema VALID)) -> (GQLErrors -> String) -> GQLErrors -> Either String (Schema VALID) forall b c a. (b -> c) -> (a -> b) -> a -> c . GQLErrors -> String forall b a. (Show a, IsString b) => a -> b show) Schema VALID -> Either String (Schema VALID) forall (f :: * -> *) a. Applicative f => a -> f a pure (Result () (Schema VALID) -> Either String (Schema VALID)) -> (ByteString -> Result () (Schema VALID)) -> ByteString -> Either String (Schema VALID) forall b c a. (b -> c) -> (a -> b) -> a -> c . ByteString -> Result () (Schema VALID) parseGQLDocument parseGQLDocument :: ByteString -> Eventless (Schema VALID) parseGQLDocument :: ByteString -> Result () (Schema VALID) parseGQLDocument = Result () (Schema VALID) -> Result () (Schema VALID) forall e a. Result e a -> Result e a sortErrors (Result () (Schema VALID) -> Result () (Schema VALID)) -> (ByteString -> Result () (Schema VALID)) -> ByteString -> Result () (Schema VALID) forall b c a. (b -> c) -> (a -> b) -> a -> c . ByteString -> Result () (Schema VALID) parseTypeSystemDefinition parseFullGQLDocument :: ByteString -> Eventless (Schema VALID) parseFullGQLDocument :: ByteString -> Result () (Schema VALID) parseFullGQLDocument = ByteString -> Result () (Schema VALID) parseGQLDocument (ByteString -> Result () (Schema VALID)) -> (Schema VALID -> Result () (Schema VALID)) -> ByteString -> Result () (Schema VALID) forall (m :: * -> *) a b c. Monad m => (a -> m b) -> (b -> m c) -> a -> m c >=> (Schema VALID forall (s :: Stage). Schema s internalSchema Schema VALID -> Schema VALID -> Result () (Schema VALID) forall (m :: * -> *) a. SemigroupM m a => a -> a -> m a <:>)