diff options
| author | Max Isom <[email protected]> | 2020-03-12 22:41:26 -0500 |
|---|---|---|
| committer | Max Isom <[email protected]> | 2020-03-12 22:41:26 -0500 |
| commit | 17ba78f7b7d78c638ab00b9d4af79110130b0bcd (patch) | |
| tree | df0671a4b2845333198b57906b5dde68b709d37a /src/inversify.config.ts | |
| parent | 8eb4c8a6c06f672cb50efae5ea30215d465000af (diff) | |
| download | muse-17ba78f7b7d78c638ab00b9d4af79110130b0bcd.tar.xz muse-17ba78f7b7d78c638ab00b9d4af79110130b0bcd.zip | |
Use IoC, impliment queue
Diffstat (limited to 'src/inversify.config.ts')
| -rw-r--r-- | src/inversify.config.ts | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/inversify.config.ts b/src/inversify.config.ts new file mode 100644 index 0000000..a042748 --- /dev/null +++ b/src/inversify.config.ts @@ -0,0 +1,54 @@ +import 'reflect-metadata'; +import {Container} from 'inversify'; +import {TYPES} from './types'; +import Bot from './bot'; +import {Client} from 'discord.js'; +import YouTube from 'youtube.ts'; +import Spotify from 'spotify-web-api-node'; +import { + DISCORD_TOKEN, + DISCORD_CLIENT_ID, + YOUTUBE_API_KEY, + SPOTIFY_CLIENT_ID, + SPOTIFY_CLIENT_SECRET, + DATA_DIR, + CACHE_DIR +} from './utils/config'; + +// Services +import Queue from './services/queue'; +import Player from './services/player'; + +// Comands +import Command from './commands'; +import Config from './commands/config'; +import Play from './commands/play'; +import QueueCommad from './commands/queue'; + +let container = new Container(); + +// Bot +container.bind<Bot>(TYPES.Bot).to(Bot).inSingletonScope(); +container.bind<Client>(TYPES.Client).toConstantValue(new Client()); + +// Services +container.bind<Player>(TYPES.Services.Player).to(Player).inSingletonScope(); +container.bind<Queue>(TYPES.Services.Queue).to(Queue).inSingletonScope(); + +// Commands +container.bind<Command>(TYPES.Command).to(Config).inSingletonScope(); +container.bind<Command>(TYPES.Command).to(Play).inSingletonScope(); +container.bind<Command>(TYPES.Command).to(QueueCommad).inSingletonScope(); + +// Config values +container.bind<string>(TYPES.Config.DISCORD_TOKEN).toConstantValue(DISCORD_TOKEN); +container.bind<string>(TYPES.Config.DISCORD_CLIENT_ID).toConstantValue(DISCORD_CLIENT_ID); +container.bind<string>(TYPES.Config.YOUTUBE_API_KEY).toConstantValue(YOUTUBE_API_KEY); +container.bind<string>(TYPES.Config.DATA_DIR).toConstantValue(DATA_DIR); +container.bind<string>(TYPES.Config.CACHE_DIR).toConstantValue(CACHE_DIR); + +// Static libraries +container.bind<YouTube>(TYPES.Lib.YouTube).toConstantValue(new YouTube(YOUTUBE_API_KEY)); +container.bind<Spotify>(TYPES.Lib.Spotify).toConstantValue(new Spotify({clientId: SPOTIFY_CLIENT_ID, clientSecret: SPOTIFY_CLIENT_SECRET})); + +export default container; |
