Added (first version of) sample Hummingbird app. #3

Closed
javier wants to merge 24 commits from middleware/sample into main
Showing only changes of commit ed9e24ec5c - Show all commits
@@ -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<AppRequestContext> {
let router = Router()
router.addMiddleware {
LogRequestsMiddleware(logger.logLevel)
DocCMiddleware (
configuration: DocCConfiguration(
uriRoot: "/archives",
folderRoot: "Samples/HummingbirdDocC/Archives"
),
logger: logger
)
}
return router
}
}