Implemented the "router()" helper function for the AppBuilder type in the sample target.
This commit is contained in:
@@ -15,7 +15,11 @@ import class Hummingbird.Router
|
|||||||
import protocol Hummingbird.ApplicationProtocol
|
import protocol Hummingbird.ApplicationProtocol
|
||||||
|
|
||||||
import struct Hummingbird.Application
|
import struct Hummingbird.Application
|
||||||
|
import struct Hummingbird.BasicRequestContext
|
||||||
import struct Hummingbird.BindAddress
|
import struct Hummingbird.BindAddress
|
||||||
|
import struct Hummingbird.LogRequestsMiddleware
|
||||||
|
import struct HummingbirdDocC.DocCConfiguration
|
||||||
|
import struct HummingbirdDocC.DocCMiddleware
|
||||||
import struct Logging.Logger
|
import struct Logging.Logger
|
||||||
|
|
||||||
struct AppBuilder {
|
struct AppBuilder {
|
||||||
@@ -38,14 +42,45 @@ struct AppBuilder {
|
|||||||
func callAsFunction(
|
func callAsFunction(
|
||||||
_ arguments: AppArguments
|
_ arguments: AppArguments
|
||||||
) -> some ApplicationProtocol {
|
) -> some ApplicationProtocol {
|
||||||
let router = Router()
|
|
||||||
|
|
||||||
return Application(
|
return Application(
|
||||||
router: router,
|
router: router(),
|
||||||
configuration: .init(
|
configuration: .init(
|
||||||
address: .hostname(arguments.hostname, port: arguments.port)
|
address: .hostname(
|
||||||
|
arguments.hostname,
|
||||||
|
port: arguments.port
|
||||||
|
)
|
||||||
),
|
),
|
||||||
logger: logger
|
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
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user