Add ability to pass arguments to parameter providing middleware
This commit is contained in:
@@ -310,8 +310,9 @@ export class Route<TReturn extends ResponseObject, THandlerParams extends unknow
|
||||
return params
|
||||
}
|
||||
|
||||
public parameterMiddleware<T>(
|
||||
handler: ParameterProvidingMiddleware<T> | Instantiable<ParameterMiddleware<T>>,
|
||||
public parameterMiddleware<T, THandlerArgs extends any[] = []>(
|
||||
handler: ParameterProvidingMiddleware<T> | Instantiable<ParameterMiddleware<T, THandlerArgs>>,
|
||||
...handlerArgs: THandlerArgs
|
||||
): Route<TReturn, PrefixTypeArray<T, THandlerParams>> {
|
||||
const route = new Route<TReturn, PrefixTypeArray<T, THandlerParams>>(
|
||||
this.method,
|
||||
@@ -321,7 +322,7 @@ export class Route<TReturn extends ResponseObject, THandlerParams extends unknow
|
||||
route.copyFrom(this)
|
||||
|
||||
if ( handler.prototype instanceof ParameterMiddleware ) {
|
||||
route.parameters.push(req => req.make<ParameterMiddleware<T>>(handler).handle())
|
||||
route.parameters.push(req => req.make<ParameterMiddleware<T, THandlerArgs>>(handler).handle(...handlerArgs))
|
||||
}
|
||||
|
||||
route.parameters.push(handler as ParameterProvidingMiddleware<T>)
|
||||
|
||||
Reference in New Issue
Block a user