Commit fa14111

mo khan <mo@mokhan.ca>
2025-03-13 15:16:39
refactor: extract cfg package
1 parent 6ad85c4
Changed files (5)
cmd/gtwy/main.go
@@ -10,6 +10,7 @@ import (
 	"github.com/casbin/casbin/v2"
 	"github.com/xlgmokha/x/pkg/env"
 	"github.com/xlgmokha/x/pkg/x"
+	"gitlab.com/mokhax/spike/pkg/cfg"
 	"gitlab.com/mokhax/spike/pkg/srv"
 )
 
@@ -54,8 +55,8 @@ func main() {
 		"api.example.com": "localhost:8284",
 	}))
 
-	log.Fatal(srv.Run(srv.NewConfig(
+	log.Fatal(srv.Run(cfg.New(
 		env.Fetch("BIND_ADDR", ":8080"),
-		srv.WithMux(mux),
+		cfg.WithMux(mux),
 	)))
 }
pkg/srv/config.go → pkg/cfg/cfg.go
@@ -1,25 +1,17 @@
-package srv
+package cfg
 
 import (
 	"crypto/tls"
 	"net/http"
 )
 
-type Option func(*Config)
-
 type Config struct {
 	BindAddress string
 	Mux         http.Handler
 	TLS         *tls.Config
 }
 
-func WithMux(mux http.Handler) Option {
-	return func(config *Config) {
-		config.Mux = mux
-	}
-}
-
-func NewConfig(addr string, options ...Option) *Config {
+func New(addr string, options ...Option) *Config {
 	if addr == "" {
 		addr = ":0"
 	}
pkg/cfg/mux.go
@@ -0,0 +1,9 @@
+package cfg
+
+import "net/http"
+
+func WithMux(mux http.Handler) Option {
+	return func(config *Config) {
+		config.Mux = mux
+	}
+}
pkg/cfg/option.go
@@ -0,0 +1,3 @@
+package cfg
+
+type Option func(*Config)
pkg/srv/srv.go
@@ -4,13 +4,15 @@ import (
 	"log"
 	"net/http"
 	"time"
+
+	"gitlab.com/mokhax/spike/pkg/cfg"
 )
 
-func New(cfg *Config) *http.Server {
+func New(c *cfg.Config) *http.Server {
 	return &http.Server{
-		Addr:              cfg.BindAddress,
-		Handler:           cfg.Mux,
-		TLSConfig:         cfg.TLS,
+		Addr:              c.BindAddress,
+		Handler:           c.Mux,
+		TLSConfig:         c.TLS,
 		ReadHeaderTimeout: 10 * time.Second,
 		ReadTimeout:       30 * time.Second,
 		WriteTimeout:      2 * time.Minute,
@@ -19,6 +21,6 @@ func New(cfg *Config) *http.Server {
 	}
 }
 
-func Run(c *Config) error {
+func Run(c *cfg.Config) error {
 	return c.Run(New(c))
 }