mirror of https://github.com/gofiber/fiber.git
39 lines
683 B
Go
39 lines
683 B
Go
package middleware
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/gofiber/fiber"
|
|
)
|
|
|
|
// Middleware types
|
|
type (
|
|
// RecoverConfig defines the config for Logger middleware.
|
|
RecoverConfig struct {
|
|
// Next defines a function to skip this middleware.
|
|
Next func(ctx *fiber.Ctx) bool
|
|
}
|
|
)
|
|
|
|
// RecoverConfigDefault is the default config
|
|
var RecoverConfigDefault = RecoverConfig{
|
|
Next: nil,
|
|
}
|
|
|
|
// Recover will recover from panics and calls the ErrorHandler
|
|
func Recover() fiber.Handler {
|
|
return func(ctx *fiber.Ctx) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
err, ok := r.(error)
|
|
if !ok {
|
|
err = fmt.Errorf("%v", r)
|
|
}
|
|
ctx.Next(err)
|
|
return
|
|
}
|
|
}()
|
|
ctx.Next()
|
|
}
|
|
}
|