hw-polysemy 0.2.14.0 → 0.2.14.1
raw patch · 2 files changed
+33/−4 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
amazonka/HaskellWorks/Polysemy/Amazonka.hs view
@@ -2,6 +2,8 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeApplications #-} +{- HLINT ignore "Use let" -}+ module HaskellWorks.Polysemy.Amazonka ( AwsLogEntry(..), runReaderAwsEnvDiscover,@@ -26,6 +28,7 @@ import qualified Data.Text.Lazy as LT import qualified Data.Text.Lazy.Encoding as LT import HaskellWorks.Polysemy.Control.Concurrent.STM.TVar+import HaskellWorks.Polysemy.System.Environment import HaskellWorks.Prelude import Polysemy import Polysemy.Error@@ -35,6 +38,9 @@ import Polysemy.Reader import Polysemy.Resource import qualified System.IO as IO+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import Text.Read data AwsLogEntry = AwsLogEntry { logLevel :: AWS.LogLevel@@ -42,14 +48,37 @@ } deriving (Generic, Show, Typeable) +maybeSetEndpoint :: ()+ => Maybe (String, String)+ -> (AWS.Service -> AWS.Service)+ -> AWS.Service+ -> AWS.Service+maybeSetEndpoint = \case+ Just (host, portString) ->+ case readMaybe portString of+ Just port -> (. AWS.setEndpoint False (T.encodeUtf8 (T.pack host)) port)+ Nothing -> id+ Nothing -> id+ runReaderAwsEnvDiscover :: () => Member (Embed IO) r => Sem (Reader AWS.Env : r) a -> Sem r a runReaderAwsEnvDiscover f = do logger' <- embed $ AWS.newLogger AWS.Debug IO.stdout++ mLocalStackHost <- lookupEnv "AWS_LOCALSTACK_HOST"+ mLocalStackPort <- lookupEnv "AWS_LOCALSTACK_PORT"+ mLocalStackEndpoint <- pure $ (,)+ <$> mLocalStackHost+ <*> mLocalStackPort+ discoveredAwsEnv <- embed $ AWS.newEnv AWS.discover- let awsEnv = discoveredAwsEnv { AWS.logger = logger' }++ awsEnv <- pure $ discoveredAwsEnv+ & the @"logger" .~ logger'+ & the @"overrides" %~ maybeSetEndpoint mLocalStackEndpoint+ runReader awsEnv f sendAws :: ()
hw-polysemy.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: hw-polysemy-version: 0.2.14.0+version: 0.2.14.1 synopsis: Opinionated polysemy library description: Opinionated polysemy library. license: Apache-2.0@@ -39,9 +39,9 @@ common lens { build-depends: lens < 5.4 } common mtl { build-depends: mtl < 5.4 } common polysemy { build-depends: polysemy < 2 }-common polysemy-log { build-depends: polysemy-log < 0.11 }+common polysemy-log { build-depends: polysemy-log >= 0.11 && < 1 } common polysemy-plugin { build-depends: polysemy-plugin < 0.5 }-common polysemy-time { build-depends: polysemy-time < 0.7 }+common polysemy-time { build-depends: polysemy-time < 1 } common prettyprinter { build-depends: prettyprinter < 1.8 } common process { build-depends: process < 1.7 } common resourcet { build-depends: resourcet < 1.4 }