github.com/gofiber/fiber/v2@v2.47.0/middleware/recover/config.go (about) 1 package recover //nolint:predeclared // TODO: Rename to some non-builtin 2 3 import ( 4 "github.com/gofiber/fiber/v2" 5 ) 6 7 // Config defines the config for middleware. 8 type Config struct { 9 // Next defines a function to skip this middleware when returned true. 10 // 11 // Optional. Default: nil 12 Next func(c *fiber.Ctx) bool 13 14 // EnableStackTrace enables handling stack trace 15 // 16 // Optional. Default: false 17 EnableStackTrace bool 18 19 // StackTraceHandler defines a function to handle stack trace 20 // 21 // Optional. Default: defaultStackTraceHandler 22 StackTraceHandler func(c *fiber.Ctx, e interface{}) 23 } 24 25 // ConfigDefault is the default config 26 var ConfigDefault = Config{ 27 Next: nil, 28 EnableStackTrace: false, 29 StackTraceHandler: defaultStackTraceHandler, 30 } 31 32 // Helper function to set default values 33 func configDefault(config ...Config) Config { 34 // Return default config if nothing provided 35 if len(config) < 1 { 36 return ConfigDefault 37 } 38 39 // Override default config 40 cfg := config[0] 41 42 if cfg.EnableStackTrace && cfg.StackTraceHandler == nil { 43 cfg.StackTraceHandler = defaultStackTraceHandler 44 } 45 46 return cfg 47 }