refactor(state): replace Entrypoint method with ShortLinkMatcher interface

- Cleaned up agent go.mod by removing unused indirect dependencies.
This commit is contained in:
yusing
2026-01-04 12:43:05 +08:00
parent c00854a124
commit 11d0c61b9c
5 changed files with 15 additions and 14 deletions

View File

@@ -140,8 +140,8 @@ func (state *state) EntrypointHandler() http.Handler {
return &state.entrypoint
}
func (state *state) Entrypoint() *entrypoint.Entrypoint {
return &state.entrypoint
func (state *state) ShortLinkMatcher() config.ShortLinkMatcher {
return state.entrypoint.ShortLinkMatcher()
}
// AutoCertProvider returns the autocert provider.

View File

@@ -6,7 +6,6 @@ import (
"iter"
"net/http"
"github.com/yusing/godoxy/internal/entrypoint"
"github.com/yusing/godoxy/internal/types"
"github.com/yusing/goutils/server"
"github.com/yusing/goutils/synk"
@@ -23,7 +22,7 @@ type State interface {
Value() *Config
EntrypointHandler() http.Handler
Entrypoint() *entrypoint.Entrypoint
ShortLinkMatcher() ShortLinkMatcher
AutoCertProvider() server.CertProvider
LoadOrStoreProvider(key string, value types.RouteProvider) (actual types.RouteProvider, loaded bool)
@@ -35,6 +34,12 @@ type State interface {
FlushTmpLog()
}
type ShortLinkMatcher interface {
AddRoute(alias string)
DelRoute(alias string)
ServeHTTP(w http.ResponseWriter, r *http.Request)
}
// could be nil before first call on Load
var ActiveState synk.Value[State]