packages feed

hw-prelude 0.0.0.1 → 0.0.0.2

raw patch · 6 files changed

+117/−16 lines, 6 filesdep +aesondep +generic-lensdep +microlensPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: aeson, generic-lens, microlens

API changes (from Hackage documentation)

- HaskellWorks.Error.Types: [$sel:message:GenericError] :: GenericError -> Text
- HaskellWorks.Error.Types: [$sel:message:TimedOut] :: TimedOut -> Text
- HaskellWorks.Error.Types: instance GHC.Classes.Eq HaskellWorks.Error.Types.GenericError
- HaskellWorks.Error.Types: instance GHC.Classes.Eq HaskellWorks.Error.Types.TimedOut
- HaskellWorks.Error.Types: instance GHC.Generics.Generic HaskellWorks.Error.Types.GenericError
- HaskellWorks.Error.Types: instance GHC.Generics.Generic HaskellWorks.Error.Types.TimedOut
- HaskellWorks.Error.Types: instance GHC.Show.Show HaskellWorks.Error.Types.GenericError
- HaskellWorks.Error.Types: instance GHC.Show.Show HaskellWorks.Error.Types.TimedOut
+ HaskellWorks.Error.Types: RenderedError :: Text -> Value -> RenderedError
+ HaskellWorks.Error.Types: class ToRenderedError a
+ HaskellWorks.Error.Types: data RenderedError
+ HaskellWorks.Error.Types: toRenderedError :: ToRenderedError a => a -> RenderedError
+ HaskellWorks.Error.Types.All: GenericError :: Text -> GenericError
+ HaskellWorks.Error.Types.All: RenderedError :: Text -> Value -> RenderedError
+ HaskellWorks.Error.Types.All: TimedOut :: Text -> TimedOut
+ HaskellWorks.Error.Types.All: [$sel:error:RenderedError] :: RenderedError -> Text
+ HaskellWorks.Error.Types.All: [$sel:message:GenericError] :: GenericError -> Text
+ HaskellWorks.Error.Types.All: [$sel:message:TimedOut] :: TimedOut -> Text
+ HaskellWorks.Error.Types.All: [$sel:payload:RenderedError] :: RenderedError -> Value
+ HaskellWorks.Error.Types.All: class ToRenderedError a
+ HaskellWorks.Error.Types.All: data RenderedError
+ HaskellWorks.Error.Types.All: newtype GenericError
+ HaskellWorks.Error.Types.All: newtype TimedOut
+ HaskellWorks.Error.Types.All: toRenderedError :: ToRenderedError a => a -> RenderedError
+ HaskellWorks.Error.Types.GenericError: GenericError :: Text -> GenericError
+ HaskellWorks.Error.Types.GenericError: [$sel:message:GenericError] :: GenericError -> Text
+ HaskellWorks.Error.Types.GenericError: instance GHC.Classes.Eq HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: instance GHC.Generics.Generic HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: instance GHC.Show.Show HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: instance HaskellWorks.Error.Types.RenderedError.ToRenderedError HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: newtype GenericError
+ HaskellWorks.Error.Types.RenderedError: RenderedError :: Text -> Value -> RenderedError
+ HaskellWorks.Error.Types.RenderedError: [$sel:error:RenderedError] :: RenderedError -> Text
+ HaskellWorks.Error.Types.RenderedError: [$sel:payload:RenderedError] :: RenderedError -> Value
+ HaskellWorks.Error.Types.RenderedError: class ToRenderedError a
+ HaskellWorks.Error.Types.RenderedError: data RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance Data.Aeson.Types.ToJSON.ToJSON HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance GHC.Classes.Eq HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance GHC.Generics.Generic HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance GHC.Show.Show HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance HaskellWorks.Error.Types.RenderedError.ToRenderedError HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: toRenderedError :: ToRenderedError a => a -> RenderedError
+ HaskellWorks.Error.Types.TimedOut: TimedOut :: Text -> TimedOut
+ HaskellWorks.Error.Types.TimedOut: [$sel:message:TimedOut] :: TimedOut -> Text
+ HaskellWorks.Error.Types.TimedOut: instance GHC.Classes.Eq HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: instance GHC.Generics.Generic HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: instance GHC.Show.Show HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: instance HaskellWorks.Error.Types.RenderedError.ToRenderedError HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: newtype TimedOut

Files

