mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-21 07:51:28 +02:00
fix(route): remove x-properties routes during loading
This commit is contained in:
@@ -33,8 +33,17 @@ func FileProviderImpl(filename string) (ProviderImpl, error) {
|
|||||||
return impl, nil
|
return impl, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func removeXPrefix(m map[string]any) gperr.Error {
|
||||||
|
for alias := range m {
|
||||||
|
if strings.HasPrefix(alias, "x-") {
|
||||||
|
delete(m, alias)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func validate(data []byte) (routes route.Routes, err gperr.Error) {
|
func validate(data []byte) (routes route.Routes, err gperr.Error) {
|
||||||
err = serialization.UnmarshalValidateYAML(data, &routes)
|
err = serialization.UnmarshalValidateYAMLIntercept(data, &routes, removeXPrefix)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -433,8 +433,7 @@ func (r *Route) ShouldExclude() bool {
|
|||||||
} else if r.IsZeroPort() && r.Scheme != route.SchemeFileServer {
|
} else if r.IsZeroPort() && r.Scheme != route.SchemeFileServer {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(r.Alias, "x-") ||
|
if strings.HasSuffix(r.Alias, "-old") {
|
||||||
strings.HasSuffix(r.Alias, "-old") {
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -528,6 +528,17 @@ func UnmarshalValidateYAML[T any](data []byte, target *T) gperr.Error {
|
|||||||
return MapUnmarshalValidate(m, target)
|
return MapUnmarshalValidate(m, target)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UnmarshalValidateYAMLIntercept[T any](data []byte, target *T, intercept func(m map[string]any) gperr.Error) gperr.Error {
|
||||||
|
m := make(map[string]any)
|
||||||
|
if err := yaml.Unmarshal(data, &m); err != nil {
|
||||||
|
return gperr.Wrap(err)
|
||||||
|
}
|
||||||
|
if err := intercept(m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return MapUnmarshalValidate(m, target)
|
||||||
|
}
|
||||||
|
|
||||||
func UnmarshalValidateYAMLXSync[V any](data []byte) (_ functional.Map[string, V], err gperr.Error) {
|
func UnmarshalValidateYAMLXSync[V any](data []byte) (_ functional.Map[string, V], err gperr.Error) {
|
||||||
m := make(map[string]any)
|
m := make(map[string]any)
|
||||||
if err = gperr.Wrap(yaml.Unmarshal(data, &m)); err != nil {
|
if err = gperr.Wrap(yaml.Unmarshal(data, &m)); err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user