mirror of
https://github.com/elyby/chrly.git
synced 2025-05-31 14:11:51 +05:30
Rework project's structure
This commit is contained in:
34
internal/di/dispatcher.go
Normal file
34
internal/di/dispatcher.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package di
|
||||
|
||||
import (
|
||||
"github.com/defval/di"
|
||||
"github.com/mono83/slf"
|
||||
|
||||
d "github.com/elyby/chrly/internal/dispatcher"
|
||||
"github.com/elyby/chrly/internal/eventsubscribers"
|
||||
"github.com/elyby/chrly/internal/http"
|
||||
)
|
||||
|
||||
var dispatcher = di.Options(
|
||||
di.Provide(newDispatcher,
|
||||
di.As(new(d.Emitter)),
|
||||
di.As(new(d.Subscriber)),
|
||||
di.As(new(http.Emitter)),
|
||||
di.As(new(eventsubscribers.Subscriber)),
|
||||
),
|
||||
di.Invoke(enableEventsHandlers),
|
||||
)
|
||||
|
||||
func newDispatcher() d.Dispatcher {
|
||||
return d.New()
|
||||
}
|
||||
|
||||
func enableEventsHandlers(
|
||||
dispatcher d.Subscriber,
|
||||
logger slf.Logger,
|
||||
statsReporter slf.StatsReporter,
|
||||
) {
|
||||
// TODO: use idea from https://github.com/defval/di/issues/10#issuecomment-615869852
|
||||
(&eventsubscribers.Logger{Logger: logger}).ConfigureWithDispatcher(dispatcher)
|
||||
(&eventsubscribers.StatsReporter{StatsReporter: statsReporter}).ConfigureWithDispatcher(dispatcher)
|
||||
}
|
||||
Reference in New Issue
Block a user