@@ -4,55 +4,21 @@ module Aws.Lambda.Configuration
44 , Main. generate
55 , Main. getRecord
66 , configureLambda
7- , returnAndFail
8- , returnAndSucceed
9- , decodeObj
7+ , IPC. returnAndFail
8+ , IPC. returnAndSucceed
9+ , Dispatch. decodeObj
1010 )
1111where
1212
13- import Data.Aeson
14-
15- import qualified Data.ByteString.Lazy as LazyByteString
16- import Data.Text (Text )
17- import qualified Data.Text as Text
18- import qualified Data.Text.Encoding as Encoding
19- import Language.Haskell.TH
20- import System.Exit (exitFailure , exitSuccess )
21- import System.IO (hFlush , stderr , stdout )
13+ import qualified Language.Haskell.TH as Meta
2214
2315import qualified Aws.Lambda.Meta.Main as Main
2416import qualified Aws.Lambda.Meta.Run as Run
17+ import qualified Aws.Lambda.Meta.Dispatch as Dispatch
18+ import qualified Aws.Lambda.Runtime.IPC as IPC
2519
26- putTextLn :: Text -> IO ()
27- putTextLn = putStrLn . Text. unpack
28-
29- configureLambda :: Q [Dec ]
20+ configureLambda :: Meta. DecsQ
3021configureLambda = do
3122 main <- Main. generate
3223 run <- Run. generate
3324 return $ main <> [run]
34-
35- returnAndFail :: ToJSON a => Text -> a -> IO ()
36- returnAndFail uuid v = do
37- hFlush stdout
38- putTextLn uuid
39- hFlush stdout
40- putTextLn (Encoding. decodeUtf8 $ LazyByteString. toStrict $ encode v)
41- hFlush stdout
42- hFlush stderr
43- exitFailure
44-
45- returnAndSucceed :: ToJSON a => Text -> a -> IO ()
46- returnAndSucceed uuid v = do
47- hFlush stdout
48- putTextLn uuid
49- hFlush stdout
50- putTextLn (Encoding. decodeUtf8 $ LazyByteString. toStrict $ encode v)
51- hFlush stdout
52- exitSuccess
53-
54- decodeObj :: FromJSON a => Text -> a
55- decodeObj x =
56- case (eitherDecode $ LazyByteString. fromStrict $ Encoding. encodeUtf8 x) of
57- Left e -> error e
58- Right v -> v
0 commit comments