fix(go.sum): update ResolveSpec dependency to v1.0.87
This commit is contained in:
+86
@@ -0,0 +1,86 @@
|
||||
package bunrouter
|
||||
|
||||
import "net/http"
|
||||
|
||||
type config struct {
|
||||
notFoundHandler HandlerFunc
|
||||
methodNotAllowedHandler HandlerFunc
|
||||
|
||||
group *Group
|
||||
}
|
||||
|
||||
type Option interface {
|
||||
apply(cfg *config)
|
||||
}
|
||||
|
||||
type option func(cfg *config)
|
||||
|
||||
func (fn option) apply(cfg *config) {
|
||||
fn(cfg)
|
||||
}
|
||||
|
||||
// WithNotFoundHandler is called when there is no a matching pattern.
|
||||
// The default NotFoundHandler is http.NotFound.
|
||||
func WithNotFoundHandler(handler HandlerFunc) Option {
|
||||
return option(func(c *config) {
|
||||
c.notFoundHandler = c.group.wrap(handler)
|
||||
})
|
||||
}
|
||||
|
||||
// MethodNotAllowedHandler is called when a route matches, but that
|
||||
// route does not have a handler for the requested method. The default
|
||||
// handler just writes the status code http.StatusMethodNotAllowed.
|
||||
func WithMethodNotAllowedHandler(handler HandlerFunc) Option {
|
||||
return option(func(c *config) {
|
||||
c.methodNotAllowedHandler = handler
|
||||
})
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
type GroupOption interface {
|
||||
Option
|
||||
groupOption()
|
||||
}
|
||||
|
||||
type groupOption func(cfg *config)
|
||||
|
||||
func (fn groupOption) apply(cfg *config) {
|
||||
fn(cfg)
|
||||
}
|
||||
|
||||
func (fn groupOption) groupOption() {}
|
||||
|
||||
// WithGroup calls the fn with the current Group.
|
||||
func WithGroup(fn func(g *Group)) GroupOption {
|
||||
return groupOption(func(c *config) {
|
||||
fn(c.group)
|
||||
})
|
||||
}
|
||||
|
||||
// WithMiddleware adds a middleware handler to the Group's middleware stack.
|
||||
func WithMiddleware(fns ...MiddlewareFunc) GroupOption {
|
||||
return groupOption(func(c *config) {
|
||||
c.group.stack = append(c.group.stack, fns...)
|
||||
})
|
||||
}
|
||||
|
||||
// Use is an alias for WithMiddleware.
|
||||
func Use(fns ...MiddlewareFunc) GroupOption {
|
||||
return WithMiddleware(fns...)
|
||||
}
|
||||
|
||||
// WithHandler is like WithMiddleware, but the handler can't modify the request.
|
||||
func WithHandler(fn HandlerFunc) GroupOption {
|
||||
return groupOption(func(c *config) {
|
||||
middleware := func(next HandlerFunc) HandlerFunc {
|
||||
return func(w http.ResponseWriter, req Request) error {
|
||||
if err := fn(w, req); err != nil {
|
||||
return err
|
||||
}
|
||||
return next(w, req)
|
||||
}
|
||||
}
|
||||
c.group.stack = append(c.group.stack, middleware)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user