import { getAllExpansions, expansionToExpansionSimple } from "../expansionUtil" import Expansion from "@tcgdex/sdk/interfaces/Expansion" import { getAllSets, getBaseFolder } from "../util" import { fetchSet } from "../setUtil" import { promises as fs } from 'fs' import { ExpansionList } from '@tcgdex/sdk/interfaces/Expansion' import { Langs } from "@tcgdex/sdk/interfaces/LangList" const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "expansions") import Logger from '@dzeio/logger' const logger = new Logger('expansions/index') export default async () => { logger.log('Fetching Expansions') const expansions = await getAllExpansions() let list: Array<{ release: string, expansion: Expansion }> = [] for (const i of expansions) { const expansion: Expansion = require(`../../db/expansions/${i}`).default const sets = await getAllSets(expansion.code) expansion.sets = sets let oldestRelease = "9999-99-99" for (const j of sets) { const set = await fetchSet(expansion.code, j) oldestRelease = set.releaseDate < oldestRelease ? set.releaseDate : oldestRelease } list.push({ release: oldestRelease, expansion }) } list = list.sort((a, b) => a.release > b.release ? 1 : -1) const finalList = list.map(el => el.expansion) const res: ExpansionList = { count: finalList.length, list: finalList.map(el => expansionToExpansionSimple(el, lang)) } await fs.mkdir(endpoint, {recursive: true}) await fs.writeFile(`${endpoint}/index.json`, JSON.stringify(res)) logger.log('Finished') }