hal 0.4.0 → 0.4.1
raw patch · 3 files changed
+53/−31 lines, 3 filesdep ~envyPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: envy
API changes (from Hackage documentation)
Files
- hal.cabal +3/−3
- src/AWS/Lambda/Combinators.hs +21/−9
- src/AWS/Lambda/Runtime.hs +29/−19
hal.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: f0a8761c52b07313708798791d5b65ef7ac4ab2fce5c2b8b26beea0bf4f6770e+-- hash: 9ccf40a0ac9a96704caf7e69886eb5b1c146bf3bbb30cb8d886286db22f19ce3 name: hal-version: 0.4.0+version: 0.4.1 synopsis: A runtime environment for Haskell applications running on AWS Lambda. description: This library uniquely supports different types of AWS Lambda Handlers for your needs/comfort with advanced Haskell. Instead of exposing a single function@@ -49,7 +49,7 @@ , base >=4.7 && <5 , bytestring , containers- , envy+ , envy <2 , exceptions , http-conduit , http-types
src/AWS/Lambda/Combinators.hs view
@@ -47,20 +47,26 @@ -- -- module Main where --+-- import AWS.Lambda.Context (LambdaContext(..)) -- import AWS.Lambda.Runtime (readerTRuntime) -- import AWS.Lambda.Combinators (withIOInterface) -- import Data.Aeson (FromJSON)+-- import Data.Text (unpack) -- import System.Environment (getEnv)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named ----- myHandler :: Named -> IO String--- myHandler (Named { name }) = do+-- myHandler :: LambdaContext -> Named -> IO (Either String String)+-- myHandler (LambdaContext { functionName }) (Named { name }) = do -- greeting <- getEnv \"GREETING\"--- return $ greeting ++ name+-- return $ if name == \"World\" then+-- Right $ "Hello, World from " ++ unpack functionName ++ "!"+-- else+-- Left "Can only greet the world." -- -- main :: IO () -- main = (readerTRuntime . withIOInterface) myHandler@@ -86,12 +92,14 @@ -- -- module Main where --+-- import AWS.Lambda.Context (LambdaContext(..)) -- import AWS.Lambda.Runtime (readerTRuntime) -- import AWS.Lambda.Combinators (withFallibleInterface) -- import Data.Aeson (FromJSON)--- import System.Environment (getEnv)+-- import Data.Text (unpack)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named@@ -99,7 +107,7 @@ -- myHandler :: LambdaContext -> Named -> Either String String -- myHandler (LambdaContext { functionName }) (Named { name }) = -- if name == \"World\" then--- Right "Hello, World from " ++ unpack functionName ++ "!"+-- Right $ "Hello, World from " ++ unpack functionName ++ "!" -- else -- Left "Can only greet the world." --@@ -128,11 +136,14 @@ -- -- module Main where --+-- import AWS.Lambda.Context (LambdaContext(..)) -- import AWS.Lambda.Runtime (readerTRuntime) -- import AWS.Lambda.Combinators (withPureInterface) -- import Data.Aeson (FromJSON)+-- import Data.Text (unpack)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named@@ -171,8 +182,9 @@ -- import AWS.Lambda.Runtime (readerTRuntime) -- import AWS.Lambda.Combinators (withPureInterface, withoutContext) -- import Data.Aeson (FromJSON)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named
src/AWS/Lambda/Runtime.hs view
@@ -52,23 +52,25 @@ -- -- module Main where ----- import AWS.Lambda.Context (LambdaContext(..))+-- import AWS.Lambda.Context (LambdaContext(..), runReaderTLambdaContext) -- import AWS.Lambda.Runtime (mRuntimeWithContext) -- import Control.Monad.Reader (ReaderT, ask)--- import Control.Monad.State.Lazy (StateT, runStateT, get, put)+-- import Control.Monad.State.Lazy (StateT, evalStateT, get, put)+-- import Control.Monad.Trans (liftIO) -- import Data.Aeson (FromJSON) -- import Data.Text (unpack) -- import System.Environment (getEnv)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named ----- myHandler :: Named -> StateT Int (ReaderT LambdaContext IO String)+-- myHandler :: Named -> StateT Int (ReaderT LambdaContext IO) String -- myHandler Named { name } = do -- LambdaContext { functionName } <- ask--- greeting <- getEnv \"GREETING\"+-- greeting <- liftIO $ getEnv \"GREETING\" -- -- greetingCount <- get -- put $ greetingCount + 1@@ -76,7 +78,7 @@ -- return $ greeting ++ name ++ " (" ++ show greetingCount ++ ") from " ++ unpack functionName ++ "!" -- -- main :: IO ()--- main = runStateT (mRuntimeWithContext myHandler) 0+-- main = runReaderTLambdaContext (evalStateT (mRuntimeWithContext myHandler) 0) -- @ mRuntimeWithContext :: (HasLambdaContext r, MonadCatch m, MonadReader r m, MonadIO m, FromJSON event, ToJSON result) => (event -> m result) -> m ()@@ -97,11 +99,13 @@ -- import AWS.Lambda.Context (LambdaContext(..)) -- import AWS.Lambda.Runtime (readerTRuntime) -- import Control.Monad.Reader (ReaderT, ask)+-- import Control.Monad.Trans (liftIO) -- import Data.Aeson (FromJSON) -- import Data.Text (unpack) -- import System.Environment (getEnv)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named@@ -109,7 +113,7 @@ -- myHandler :: Named -> ReaderT LambdaContext IO String -- myHandler Named { name } = do -- LambdaContext { functionName } <- ask--- greeting <- getEnv \"GREETING\"+-- greeting <- liftIO $ getEnv \"GREETING\" -- return $ greeting ++ name ++ " from " ++ unpack functionName ++ "!" -- -- main :: IO ()@@ -136,16 +140,17 @@ -- import Data.Aeson (FromJSON) -- import Data.Text (unpack) -- import System.Environment (getEnv)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named ----- myHandler :: LambdaContext -> Named -> IO String+-- myHandler :: LambdaContext -> Named -> IO (Either String String) -- myHandler (LambdaContext { functionName }) (Named { name }) = do -- greeting <- getEnv \"GREETING\"--- return $ greeting ++ name ++ " from " ++ unpack functionName ++ "!"+-- return $ pure $ greeting ++ name ++ " from " ++ unpack functionName ++ "!" -- -- main :: IO () -- main = ioRuntimeWithContext myHandler@@ -168,16 +173,17 @@ -- import AWS.Lambda.Runtime (ioRuntime) -- import Data.Aeson (FromJSON) -- import System.Environment (getEnv)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named ----- myHandler :: Named -> IO String+-- myHandler :: Named -> IO (Either String String) -- myHandler (Named { name }) = do -- greeting <- getEnv \"GREETING\"--- return $ greeting ++ name+-- return $ pure $ greeting ++ name -- -- main :: IO () -- main = ioRuntime myHandler@@ -200,8 +206,9 @@ -- import AWS.Lambda.Runtime (fallibleRuntimeWithContext) -- import Data.Aeson (FromJSON) -- import Data.Text (unpack)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named@@ -209,7 +216,7 @@ -- myHandler :: LambdaContext -> Named -> Either String String -- myHandler (LambdaContext { functionName }) (Named { name }) = -- if name == \"World\" then--- Right "Hello, World from " ++ unpack functionName ++ "!"+-- Right $ "Hello, World from " ++ unpack functionName ++ "!" -- else -- Left "Can only greet the world." --@@ -232,8 +239,9 @@ -- -- import AWS.Lambda.Runtime (fallibleRuntime) -- import Data.Aeson (FromJSON)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named@@ -266,8 +274,9 @@ -- import AWS.Lambda.Runtime (pureRuntimeWithContext) -- import Data.Aeson (FromJSON) -- import Data.Text (unpack)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named@@ -294,8 +303,9 @@ -- -- import AWS.Lambda.Runtime (pureRuntime) -- import Data.Aeson (FromJSON)+-- import GHC.Generics (Generic) ----- data Named = {+-- data Named = Named { -- name :: String -- } deriving Generic -- instance FromJSON Named