aboutsummaryrefslogtreecommitdiff
path: root/src/inversify.config.ts
diff options
context:
space:
mode:
authorStefano <[email protected]>2024-11-04 13:31:01 +0100
committerGitHub <[email protected]>2024-11-04 13:31:01 +0100
commit07bfd32cb33029c0cd8413656c636c56def2f892 (patch)
tree27aa806c89d787d7cf28f04e6bc79586c95a8a1a /src/inversify.config.ts
parent418a7eccf3ad666df2f87c892ebce74e1fd0e70e (diff)
parent66e022489ff8caaf1d9dcdbd34c93fe702dfa024 (diff)
downloadmuse-07bfd32cb33029c0cd8413656c636c56def2f892.tar.xz
muse-07bfd32cb33029c0cd8413656c636c56def2f892.zip
Merge pull request #1092 from sofushn/master
feat: allow running without spotify
Diffstat (limited to 'src/inversify.config.ts')
-rw-r--r--src/inversify.config.ts16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/inversify.config.ts b/src/inversify.config.ts
index 2f2005e..8e621cb 100644
--- a/src/inversify.config.ts
+++ b/src/inversify.config.ts
@@ -57,11 +57,20 @@ container.bind<Client>(TYPES.Client).toConstantValue(new Client({intents}));
// Managers
container.bind<PlayerManager>(TYPES.Managers.Player).to(PlayerManager).inSingletonScope();
+// Config values
+container.bind(TYPES.Config).toConstantValue(new ConfigProvider());
+
// Services
container.bind<GetSongs>(TYPES.Services.GetSongs).to(GetSongs).inSingletonScope();
container.bind<AddQueryToQueue>(TYPES.Services.AddQueryToQueue).to(AddQueryToQueue).inSingletonScope();
container.bind<YoutubeAPI>(TYPES.Services.YoutubeAPI).to(YoutubeAPI).inSingletonScope();
-container.bind<SpotifyAPI>(TYPES.Services.SpotifyAPI).to(SpotifyAPI).inSingletonScope();
+
+// Only instanciate spotify dependencies if the Spotify client ID and secret are set
+const config = container.get<ConfigProvider>(TYPES.Config);
+if (config.SPOTIFY_CLIENT_ID !== '' && config.SPOTIFY_CLIENT_SECRET !== '') {
+ container.bind<SpotifyAPI>(TYPES.Services.SpotifyAPI).to(SpotifyAPI).inSingletonScope();
+ container.bind(TYPES.ThirdParty).to(ThirdParty);
+}
// Commands
[
@@ -91,12 +100,7 @@ container.bind<SpotifyAPI>(TYPES.Services.SpotifyAPI).to(SpotifyAPI).inSingleton
container.bind<Command>(TYPES.Command).to(command).inSingletonScope();
});
-// Config values
-container.bind(TYPES.Config).toConstantValue(new ConfigProvider());
-
// Static libraries
-container.bind(TYPES.ThirdParty).to(ThirdParty);
-
container.bind(TYPES.FileCache).to(FileCacheProvider);
container.bind(TYPES.KeyValueCache).to(KeyValueCacheProvider);