mirror of
https://github.com/tcgdex/cards-database.git
synced 2025-04-22 02:42:09 +00:00
* Added new compiler to db Signed-off-by: Avior <florian.bouillon@delta-wings.net> * Add compiled DB to artifacts Signed-off-by: Avior <florian.bouillon@delta-wings.net> * Fixed space error Signed-off-by: Avior <florian.bouillon@delta-wings.net> * Fixed? Signed-off-by: Avior <florian.bouillon@delta-wings.net> * Update node.js.yml * Update node.js.yml * Made change so the db is no longer dependent on the SDK Signed-off-by: Avior <florian.bouillon@delta-wings.net> * f Signed-off-by: Avior <florian.bouillon@delta-wings.net> * Fixed artifact Signed-off-by: Avior <florian.bouillon@delta-wings.net> * U Signed-off-by: Avior <florian.bouillon@delta-wings.net> * \Changed folder Signed-off-by: Avior <florian.bouillon@delta-wings.net> * Fixede? Signed-off-by: Avior <florian.bouillon@delta-wings.net> * Try with everything * saved the file ;) * ignore compiler * Fixed prebuild being run again * Fixed public folder Signed-off-by: Avior <github@avior.me> * fixed graphql file Signed-off-by: Avior <github@avior.me> * fixed? Signed-off-by: Avior <github@avior.me> * Check tree because life is potato Signed-off-by: Avior <github@avior.me> * this is harder Signed-off-by: Avior <github@avior.me> * f Signed-off-by: Avior <github@avior.me> * Fixed? Signed-off-by: Avior <github@avior.me> * r Signed-off-by: Avior <github@avior.me> * fd Signed-off-by: Avior <github@avior.me> * added back context Signed-off-by: Avior <github@avior.me> * ah Signed-off-by: Avior <github@avior.me> * AAH Signed-off-by: Avior <github@avior.me> * AAAH Signed-off-by: Avior <github@avior.me> * ffffffffffffffffff Signed-off-by: Avior <github@avior.me> * fix: Changed the default builder Signed-off-by: Avior <github@avior.me> * Removed useless tree function Signed-off-by: Avior <github@avior.me>
67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
import { objectLoop } from '@dzeio/object-util'
|
|
import { Serie as SDKSerie, SerieResume, SupportedLanguages } from '@tcgdex/sdk'
|
|
import Set from './Set'
|
|
import { Pagination } from '../../interfaces'
|
|
|
|
type LocalSerie = Omit<SDKSerie, 'sets'> & {sets: () => Array<Set>}
|
|
|
|
export default class Serie implements LocalSerie {
|
|
|
|
id!: string
|
|
name!: string
|
|
logo?: string | undefined
|
|
|
|
public constructor(
|
|
private lang: SupportedLanguages,
|
|
private serie: SDKSerie
|
|
) {
|
|
objectLoop(serie, (it, key) => {
|
|
if (key === 'sets') {
|
|
return
|
|
}
|
|
this[key as 'id'] = it
|
|
})
|
|
}
|
|
|
|
public sets(): Array<Set> {
|
|
return this.serie.sets.map((s) => Set.findOne(this.lang, {id: s.id}) as Set)
|
|
}
|
|
|
|
public static find(lang: SupportedLanguages, params: Partial<Record<keyof SDKSerie, any>> = {}, pagination?: Pagination) {
|
|
let list = (require(`../../generated/${lang}/series.json`) as Array<SDKSerie>)
|
|
.filter((c) => objectLoop(params, (it, key) => {
|
|
return c[key as 'id'].includes(it)
|
|
}))
|
|
if (pagination) {
|
|
list = list
|
|
.splice(pagination.count * pagination.page - 1, pagination.count)
|
|
}
|
|
return list.map((it) => new Serie(lang, it))
|
|
}
|
|
|
|
public static findOne(lang: SupportedLanguages, params: Partial<Record<keyof Serie, any>> = {}): Serie | undefined {
|
|
const res = (require(`../../../generated/${lang}/series.json`) as Array<SDKSerie>)
|
|
.find((c) => {
|
|
return objectLoop(params, (it, key) => {
|
|
return c[key as 'id'].includes(it)
|
|
})
|
|
})
|
|
if (!res) {
|
|
return undefined
|
|
}
|
|
return new Serie(lang, res)
|
|
}
|
|
|
|
public resume(): SerieResume {
|
|
return {
|
|
id: this.id,
|
|
name: this.name,
|
|
logo: this.logo
|
|
}
|
|
}
|
|
|
|
public full(): SDKSerie {
|
|
return this.serie
|
|
}
|
|
}
|