This commit is contained in:
2026-04-13 08:14:09 +03:00
commit 0449337ae7
39 changed files with 2726 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
//go:build wireinject
package main
import "github.com/google/wire"
// InitializeEventBus — попытка собрать граф с циклической зависимостью.
//
// EventBus → NotificationService → UserService → AuthService → EventBus
//
// Wire сделает топологическую сортировку, обнаружит цикл и упадёт.
// Ленивой инициализации нет — Wire должен знать порядок создания заранее.
// А при цикле порядка не существует.
//
// Запустите: task generate-wire-broken
// Результат: "cycle for *EventBus"
func InitializeEventBus() (*EventBus, error) {
wire.Build(
NewEventBus,
NewAuthService,
NewUserService,
NewNotificationService,
wire.Bind(new(NotificationSender), new(*NotificationService)),
wire.Bind(new(EventPublisher), new(*EventBus)),
wire.Bind(new(EventSubscriber), new(*EventBus)),
wire.Bind(new(Auth), new(*AuthService)),
wire.Bind(new(Users), new(*UserService)),
)
return nil, nil
}