mirror of
https://github.com/elyby/chrly.git
synced 2024-11-30 10:42:14 +05:30
37 lines
920 B
Go
37 lines
920 B
Go
package di
|
|
|
|
import (
|
|
"github.com/goava/di"
|
|
"github.com/mono83/slf"
|
|
|
|
d "github.com/elyby/chrly/dispatcher"
|
|
"github.com/elyby/chrly/eventsubscribers"
|
|
"github.com/elyby/chrly/http"
|
|
"github.com/elyby/chrly/mojangtextures"
|
|
)
|
|
|
|
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(mojangtextures.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/goava/di/issues/10#issuecomment-615869852
|
|
(&eventsubscribers.Logger{Logger: logger}).ConfigureWithDispatcher(dispatcher)
|
|
(&eventsubscribers.StatsReporter{StatsReporter: statsReporter}).ConfigureWithDispatcher(dispatcher)
|
|
}
|