diff --git a/src/dataLoader.ts b/src/dataLoader.ts index e8a6d86..d825196 100644 --- a/src/dataLoader.ts +++ b/src/dataLoader.ts @@ -25,15 +25,21 @@ type GameMap = Record< } > +const globEager = (pattern: string) => + (import.meta.glob(pattern, { eager: true, import: 'default' } as any) as unknown) as Record< + string, + string + > + const songFiles = { - ...import.meta.globEager('./Data/*/*/Songs/*.mp3'), - ...import.meta.globEager('./Data/*/*/songs/*.mp3') -} as Record + ...globEager('./Data/*/*/Songs/*.mp3'), + ...globEager('./Data/*/*/songs/*.mp3') +} const answerFiles = { - ...import.meta.globEager('./Data/*/*/Answers/*.mp3'), - ...import.meta.globEager('./Data/*/*/answers/*.mp3') -} as Record + ...globEager('./Data/*/*/Answers/*.mp3'), + ...globEager('./Data/*/*/answers/*.mp3') +} const getParts = (path: string) => { const normalized = path.replace(/\\/g, '/') @@ -75,12 +81,12 @@ const addEntry = (target: GameMap, info: ReturnType, url: strin const buildGameData = (): Game[] => { const games: GameMap = {} - Object.entries(songFiles).forEach(([path, module]) => { - addEntry(games, getParts(path), module.default) + Object.entries(songFiles).forEach(([path, url]) => { + addEntry(games, getParts(path), url) + }) + Object.entries(answerFiles).forEach(([path, url]) => { + addEntry(games, getParts(path), url) }) - Object.entries(answerFiles).forEach(([path, module]) => { - addEntry(games, getParts(path), module.default) - }) return Object.values(games).map((game) => { const categories = Object.values(game.categories).map((category) => {