module Data.Morpheus.Client.Schema.Parse
  ( parseSchema,
  )
where

import Data.Morpheus.Client.Fetch.Types (SchemaSource (..))
import Data.Morpheus.Client.Schema.JSON.Parse
  ( decodeIntrospection,
  )
import Data.Morpheus.Core
  ( parseFullSchema,
  )
import Data.Morpheus.Internal.Ext (GQLResult)
import Data.Morpheus.Types.Internal.AST (Schema, VALID)

parseSchema :: SchemaSource -> GQLResult (Schema VALID)
parseSchema :: SchemaSource -> GQLResult (Schema VALID)
parseSchema (JSON ByteString
doc) = ByteString -> GQLResult (Schema VALID)
decodeIntrospection ByteString
doc
parseSchema (GQL ByteString
doc) = ByteString -> GQLResult (Schema VALID)
parseFullSchema ByteString
doc