{-| main function generation for interoperation with the layer -}
module Aws.Lambda.Meta.Main
( LambdaOptions(..)
, generate
, Options.getRecord
) where
import GHC.Generics (Generic)
import qualified Language.Haskell.TH as Meta
import qualified Options.Generic as Options
import Aws.Lambda.Meta.Common
-- | Options that the generated main expects
data LambdaOptions = LambdaOptions
{ eventObject :: !String
, contextObject :: !String
, functionHandler :: !String
, executionUuid :: !String
} deriving (Generic, Options.ParseRecord)
-- | Generate the main function that the layer will call
generate :: Meta.DecsQ
generate = [d|
$(declarationName "main") = getRecord "" >>= run
|]