From ed9e24ec5c8f0918d00433e8ee95db566c8e6e1f Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 30 Sep 2025 17:29:28 +0200 Subject: [PATCH] Implemented the "router()" helper function for the AppBuilder type in the sample target. --- .../App/Builders/AppBuilder.swift | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/Samples/HummingbirdDocC/App/Builders/AppBuilder.swift b/Samples/HummingbirdDocC/App/Builders/AppBuilder.swift index cc15e93..9fb1639 100644 --- a/Samples/HummingbirdDocC/App/Builders/AppBuilder.swift +++ b/Samples/HummingbirdDocC/App/Builders/AppBuilder.swift @@ -15,7 +15,11 @@ import class Hummingbird.Router import protocol Hummingbird.ApplicationProtocol import struct Hummingbird.Application +import struct Hummingbird.BasicRequestContext import struct Hummingbird.BindAddress +import struct Hummingbird.LogRequestsMiddleware +import struct HummingbirdDocC.DocCConfiguration +import struct HummingbirdDocC.DocCMiddleware import struct Logging.Logger struct AppBuilder { @@ -38,14 +42,45 @@ struct AppBuilder { func callAsFunction( _ arguments: AppArguments ) -> some ApplicationProtocol { - let router = Router() - return Application( - router: router, + router: router(), configuration: .init( - address: .hostname(arguments.hostname, port: arguments.port) + address: .hostname( + arguments.hostname, + port: arguments.port + ) ), logger: logger ) } + +} + +// MARK: - Helpers + +private extension AppBuilder { + + // MARK: Type aliases + + typealias AppRequestContext = BasicRequestContext + + // MARK: Functions + + func router() -> Router { + let router = Router() + + router.addMiddleware { + LogRequestsMiddleware(logger.logLevel) + DocCMiddleware ( + configuration: DocCConfiguration( + uriRoot: "/archives", + folderRoot: "Samples/HummingbirdDocC/Archives" + ), + logger: logger + ) + } + + return router + } + }