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  }