navidrome/cmd/wire_injectors.go

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

92 lines
1.7 KiB
Go
Raw Normal View History

//go:build wireinject
2020-07-02 16:34:21 -04:00
package cmd
import (
"sync"
"github.com/google/wire"
"github.com/navidrome/navidrome/core"
"github.com/navidrome/navidrome/core/agents/lastfm"
"github.com/navidrome/navidrome/core/agents/listenbrainz"
"github.com/navidrome/navidrome/core/artwork"
"github.com/navidrome/navidrome/db"
2020-01-23 19:44:08 -05:00
"github.com/navidrome/navidrome/persistence"
"github.com/navidrome/navidrome/scanner"
"github.com/navidrome/navidrome/server"
"github.com/navidrome/navidrome/server/events"
2021-06-13 19:15:41 -04:00
"github.com/navidrome/navidrome/server/nativeapi"
2022-12-30 22:34:00 -05:00
"github.com/navidrome/navidrome/server/public"
2020-01-23 19:44:08 -05:00
"github.com/navidrome/navidrome/server/subsonic"
)
var allProviders = wire.NewSet(
core.Set,
artwork.Set,
2020-01-19 18:28:23 -05:00
subsonic.New,
2021-06-13 19:15:41 -04:00
nativeapi.New,
2022-12-30 22:34:00 -05:00
public.New,
2020-01-19 18:28:23 -05:00
persistence.New,
lastfm.NewRouter,
listenbrainz.NewRouter,
2021-06-21 18:41:11 -04:00
events.GetBroker,
db.Db,
)
2020-01-19 19:34:54 -05:00
func CreateServer(musicFolder string) *server.Server {
2020-01-11 13:00:03 -05:00
panic(wire.Build(
2020-01-13 17:06:47 -05:00
server.New,
2020-01-11 13:00:03 -05:00
allProviders,
))
}
2021-06-13 19:15:41 -04:00
func CreateNativeAPIRouter() *nativeapi.Router {
panic(wire.Build(
allProviders,
))
}
func CreateSubsonicAPIRouter() *subsonic.Router {
2020-07-02 20:08:41 -04:00
panic(wire.Build(
allProviders,
GetScanner,
2020-07-02 20:08:41 -04:00
))
}
2022-12-30 22:34:00 -05:00
func CreatePublicRouter() *public.Router {
panic(wire.Build(
allProviders,
))
}
func CreateLastFMRouter() *lastfm.Router {
panic(wire.Build(
allProviders,
))
}
func CreateListenBrainzRouter() *listenbrainz.Router {
panic(wire.Build(
allProviders,
))
}
// Scanner must be a Singleton
var (
onceScanner sync.Once
scannerInstance scanner.Scanner
)
func GetScanner() scanner.Scanner {
onceScanner.Do(func() {
scannerInstance = createScanner()
})
return scannerInstance
2020-01-19 19:34:54 -05:00
}
func createScanner() scanner.Scanner {
panic(wire.Build(
allProviders,
scanner.New,
))
}