mirror of
https://github.com/yusing/godoxy.git
synced 2025-06-09 04:52:35 +02:00
fix(route): remove x-properties routes during loading
Some checks failed
Docker Image CI (socket-proxy) / build (push) Has been cancelled
Some checks failed
Docker Image CI (socket-proxy) / build (push) Has been cancelled
This commit is contained in:
parent
a90d2b90d1
commit
cfe0f6bb70
3 changed files with 22 additions and 3 deletions
|
@ -33,8 +33,17 @@ func FileProviderImpl(filename string) (ProviderImpl, error) {
|
|||
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) {
|
||||
err = serialization.UnmarshalValidateYAML(data, &routes)
|
||||
err = serialization.UnmarshalValidateYAMLIntercept(data, &routes, removeXPrefix)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -433,8 +433,7 @@ func (r *Route) ShouldExclude() bool {
|
|||
} else if r.IsZeroPort() && r.Scheme != route.SchemeFileServer {
|
||||
return true
|
||||
}
|
||||
if strings.HasPrefix(r.Alias, "x-") ||
|
||||
strings.HasSuffix(r.Alias, "-old") {
|
||||
if strings.HasSuffix(r.Alias, "-old") {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
|
|
@ -528,6 +528,17 @@ func UnmarshalValidateYAML[T any](data []byte, target *T) gperr.Error {
|
|||
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) {
|
||||
m := make(map[string]any)
|
||||
if err = gperr.Wrap(yaml.Unmarshal(data, &m)); err != nil {
|
||||
|
|
Loading…
Add table
Reference in a new issue