mirror of
https://github.com/tcgdex/compiler.git
synced 2025-04-22 10:42:09 +00:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { smartGlob } from "./util"
|
|
import { setToSetSimple, getSets } from "./setUtil"
|
|
import { Serie, SupportedLanguages } from 'db/interfaces'
|
|
import { Serie as SerieSingle, SerieResume } from '@tcgdex/sdk/interfaces'
|
|
|
|
export async function getSeries(): Promise<Array<Serie>> {
|
|
return Promise.all((await smartGlob('./db/data/*.js'))
|
|
.map((it) => it.substring(it.lastIndexOf('/') + 1, it.length - 3))
|
|
.map((it) => getSerie(it)))
|
|
}
|
|
|
|
export async function getSerie(name: string): Promise<Serie> {
|
|
return (await import(`../db/data/${name}.js`)).default
|
|
}
|
|
|
|
export async function serieToSerieSimple(serie: Serie, lang: SupportedLanguages): Promise<SerieResume> {
|
|
return {
|
|
id: serie.id,
|
|
name: serie.name[lang] as string
|
|
}
|
|
}
|
|
|
|
export async function serieToSerieSingle(serie: Serie, lang: SupportedLanguages): Promise<SerieSingle> {
|
|
const setsTmp = await getSets(serie.name.en)
|
|
const sets = await Promise.all(setsTmp
|
|
.sort((a, b) => {
|
|
return a.releaseDate > b.releaseDate ? 1 : -1
|
|
})
|
|
.map(el => setToSetSimple(el, lang)))
|
|
return {
|
|
id: serie.id,
|
|
name: serie.name[lang] as string,
|
|
sets
|
|
}
|
|
}
|