Files
blocky/internal/block/text_component/validators/regex.go

25 lines
544 B
Go

package text_component_validators
import (
"blocky/internal/block/text_component"
"fmt"
"regexp"
)
func Regex(pattern string) text_component.TextComponentOption {
re := regexp.MustCompile(pattern)
return func(c *text_component.TextComponentConfig) {
c.Validators = append(c.Validators, func(value any) error {
s, ok := value.(string)
if !ok {
return fmt.Errorf("provided value bust be a string: %v", value)
}
if !re.MatchString(s) {
return fmt.Errorf("must match pattern %s", pattern)
}
return nil
})
}
}