@@ -34,31 +34,24 @@ public enum Lambda {
34
34
///
35
35
/// - note: This is a blocking operation that will run forever, as its lifecycle is managed by the AWS Lambda Runtime Engine.
36
36
37
- internal static func run< Handler: ByteBufferLambdaHandler > (
37
+ @available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
38
+ internal static func run< Handler: LambdaHandler > (
38
39
configuration: LambdaConfiguration = . init( ) ,
39
40
handlerType: Handler . Type
40
41
) -> Result < Int , Error > {
41
- Self . run ( configuration: configuration, initializationHandler : Handler . makeHandler ( context : ) )
42
+ Self . run ( configuration: configuration, handlerType : CodableLambdaHandler < Handler, Handler . Event , Handler . Output > . self )
42
43
}
43
44
44
45
internal static func run< Handler: EventLoopLambdaHandler > (
45
46
configuration: LambdaConfiguration = . init( ) ,
46
47
handlerType: Handler . Type
47
48
) -> Result < Int , Error > {
48
- Self . run ( configuration: configuration, initializationHandler : Handler . makeHandler ( context : ) )
49
+ Self . run ( configuration: configuration, handlerType : CodableEventLoopLambdaHandler < Handler, Handler . Event , Handler . Output > . self )
49
50
}
50
51
51
- @available ( macOS 12 , * )
52
- internal static func run< Handler: LambdaHandler > (
52
+ internal static func run< Handler: ByteBufferLambdaHandler > (
53
53
configuration: LambdaConfiguration = . init( ) ,
54
54
handlerType: Handler . Type
55
- ) -> Result < Int , Error > {
56
- Self . run ( configuration: configuration, initializationHandler: Handler . makeHandler ( context: ) )
57
-
58
- }
59
- private static func run(
60
- configuration: LambdaConfiguration = . init( ) ,
61
- initializationHandler: @escaping _InitializationHandler
62
55
) -> Result < Int , Error > {
63
56
let _run = { ( configuration: LambdaConfiguration ) -> Result < Int , Error > in
64
57
Backtrace . install ( )
@@ -67,7 +60,7 @@ public enum Lambda {
67
60
68
61
var result : Result < Int , Error > !
69
62
MultiThreadedEventLoopGroup . withCurrentThreadAsEventLoop { eventLoop in
70
- let runtime = LambdaRuntime ( eventLoop: eventLoop, logger: logger, configuration: configuration, initializationHandler : initializationHandler )
63
+ let runtime = LambdaRuntime ( handlerType , eventLoop: eventLoop, logger: logger, configuration: configuration)
71
64
#if DEBUG
72
65
let signalSource = trap ( signal: configuration. lifecycle. stopSignal) { signal in
73
66
logger. info ( " intercepted signal: \( signal) " )
@@ -89,7 +82,6 @@ public enum Lambda {
89
82
result = lifecycleResult
90
83
}
91
84
}
92
-
93
85
logger. info ( " shutdown completed " )
94
86
return result
95
87
}
0 commit comments