hw-prelude.cabal view
@@ -1,6 +1,6 @@ cabal-version:          3.4 name:                   hw-prelude-version:                0.0.0.1+version:                0.0.0.2 synopsis:               Opinionated prelude library description:            Opinionated prelude library. license:                Apache-2.0@@ -19,11 +19,14 @@  common base                       { build-depends: base                       >= 4.13       && < 5      } +common aeson                      { build-depends: aeson                                       < 2.3    } common async                      { build-depends: async                                       < 2.3    } common bytestring                 { build-depends: bytestring                                  < 0.13   } common contravariant              { build-depends: contravariant                               < 1.6    } common directory                  { build-depends: directory                                   < 1.4    } common filepath                   { build-depends: filepath                                    < 1.6    }+common generic-lens               { build-depends: generic-lens                                < 2.3    }+common microlens                  { build-depends: microlens                                   < 0.5    } common network                    { build-depends: network                                     < 3.3    } common process                    { build-depends: process                                     < 1.7    } common resourcet                  { build-depends: resourcet                                   < 1.4    }@@ -63,11 +66,14 @@  library   import:               base, project-config,+                        aeson,                         async,                         bytestring,                         contravariant,                         directory,                         filepath,+                        generic-lens,+                        microlens,                         network,                         process,                         resourcet,@@ -82,6 +88,10 @@                         HaskellWorks.Data.String                         HaskellWorks.Error                         HaskellWorks.Error.Types+                        HaskellWorks.Error.Types.All+                        HaskellWorks.Error.Types.GenericError+                        HaskellWorks.Error.Types.RenderedError+                        HaskellWorks.Error.Types.TimedOut                         HaskellWorks.IO.Network.NamedPipe                         HaskellWorks.IO.Network.Port                         HaskellWorks.IO.Network.Socket
src/HaskellWorks/Error/Types.hs view
@@ -1,18 +1,11 @@-{-# LANGUAGE DeriveGeneric #-}- module HaskellWorks.Error.Types-  ( GenericError(..),-    TimedOut(..),-  ) where--import           HaskellWorks.Prelude+  ( -- * Error types+    GenericError(GenericError),+    RenderedError(RenderedError),+    TimedOut(TimedOut), -newtype GenericError = GenericError-  { message :: Text-  }-  deriving (Generic, Eq, Show)+    -- * Type classes+    ToRenderedError(..),+  ) where -newtype TimedOut = TimedOut-  { message :: Text-  }-  deriving (Generic, Eq, Show)+import           HaskellWorks.Error.Types.All
+ src/HaskellWorks/Error/Types/All.hs view
@@ -0,0 +1,14 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances  #-}++module HaskellWorks.Error.Types.All (+    GenericError (..),+    RenderedError (..),+    TimedOut(..),++    ToRenderedError (..),+) where++import           HaskellWorks.Error.Types.GenericError+import           HaskellWorks.Error.Types.RenderedError+import           HaskellWorks.Error.Types.TimedOut
+ src/HaskellWorks/Error/Types/GenericError.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE DeriveGeneric         #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances  #-}++module HaskellWorks.Error.Types.GenericError (+    GenericError (..),+) where++import           Data.Aeson+import           Data.Generics.Product.Any+import           HaskellWorks.Error.Types.RenderedError+import           Lens.Micro++import           HaskellWorks.Prelude++newtype GenericError = GenericError+    { message :: Text+    }+    deriving (Eq, Generic, Show)++instance ToRenderedError GenericError where+    toRenderedError e =+        RenderedError+            { error   = "GenericError"+            , payload = toJSON $ e ^. the @"message"+            }
+ src/HaskellWorks/Error/Types/RenderedError.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE DeriveGeneric         #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances  #-}++module HaskellWorks.Error.Types.RenderedError (+    RenderedError (..),++    ToRenderedError (..),+) where++import           Data.Aeson++import           HaskellWorks.Prelude++data RenderedError = RenderedError+    { error   :: Text+    , payload :: Value+    }+    deriving (Eq, Generic, Show)++instance ToJSON RenderedError where+    toJSON e =+        object+            [ "error" .= error e+            , "payload" .= payload e+            ]++class ToRenderedError a where+    toRenderedError :: a -> RenderedError++instance ToRenderedError RenderedError where+    toRenderedError = id
+ src/HaskellWorks/Error/Types/TimedOut.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE DeriveGeneric         #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances  #-}++module HaskellWorks.Error.Types.TimedOut (+    TimedOut (..),+) where++import           Data.Aeson+import           Data.Generics.Product.Any+import           HaskellWorks.Error.Types.RenderedError+import           Lens.Micro++import           HaskellWorks.Prelude++newtype TimedOut = TimedOut+    { message :: Text+    }+    deriving (Eq, Generic, Show)++instance ToRenderedError TimedOut where+    toRenderedError e =+        RenderedError+            { error   = "TimedOut"+            , payload = toJSON $ e ^. the @"message"+            }