aeson-schemas 1.0.2 → 1.0.3
raw patch · 6 files changed
+26/−9 lines, 6 filesdep ~first-class-familiesdep ~megaparsecdep ~template-haskellPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: first-class-families, megaparsec, template-haskell
API changes (from Hackage documentation)
- Data.Aeson.Schema.Internal: parseFail :: forall (schema :: SchemaType) m a. (Monad m, Typeable schema) => [Text] -> Value -> m a
+ Data.Aeson.Schema.Internal: parseFail :: forall (schema :: SchemaType) m a. (MonadFail m, Typeable schema) => [Text] -> Value -> m a
Files
- CHANGELOG.md +4/−0
- aeson-schemas.cabal +10/−6
- src/Data/Aeson/Schema/Internal.hs +5/−1
- src/Data/Aeson/Schema/TH/Parse.hs +4/−1
- test/AllTypes.hs +2/−1
- test/Main.hs +1/−0
CHANGELOG.md view
@@ -1,5 +1,9 @@ ## Upcoming +## 1.0.3++Support GHC 8.8+ ## 1.0.2 Bundle test data files in release tarball
aeson-schemas.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 492943d0169b4a3f5457ebaf335ee3b3630cfbfa520d699dd098450a55875d1a+-- hash: c2bdf380b742a87fa9d09969246278d74fefaa1c713dc1b131df3e2016de3fa0 name: aeson-schemas-version: 1.0.2+version: 1.0.3 synopsis: Easily consume JSON data on-demand with type-safety description: Parse JSON data easily and safely without defining new data types. Useful for deeply nested JSON data, which is difficult to parse using the default@@ -119,11 +119,13 @@ , bytestring >=0.10.8.1 && <0.11 , first-class-families >=0.3.0.0 && <0.6.1 , megaparsec >=6.0.0 && <7.1- , template-haskell >=2.12.0.0 && <2.15+ , template-haskell >=2.12.0.0 && <2.16 , text >=1.2.2.2 && <1.3 , unordered-containers >=0.2.8.0 && <0.3 if impl(ghc >= 8.0)- ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances+ ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wnoncanonical-monad-instances+ if impl(ghc < 8.8)+ ghc-options: -Wnoncanonical-monadfail-instances default-language: Haskell2010 test-suite aeson-schemas-test@@ -148,10 +150,12 @@ , raw-strings-qq >=1.1 && <1.2 , tasty >=0.11.3 && <1.3 , tasty-golden >=2.3.1.2 && <2.4- , template-haskell >=2.12.0.0 && <2.15+ , template-haskell >=2.12.0.0 && <2.16 , text >=1.2.2.2 && <1.3 , th-test-utils >=1.0.0 && <1.1 , unordered-containers >=0.2.8.0 && <0.3 if impl(ghc >= 8.0)- ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances+ ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wnoncanonical-monad-instances+ if impl(ghc < 8.8)+ ghc-options: -Wnoncanonical-monadfail-instances default-language: Haskell2010
src/Data/Aeson/Schema/Internal.hs view
@@ -7,6 +7,7 @@ Internal definitions for declaring JSON schemas. -} {-# LANGUAGE AllowAmbiguousTypes #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DefaultSignatures #-}@@ -28,6 +29,9 @@ module Data.Aeson.Schema.Internal where import Control.Applicative ((<|>))+#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail (MonadFail)+#endif import Data.Aeson (FromJSON(..), Value(..)) import Data.Aeson.Types (Parser) import Data.Bifunctor (first)@@ -190,7 +194,7 @@ pair = "\"" ++ key ++ "\": " ++ value -- | A helper for creating fail messages when parsing a schema.-parseFail :: forall (schema :: SchemaType) m a. (Monad m, Typeable schema) => [Text] -> Value -> m a+parseFail :: forall (schema :: SchemaType) m a. (MonadFail m, Typeable schema) => [Text] -> Value -> m a parseFail path value = fail $ msg ++ ": " ++ ellipses 200 (show value) where msg = if null path
src/Data/Aeson/Schema/TH/Parse.hs view
@@ -16,6 +16,9 @@ import Control.Applicative (empty) #endif import Control.Monad (void)+#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail (MonadFail)+#endif import Data.Functor (($>)) import Data.List (intercalate) import Data.Void (Void)@@ -32,7 +35,7 @@ errorBundlePretty = parseErrorPretty #endif -parse :: Monad m => Parser a -> String -> m a+parse :: MonadFail m => Parser a -> String -> m a parse parser s = either (fail . errorBundlePretty) return $ runParser parser s s {- Parser primitives -}
test/AllTypes.hs view
@@ -2,12 +2,13 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeApplications #-} module AllTypes where import Data.Aeson (FromJSON(..), withText) import Data.Aeson.Schema-import Data.Aeson.Schema.TH (mkEnum, mkGetter)+import Data.Aeson.Schema.TH (mkEnum) import qualified Data.Text as Text import Util (getMockedResult)
test/Main.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} import Data.Aeson.Schema (Object, get, unwrap)