Documentation
¶
Index ¶
- Constants
- func GetPackagePath(r string) (string, error)
- func GetRequestURL(r *http.Request) string
- func ModProxy(cfg *Config, urlGetter RequestURLGetter, pathGetter PackagePathGetter, ...)
- func NewModProxyHandler(cfg *Config, urlGetter RequestURLGetter, pathGetter PackagePathGetter, ...) http.HandlerFunc
- func RewriteURL(originalURL string, cfg *Config) (string, error)
- type Config
- type DefaultPackagePathGetter
- type DefaultRequestURLGetter
- type DefaultURLRewriter
- type PackagePathGetter
- type RequestURLGetter
- type URLManipulator
- type URLRewriter
Constants ¶
const ( DefaultSchemePattern = "http" DefaultSchemeReplacement = "https" DefaultHostPattern = "go.loafoe.dev" DefaultHostReplacement = "github.com" DefaultPathPattern = "/" DefaultPathReplacement = "/loafoe-dev/go-" )
Constants for default pattern and replacement values.
Variables ¶
This section is empty.
Functions ¶
func GetPackagePath ¶
GetPackagePath extracts the host and path from the request URL, omitting the scheme. This is used for the go-import meta tag.
func GetRequestURL ¶
GetRequestURL constructs the full request URL from an http.Request object.
func ModProxy ¶
func ModProxy(cfg *Config, urlGetter RequestURLGetter, pathGetter PackagePathGetter, urlRewriter URLRewriter, w http.ResponseWriter, r *http.Request)
ModProxy is the main handler for the HTTP function. It rewrites the requested URL based on the provided configuration.
func NewModProxyHandler ¶
func NewModProxyHandler(cfg *Config, urlGetter RequestURLGetter, pathGetter PackagePathGetter, urlRewriter URLRewriter) http.HandlerFunc
NewModProxyHandler creates a new HTTP handler for ModProxy with the provided configuration and dependencies.
Types ¶
type Config ¶
type Config struct {
SchemePattern string
SchemeReplacement string
HostPattern string
HostReplacement string
PathPattern string
PathReplacement string
}
Config holds the configuration for ModProxy.
func NewConfigFromEnvironment ¶
func NewConfigFromEnvironment() *Config
NewConfigFromEnvironment creates a new instance of Config with values from environment variables or default values.
type DefaultPackagePathGetter ¶
type DefaultPackagePathGetter struct{}
func (DefaultPackagePathGetter) GetPackagePath ¶
func (DefaultPackagePathGetter) GetPackagePath(url string) (string, error)
type DefaultRequestURLGetter ¶
type DefaultRequestURLGetter struct{}
Concrete implementations
func (DefaultRequestURLGetter) GetRequestURL ¶
func (DefaultRequestURLGetter) GetRequestURL(r *http.Request) string
type DefaultURLRewriter ¶
type DefaultURLRewriter struct{}
func (DefaultURLRewriter) RewriteURL ¶
func (DefaultURLRewriter) RewriteURL(originalURL string, cfg *Config) (string, error)
type PackagePathGetter ¶
type RequestURLGetter ¶
Interfaces
type URLManipulator ¶
type URLManipulator struct {
Config *Config
URLGetter RequestURLGetter
PathGetter PackagePathGetter
URLRewriter URLRewriter
}
URLManipulator contains the dependencies for the ModProxy function.