28 lines
688 B
Go
28 lines
688 B
Go
package golang
|
|
|
|
import "github.com/any-hub/any-hub/internal/proxy/hooks"
|
|
|
|
import "strings"
|
|
|
|
func init() {
|
|
hooks.MustRegister("go", hooks.Hooks{
|
|
CachePolicy: cachePolicy,
|
|
})
|
|
}
|
|
|
|
func cachePolicy(_ *hooks.RequestContext, locatorPath string, current hooks.CachePolicy) hooks.CachePolicy {
|
|
if strings.Contains(locatorPath, "/@v/") &&
|
|
(strings.HasSuffix(locatorPath, ".zip") ||
|
|
strings.HasSuffix(locatorPath, ".mod") ||
|
|
strings.HasSuffix(locatorPath, ".info")) {
|
|
current.AllowCache = true
|
|
current.AllowStore = true
|
|
current.RequireRevalidate = false
|
|
return current
|
|
}
|
|
current.AllowCache = true
|
|
current.AllowStore = true
|
|
current.RequireRevalidate = true
|
|
return current
|
|
}
|