composite-aeson-refined 0.5.4.0 → 0.5.5.0
raw patch · 2 files changed
+17/−6 lines, 2 filesdep ~refined
Dependency ranges changed: refined
Files
composite-aeson-refined.cabal view
@@ -1,11 +1,13 @@--- This file has been generated from package.yaml by hpack version 0.20.0.+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.31.0. -- -- see: https://github.com/sol/hpack ----- hash: 170cc0e585bd302406efd7480633161799ed9c5027f62f50cfeea723b73865f6+-- hash: a61486d28933012d285084ce32b7c5b064e687752c1672322ee9b4658d50b0e1 name: composite-aeson-refined-version: 0.5.4.0+version: 0.5.5.0 synopsis: composite-aeson support for Refined from the refined package description: JsonFormat and DefaultJsonFormat for Refined category: Records@@ -15,7 +17,6 @@ copyright: 2017 Confer Health, Inc. license: BSD3 build-type: Simple-cabal-version: >= 1.10 library hs-source-dirs:@@ -27,7 +28,7 @@ , base >=4.7 && <5 , composite-aeson >=0.5.3.0 && <0.6 , mtl >=2.2.1 && <2.3- , refined >=0.1.2.1 && <0.2+ , refined >=0.1.2.1 && <0.3 exposed-modules: Composite.Aeson.Refined other-modules:
src/Composite/Aeson/Refined.hs view
@@ -1,10 +1,16 @@ {-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE CPP #-} module Composite.Aeson.Refined (refinedJsonFormat) where import Composite.Aeson (DefaultJsonFormat, defaultJsonFormat, JsonFormat(JsonFormat), JsonProfunctor(JsonProfunctor)) import Control.Monad.Error.Class (throwError) import qualified Data.Aeson.BetterErrors as ABE-import Refined (Predicate, Refined, refine, unrefine)+import Refined+ ( Predicate, Refined, refine, unrefine+#if MIN_VERSION_refined(0,2,0)+ , displayRefineException+#endif+ ) -- |Given a @'JsonFormat' e a@, produce a @JsonFormat e ('Refined' p a)@ where @p@ is some 'Predicate' from the refined library for @a@. --@@ -14,7 +20,11 @@ refinedJsonFormat (JsonFormat (JsonProfunctor oa ia)) = JsonFormat $ JsonProfunctor o i where o = oa . unrefine+#if MIN_VERSION_refined(0,2,0)+ i = either (toss . show . displayRefineException) pure . refine =<< ia+#else i = either toss pure . refine =<< ia+#endif toss = throwError . ABE.BadSchema [] . ABE.FromAeson instance (DefaultJsonFormat a, Predicate p a) => DefaultJsonFormat (Refined p a) where