middleware.go 849 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package middleware
  2. import (
  3. "regexp"
  4. "strconv"
  5. "strings"
  6. "github.com/labstack/echo"
  7. )
  8. type (
  9. // Skipper defines a function to skip middleware. Returning true skips processing
  10. // the middleware.
  11. Skipper func(echo.Context) bool
  12. // BeforeFunc defines a function which is executed just before the middleware.
  13. BeforeFunc func(echo.Context)
  14. )
  15. func captureTokens(pattern *regexp.Regexp, input string) *strings.Replacer {
  16. groups := pattern.FindAllStringSubmatch(input, -1)
  17. if groups == nil {
  18. return nil
  19. }
  20. values := groups[0][1:]
  21. replace := make([]string, 2*len(values))
  22. for i, v := range values {
  23. j := 2 * i
  24. replace[j] = "$" + strconv.Itoa(i+1)
  25. replace[j+1] = v
  26. }
  27. return strings.NewReplacer(replace...)
  28. }
  29. // DefaultSkipper returns false which processes the middleware.
  30. func DefaultSkipper(echo.Context) bool {
  31. return false
  32. }