fix rewrite omitting trailing slash, error msg update

This commit is contained in:
yusing 2025-01-09 13:32:12 +08:00
parent adb41a80c5
commit 4aee44fe11
3 changed files with 9 additions and 4 deletions

View file

@ -109,7 +109,7 @@ func (p *Provider) startRoute(parent task.Parent, r *R.Route) E.Error {
return nil
}
// Start implements*task.TaskStarter.
// Start implements task.TaskStarter.
func (p *Provider) Start(parent task.Parent) E.Error {
t := parent.Subtask("provider."+p.name, false)

View file

@ -54,10 +54,14 @@ func validateURLPath(args []string) (any, E.Error) {
return nil, ErrExpectOneArg
}
p := args[0]
trailingSlash := len(p) > 1 && p[len(p)-1] == '/'
p, _, _ = strings.Cut(p, "#")
p = path.Clean(p)
if len(p) == 0 {
return "/", nil
return nil, ErrInvalidArguments.Withf("empty path")
}
if trailingSlash {
p += "/"
}
if p[0] != '/' {
return nil, ErrInvalidArguments.Withf("must start with /")

View file

@ -180,7 +180,7 @@ func Deserialize(src SerializedObject, dst any) E.Error {
}
return errs.Error()
default:
return ErrUnsupportedConversion.Subject("deserialize to " + dstT.String())
return ErrUnsupportedConversion.Subject("mapping to " + dstT.String())
}
}
@ -346,10 +346,11 @@ func ConvertString(src string, dst reflect.Value) (convertible bool, convErr E.E
return true, E.From(parser.Parse(src))
}
// yaml like
isMultiline := strings.ContainsRune(src, '\n')
var tmp any
switch dst.Kind() {
case reflect.Slice:
src = strings.TrimSpace(src)
isMultiline := strings.ContainsRune(src, '\n')
// one liner is comma separated list
if !isMultiline {
values := strutils.CommaSeperatedList(src)