/
githubmirror
/
pocketbase
Обзор
Документация
Войти
/
githubmirror
/
pocketbase
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tools/picker/modifiers.go
41 строка
842 B
Gani Georgiev
merge v0.23.0-rc changes
29 сен 2024, 21:09
29 сен 2024, 21:09
844f18c
Код
Авторство
О чём код?
package picker import ( "fmt" "github.com/pocketbase/pocketbase/tools/tokenizer" ) var Modifiers = map[string]ModifierFactoryFunc{} type ModifierFactoryFunc func(args ...string) (Modifier, error) type Modifier interface { // Modify executes the modifier and returns a new modified value. Modify(value any) (any, error) } func initModifer(rawModifier string) (Modifier, error) { t := tokenizer.NewFromString(rawModifier) t.Separators('(', ')', ',', ' ') t.IgnoreParenthesis(true) parts, err := t.ScanAll() if err != nil { return nil, err } if len(parts) == 0 { return nil, fmt.Errorf("invalid or empty modifier expression %q", rawModifier) } name := parts[0] args := parts[1:] factory, ok := Modifiers[name] if !ok { return nil, fmt.Errorf("missing or invalid modifier %q", name) } return factory(args...) }