diff --git a/server/package-lock.json b/server/package-lock.json index 8fe8d2164..bd1b5cf76 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -3623,7 +3623,7 @@ } }, "kamaitachi-common": { - "version": "git+https://github.com/zkldi/Kamaitachi-common.git#ed14a981f924c137198e9c53826ddefe2c46c338", + "version": "git+https://github.com/zkldi/Kamaitachi-common.git#e6305e07ea09fdf9d773a50ac78336b210a0226c", "from": "git+https://github.com/zkldi/Kamaitachi-common.git", "requires": { "monk": "^7.3.3" diff --git a/server/src/db/db.ts b/server/src/db/db.ts index 79621137f..c24feeb05 100644 --- a/server/src/db/db.ts +++ b/server/src/db/db.ts @@ -11,6 +11,7 @@ import { InviteCodeDocument, MilestoneDocument, NotificationDocument, + Playtypes, PrivateUserDocument, PublicAPIKeyDocument, ScoreDocument, @@ -84,12 +85,46 @@ interface GameCollectionFull { let GameCollectionPartial: GCPartial = { songs: {}, - charts: {}, + // i have to handwrite this out for TS... :( + charts: { + bms: monkDB.get>( + `charts-bms` + ), + chunithm: monkDB.get< + ChartDocument<"chunithm", Playtypes["chunithm"], `chunithm:${Playtypes["chunithm"]}`> + >(`charts-chunithm`), + ddr: monkDB.get>( + `charts-ddr` + ), + gitadora: monkDB.get< + ChartDocument<"gitadora", Playtypes["gitadora"], `gitadora:${Playtypes["gitadora"]}`> + >(`charts-gitadora`), + iidx: monkDB.get>( + `charts-iidx` + ), + jubeat: monkDB.get< + ChartDocument<"jubeat", Playtypes["jubeat"], `jubeat:${Playtypes["jubeat"]}`> + >(`charts-jubeat`), + maimai: monkDB.get< + ChartDocument<"maimai", Playtypes["maimai"], `maimai:${Playtypes["maimai"]}`> + >(`charts-maimai`), + museca: monkDB.get< + ChartDocument<"museca", Playtypes["museca"], `museca:${Playtypes["museca"]}`> + >(`charts-museca`), + popn: monkDB.get>( + `charts-popn` + ), + sdvx: monkDB.get>( + `charts-sdvx` + ), + usc: monkDB.get>( + `charts-usc` + ), + }, }; for (const game of config.supportedGames) { GameCollectionPartial.songs[game] = monkDB.get(`songs-${game}`); - GameCollectionPartial.charts[game] = monkDB.get(`charts-${game}`); } // a typescript-friendly interface for the database.