summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-12 16:15:56 -0600
committermo khan <mo@mokhan.ca>2025-04-12 16:15:56 -0600
commit54715831a2d307390c05214b6ae8bc721ade6680 (patch)
tree9f44a7a6da0eac2736ae45e9d72e714b7b6186aa /cmd
parentff15873b766f5be308c9967859bfeb7da7cfa21a (diff)
feat: wire up dependencies in inversion of control container
Diffstat (limited to 'cmd')
-rw-r--r--cmd/sparkled/main.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/cmd/sparkled/main.go b/cmd/sparkled/main.go
index 6235ada..cf99f4f 100644
--- a/cmd/sparkled/main.go
+++ b/cmd/sparkled/main.go
@@ -5,16 +5,26 @@ import (
"net/http"
"github.com/xlgmokha/x/pkg/env"
+ "github.com/xlgmokha/x/pkg/ioc"
"gitlab.com/mokhax/sparkled/pkg/db"
"gitlab.com/mokhax/sparkled/pkg/web"
)
+func init() {
+ ioc.RegisterSingleton[db.Repository](ioc.Default, func() db.Repository {
+ return db.NewRepository()
+ })
+ ioc.RegisterSingleton[*web.Server](ioc.Default, func() *web.Server {
+ return web.New(ioc.MustResolve[db.Repository](ioc.Default))
+ })
+}
+
func main() {
bindAddr := env.Fetch("BIND_ADDR", ":http")
log.Printf("Listening on %v\n", bindAddr)
log.Fatal(http.ListenAndServe(
bindAddr,
- web.New(db.NewRepository()),
+ ioc.MustResolve[*web.Server](ioc.Default),
))
}