refactor(config): restructured with better concurrency and error handling, reduced cross referencing

This commit is contained in:
yusing
2025-10-09 01:02:24 +08:00
parent d08be872a0
commit cab68807ee
25 changed files with 720 additions and 623 deletions

View File

@@ -0,0 +1,42 @@
package statequery
import (
config "github.com/yusing/godoxy/internal/config/types"
"github.com/yusing/godoxy/internal/types"
)
type RouteProviderListResponse struct {
ShortName string `json:"short_name"`
FullName string `json:"full_name"`
} // @name RouteProvider
func DumpRouteProviders() map[string]types.RouteProvider {
state := config.ActiveState.Load()
entries := make(map[string]types.RouteProvider, state.NumProviders())
for _, p := range state.IterProviders() {
entries[p.ShortName()] = p
}
return entries
}
func RouteProviderList() []RouteProviderListResponse {
state := config.ActiveState.Load()
list := make([]RouteProviderListResponse, 0, state.NumProviders())
for _, p := range state.IterProviders() {
list = append(list, RouteProviderListResponse{
ShortName: p.ShortName(),
FullName: p.String(),
})
}
return list
}
func SearchRoute(alias string) types.Route {
state := config.ActiveState.Load()
for _, p := range state.IterProviders() {
if r, ok := p.GetRoute(alias); ok {
return r
}
}
return nil
}