diff options
| author | mo khan <mo@mokhan.ca> | 2025-04-12 16:15:56 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-04-12 16:15:56 -0600 |
| commit | 54715831a2d307390c05214b6ae8bc721ade6680 (patch) | |
| tree | 9f44a7a6da0eac2736ae45e9d72e714b7b6186aa | |
| parent | ff15873b766f5be308c9967859bfeb7da7cfa21a (diff) | |
feat: wire up dependencies in inversion of control container
| -rw-r--r-- | cmd/sparkled/main.go | 12 | ||||
| -rw-r--r-- | go.mod | 3 | ||||
| -rw-r--r-- | go.sum | 6 |
3 files changed, 17 insertions, 4 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), )) } @@ -5,11 +5,12 @@ go 1.24.0 require ( github.com/oklog/ulid v1.3.1 github.com/stretchr/testify v1.10.0 - github.com/xlgmokha/x v0.0.0-20250404223908-0b29f54f06e7 + github.com/xlgmokha/x v0.0.0-20250412211812-8dcb68809180 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect + github.com/golobby/container/v3 v3.3.2 // indirect github.com/google/jsonapi v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect @@ -1,5 +1,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/golobby/container/v3 v3.3.2 h1:7u+RgNnsdVlhGoS8gY4EXAG601vpMMzLZlYqSp77Quw= +github.com/golobby/container/v3 v3.3.2/go.mod h1:RDdKpnKpV1Of11PFBe7Dxc2C1k2KaLE4FD47FflAmj0= github.com/google/jsonapi v1.0.0 h1:qIGgO5Smu3yJmSs+QlvhQnrscdZfFhiV6S8ryJAglqU= github.com/google/jsonapi v1.0.0/go.mod h1:YYHiRPJT8ARXGER8In9VuLv4qvLfDmA9ULQqptbLE4s= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= @@ -8,8 +10,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/xlgmokha/x v0.0.0-20250404223908-0b29f54f06e7 h1:Jjik5MGVznsXlo+otZXsWuKvbg3lCixMEIIkoxx0Ojc= -github.com/xlgmokha/x v0.0.0-20250404223908-0b29f54f06e7/go.mod h1:kLXa5uHaL3VF9ly6XlioU/Q1gittXvAYh6s1WpOFaU8= +github.com/xlgmokha/x v0.0.0-20250412211812-8dcb68809180 h1:gVt0E4yeEPpzjV8Suv3mg0LkYB+N6milsGePNVUB+0o= +github.com/xlgmokha/x v0.0.0-20250412211812-8dcb68809180/go.mod h1:axGPKzoJCNTmPJxYqN5l+Z9gGbPe0yolkT61a5p3QiI= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= |
