packages feed

graphql 1.2.0.3 → 1.3.0.0

raw patch · 4 files changed

+40/−62 lines, 4 filesdep ~QuickCheckdep ~containersPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: QuickCheck, containers

API changes (from Hackage documentation)

- Language.GraphQL.Error: Resolution :: Seq Error -> HashMap Name (Type m) -> Resolution m
- Language.GraphQL.Error: [$sel:errors:Resolution] :: Resolution m -> Seq Error
- Language.GraphQL.Error: [$sel:types:Resolution] :: Resolution m -> HashMap Name (Type m)
- Language.GraphQL.Error: data Resolution m
- Language.GraphQL.Error: runCollectErrs :: (Monad m, Serialize a) => HashMap Name (Type m) -> CollectErrsT m a -> m (Response a)
- Language.GraphQL.Error: type CollectErrsT m = StateT (Resolution m) m

Files

CHANGELOG.md view
@@ -6,6 +6,11 @@ and this project adheres to [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## [1.3.0.0] - 2024-05-01+### Changed+- Remove deprecated `runCollectErrs`, `Resolution`, `CollectErrsT` from the+  `Error` module.+ ## [1.2.0.3] - 2024-01-09 ### Fixed - Fix corrupted source distribution.@@ -519,6 +524,7 @@ ### Added - Data types for the GraphQL language. +[1.3.0.0]: https://git.caraus.tech/OSS/graphql/compare/v1.2.0.3...v1.3.0.0 [1.2.0.3]: https://git.caraus.tech/OSS/graphql/compare/v1.2.0.2...v1.2.0.3 [1.2.0.2]: https://git.caraus.tech/OSS/graphql/compare/v1.2.0.1...v1.2.0.2 [1.2.0.1]: https://git.caraus.tech/OSS/graphql/compare/v1.2.0.0...v1.2.0.1
graphql.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4  name:           graphql-version:        1.2.0.3+version:        1.3.0.0 synopsis:       Haskell GraphQL implementation description:    Haskell <https://spec.graphql.org/June2018/ GraphQL> implementation. category:       Language@@ -60,7 +60,7 @@   build-depends:     base >= 4.7 && < 5,     conduit ^>= 1.3.4,-    containers ^>= 0.6.2,+    containers >= 0.6 && < 0.8,     exceptions ^>= 0.10.4,     megaparsec >= 9.0 && < 10,     parser-combinators >= 1.3 && < 2,@@ -93,7 +93,7 @@   ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall    build-depends:-    QuickCheck ^>= 2.14.1,+    QuickCheck >= 2.14 && < 2.16,     base,     conduit,     exceptions,
src/Language/GraphQL/Error.hs view
@@ -8,28 +8,22 @@  -- | Error handling. module Language.GraphQL.Error-    ( CollectErrsT-    , Error(..)+    ( Error(..)     , Path(..)-    , Resolution(..)     , ResolverException(..)     , Response(..)     , ResponseEventStream     , parseError-    , runCollectErrs     ) where  import Conduit import Control.Exception (Exception(..))-import Control.Monad.Trans.State (StateT, runStateT)-import Data.HashMap.Strict (HashMap) import Data.Sequence (Seq(..), (|>)) import qualified Data.Sequence as Seq import Data.Text (Text) import qualified Data.Text as Text-import Language.GraphQL.AST (Location(..), Name)+import Language.GraphQL.AST (Location(..)) import Language.GraphQL.Execute.Coerce-import qualified Language.GraphQL.Type.Schema as Schema import Prelude hiding (null) import Text.Megaparsec     ( ParseErrorBundle(..)@@ -97,28 +91,3 @@     show (ResolverException e) = show e  instance Exception ResolverException---- * Deprecated--{-# DEPRECATED runCollectErrs "runCollectErrs was part of the old executor and isn't used anymore" #-}--- | Runs the given query computation, but collects the errors into an error--- list, which is then sent back with the data.-runCollectErrs :: (Monad m, Serialize a)-    => HashMap Name (Schema.Type m)-    -> CollectErrsT m a-    -> m (Response a)-runCollectErrs types' res = do-    (dat, Resolution{..}) <- runStateT res-        $ Resolution{ errors = Seq.empty, types = types' }-    pure $ Response dat errors--{-# DEPRECATED Resolution "Resolution was part of the old executor and isn't used anymore" #-}--- | Executor context.-data Resolution m = Resolution-    { errors :: Seq Error-    , types :: HashMap Name (Schema.Type m)-    }--{-# DEPRECATED CollectErrsT "CollectErrsT was part of the old executor and isn't used anymore" #-}--- | A wrapper to pass error messages around.-type CollectErrsT m = StateT (Resolution m) m
tests/Language/GraphQL/AST/Arbitrary.hs view
@@ -7,6 +7,7 @@ import Test.QuickCheck (oneof, elements, listOf, resize, NonEmptyList (..)) import Test.QuickCheck.Gen (Gen (..)) import Data.Text (Text, pack)+import Data.Functor ((<&>))  newtype AnyPrintableChar = AnyPrintableChar { getAnyPrintableChar :: Char } deriving (Eq, Show) @@ -59,34 +60,36 @@         location' <- getAnyLocation <$> arbitrary         pure $ AnyObjectField $ Doc.ObjectField name' value' location' -newtype AnyValue = AnyValue { getAnyValue :: Doc.Value } deriving (Eq, Show)+newtype AnyValue = AnyValue { getAnyValue :: Doc.Value }+    deriving (Eq, Show) -instance Arbitrary AnyValue where-    arbitrary = AnyValue <$> oneof-        [ variableGen-        , Doc.Int <$> arbitrary-        , Doc.Float <$> arbitrary-        , Doc.String <$> (getAnyPrintableText <$> arbitrary)-        , Doc.Boolean <$> arbitrary-        , MkGen $ \_ _ -> Doc.Null-        , Doc.Enum <$> (getAnyName <$> arbitrary)-        , Doc.List <$> listGen-        , Doc.Object <$> objectGen-        ]-            where-                variableGen :: Gen Doc.Value-                variableGen = Doc.Variable <$> (getAnyName <$> arbitrary)-                listGen :: Gen [Doc.Node Doc.Value]-                listGen = (resize 5 . listOf) nodeGen-                nodeGen = do-                    node' <- getAnyNode <$> (arbitrary :: Gen (AnyNode AnyValue))-                    pure (getAnyValue <$> node')-                objectGen :: Gen [Doc.ObjectField Doc.Value]-                objectGen = resize 1 $ do-                    list <- getNonEmpty <$> (arbitrary :: Gen (NonEmptyList (AnyObjectField AnyValue)))-                    pure $ map (fmap getAnyValue . getAnyObjectField) list+instance Arbitrary AnyValue+  where+    arbitrary =+        let variableGen :: Gen Doc.Value+            variableGen = Doc.Variable . getAnyName <$> arbitrary+            listGen :: Gen [Doc.Node Doc.Value]+            listGen = (resize 5 . listOf) nodeGen+            nodeGen :: Gen (Doc.Node Doc.Value)+            nodeGen = fmap getAnyNode arbitrary <&> fmap getAnyValue+            objectGen :: Gen [Doc.ObjectField Doc.Value]+            objectGen = resize 1+                $ fmap getNonEmpty arbitrary+                <&> map (fmap getAnyValue . getAnyObjectField)+         in AnyValue <$> oneof+            [ variableGen+            , Doc.Int <$> arbitrary+            , Doc.Float <$> arbitrary+            , Doc.String . getAnyPrintableText <$> arbitrary+            , Doc.Boolean <$> arbitrary+            , MkGen $ \_ _ -> Doc.Null+            , Doc.Enum . getAnyName <$> arbitrary+            , Doc.List <$> listGen+            , Doc.Object <$> objectGen+            ] -newtype AnyArgument a = AnyArgument { getAnyArgument :: Doc.Argument } deriving (Eq, Show)+newtype AnyArgument a = AnyArgument { getAnyArgument :: Doc.Argument }+    deriving (Eq, Show)  instance Arbitrary a => Arbitrary (AnyArgument a) where     arbitrary = do