@@ -3,21 +3,21 @@ import Foundation
33import Hummingbird
44
55public struct HummingbirdTransport < Router: RouterMethods , Service> : ServiceTransport {
6- public init ( router: Router , serviceBuilder: @escaping @Sendable ( Request , Router . Context ) -> Service ) {
6+ public init ( router: Router , serviceBuilder: @escaping @Sendable ( Request, Router . Context) async throws -> Service ) {
77 self . router = router
88 self . serviceBuilder = serviceBuilder
99 }
1010
1111 public var router : Router
12- public var serviceBuilder : @Sendable ( Request , Router . Context ) -> Service
12+ public var serviceBuilder : @Sendable ( Request, Router . Context) async throws -> Service
1313
1414 public func register< Request: Decodable , Response: Encodable > (
1515 path: String ,
1616 methodSelector: @escaping @Sendable ( Service . Type ) -> ( Service ) -> ( Request ) async throws -> Response
1717 ) {
1818 router. post ( RouterPath ( path) ) { [ serviceBuilder] request, context in
1919 let serviceRequest = try await makeDecoder ( ) . decode ( Request . self, from: request, context: context)
20- let service = serviceBuilder ( request, context)
20+ let service = try await serviceBuilder ( request, context)
2121 let serviceResponse = try await methodSelector ( Service . self) ( service) ( serviceRequest)
2222 var response = try makeEncoder ( ) . encode ( serviceResponse, from: request, context: context)
2323 response. headers [ . cacheControl] = " no-store "
0 commit comments