packages feed

aws-lambda-haskell-runtime 4.1.0 → 4.1.1

raw patch · 5 files changed

+51/−28 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

aws-lambda-haskell-runtime.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.3.+-- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/hpack  name:           aws-lambda-haskell-runtime-version:        4.1.0+version:        4.1.1 synopsis:       Haskell runtime for AWS Lambda description:    Please see the README on GitHub at <https://github.com/theam/aws-lambda-haskell-runtime#readme> category:       AWS@@ -46,7 +46,16 @@       Paths_aws_lambda_haskell_runtime   hs-source-dirs:       src-  default-extensions: TemplateHaskell OverloadedStrings RecordWildCards ScopedTypeVariables DeriveGeneric TypeApplications FlexibleContexts DeriveAnyClass QuasiQuotes+  default-extensions:+      TemplateHaskell+      OverloadedStrings+      RecordWildCards+      ScopedTypeVariables+      DeriveGeneric+      TypeApplications+      FlexibleContexts+      DeriveAnyClass+      QuasiQuotes   ghc-options: -Wall -optP-Wno-nonportable-include-path -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat -Widentities -Wredundant-constraints -Wmissing-export-lists -Wpartial-fields -fhide-source-paths -freverse-errors   build-depends:       aeson@@ -73,7 +82,16 @@       Paths_aws_lambda_haskell_runtime   hs-source-dirs:       test-  default-extensions: TemplateHaskell OverloadedStrings RecordWildCards ScopedTypeVariables DeriveGeneric TypeApplications FlexibleContexts DeriveAnyClass QuasiQuotes+  default-extensions:+      TemplateHaskell+      OverloadedStrings+      RecordWildCards+      ScopedTypeVariables+      DeriveGeneric+      TypeApplications+      FlexibleContexts+      DeriveAnyClass+      QuasiQuotes   ghc-options: -Wall -optP-Wno-nonportable-include-path -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat -Widentities -Wredundant-constraints -Wmissing-export-lists -Wpartial-fields -fhide-source-paths -freverse-errors -threaded -rtsopts -with-rtsopts=-N   build-depends:       base >=4.7 && <5
src/Aws/Lambda/Runtime.hs view
@@ -17,11 +17,12 @@ import qualified Aws.Lambda.Runtime.Environment as Environment import qualified Aws.Lambda.Runtime.Error as Error import qualified Aws.Lambda.Runtime.Publish as Publish+import Aws.Lambda.Runtime.StandaloneLambda.Types (StandaloneLambdaResponseBody (..)) import qualified Control.Exception as Unchecked import Control.Exception.Safe.Checked (Throws, catch, throw) import qualified Control.Exception.Safe.Checked as Checked import Control.Monad (forever)-import Data.Aeson (ToJSON (toJSON))+import Data.Aeson (encode) import Data.IORef (newIORef) import Data.Text (Text, unpack) import qualified Network.HTTP.Client as Http@@ -94,12 +95,14 @@   flushOutput   case result of     Left lambdaError -> case lambdaError of-      Runtime.StandaloneLambdaError err ->-        throw $ Error.Invocation $ toJSON err+      Runtime.StandaloneLambdaError (StandaloneLambdaResponseBodyPlain err) ->+        throw $ Error.Invocation $ encode err+      Runtime.StandaloneLambdaError (StandaloneLambdaResponseBodyJson err) ->+        throw $ Error.Invocation err       Runtime.APIGatewayLambdaError err ->-        throw $ Error.Invocation $ toJSON err+        throw $ Error.Invocation $ encode err       Runtime.ALBLambdaError err ->-        throw $ Error.Invocation $ toJSON err+        throw $ Error.Invocation $ encode err     Right value ->       pure value 
src/Aws/Lambda/Runtime/Error.hs view
@@ -7,7 +7,8 @@ where  import Control.Exception.Safe.Checked (Exception)-import Data.Aeson (ToJSON (..), Value, object, (.=))+import Data.Aeson (ToJSON (..), object, (.=))+import qualified Data.ByteString.Lazy as LBS import Data.Text (Text)  newtype EnvironmentVariableNotSet@@ -36,9 +37,5 @@       ]  newtype Invocation-  = Invocation Value+  = Invocation LBS.ByteString   deriving (Show, Exception)--instance ToJSON Invocation where-  -- We return the user error as it is-  toJSON (Invocation err) = err
src/Aws/Lambda/Runtime/Publish.hs view
@@ -17,6 +17,7 @@ import Aws.Lambda.Runtime.StandaloneLambda.Types import Control.Monad (void) import Data.Aeson+import qualified Data.ByteString.Lazy as LBS import Data.Text (Text, unpack) import qualified Data.Text.Encoding as T import qualified Network.HTTP.Client as Http@@ -28,7 +29,10 @@   rawRequest <- Http.parseRequest . unpack $ endpoint    let requestBody = case lambdaResult of-        (StandaloneLambdaResult res) -> Http.RequestBodyBS (T.encodeUtf8 . unStandaloneLambdaResponseBody $ res)+        (StandaloneLambdaResult (StandaloneLambdaResponseBodyPlain res)) ->+          Http.RequestBodyBS (T.encodeUtf8 res)+        (StandaloneLambdaResult (StandaloneLambdaResponseBodyJson res)) ->+          Http.RequestBodyLBS res         (APIGatewayResult res) -> Http.RequestBodyLBS (encode res)         (ALBResult res) -> Http.RequestBodyLBS (encode res)       request =@@ -41,27 +45,27 @@  -- | Publishes an invocation error back to AWS Lambda invocationError :: Error.Invocation -> Text -> Context context -> Http.Manager -> IO ()-invocationError err lambdaApi context =+invocationError (Error.Invocation err) lambdaApi context =   publish err (Endpoints.invocationError lambdaApi $ awsRequestId context) context  -- | Publishes a parsing error back to AWS Lambda parsingError :: Error.Parsing -> Text -> Context context -> Http.Manager -> IO () parsingError err lambdaApi context =   publish-    err+    (encode err)     (Endpoints.invocationError lambdaApi $ awsRequestId context)     context  -- | Publishes a runtime initialization error back to AWS Lambda runtimeInitError :: ToJSON err => err -> Text -> Context context -> Http.Manager -> IO () runtimeInitError err lambdaApi =-  publish err (Endpoints.runtimeInitError lambdaApi)+  publish (encode err) (Endpoints.runtimeInitError lambdaApi) -publish :: ToJSON err => err -> Endpoints.Endpoint -> Context context -> Http.Manager -> IO ()+publish :: LBS.ByteString -> Endpoints.Endpoint -> Context context -> Http.Manager -> IO () publish err (Endpoints.Endpoint endpoint) _context manager = do   rawRequest <- Http.parseRequest . unpack $ endpoint -  let requestBody = Http.RequestBodyLBS (encode err)+  let requestBody = Http.RequestBodyLBS err       request =         rawRequest           { Http.method = "POST",
src/Aws/Lambda/Runtime/StandaloneLambda/Types.hs view
@@ -9,14 +9,15 @@   ) where -import Aws.Lambda.Utilities (toJSONText)-import Data.Aeson (FromJSON, ToJSON)+import Data.Aeson (ToJSON, encode)+import qualified Data.ByteString.Lazy as LBS import Data.Text (Text) import qualified Data.Text as Text  -- | Wrapper type for lambda response body-newtype StandaloneLambdaResponseBody = StandaloneLambdaResponseBody {unStandaloneLambdaResponseBody :: Text}-  deriving newtype (ToJSON, FromJSON)+data StandaloneLambdaResponseBody+  = StandaloneLambdaResponseBodyPlain Text+  | StandaloneLambdaResponseBodyJson  LBS.ByteString  class ToStandaloneLambdaResponseBody a where   toStandaloneLambdaResponse :: a -> StandaloneLambdaResponseBody@@ -24,10 +25,10 @@ -- We need to special case String and Text to avoid unneeded encoding -- which results in extra quotes put around plain text responses instance {-# OVERLAPPING #-} ToStandaloneLambdaResponseBody String where-  toStandaloneLambdaResponse = StandaloneLambdaResponseBody . Text.pack+  toStandaloneLambdaResponse = StandaloneLambdaResponseBodyPlain . Text.pack  instance {-# OVERLAPPING #-} ToStandaloneLambdaResponseBody Text where-  toStandaloneLambdaResponse = StandaloneLambdaResponseBody+  toStandaloneLambdaResponse = StandaloneLambdaResponseBodyPlain  instance ToJSON a => ToStandaloneLambdaResponseBody a where-  toStandaloneLambdaResponse = StandaloneLambdaResponseBody . toJSONText+  toStandaloneLambdaResponse = StandaloneLambdaResponseBodyJson . encode