compiler/endpoints/expansionUtil.ts
Florian Bouillon a30d338103
Updated Expansions
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-10 14:52:24 +01:00

36 lines
1.3 KiB
TypeScript

import Expansion from "../db/interfaces/Expansion"
import Set from "../db/interfaces/Set"
import * as glob from 'glob'
import { Langs } from "../db/interfaces/LangList"
import { ExpansionSingle } from "../sdk/dist/types/interfaces/Expansion"
import { getAllSets } from "./util"
import { setToSetSimple, fetchSet } from "./setUtil"
export function getExpansion(set: Set): Expansion {
if ("expansion" in set) return set.expansion
return require(`../../db/expansions/${set.expansionCode}`)
}
export function getAllExpansions(): Array<string> {
return glob.sync("./db/expansions/*.ts").map(el => el.substr(16, el.length-15-1-3)) // -15 = start -1 = 0 index -3 = .ts
}
export function fetchExpansion(name: string): Expansion {
return require(`../db/expansions/${name}.js`).default
}
export function expansionToExpansionSimple(expansion: Expansion, lang: Langs) {
return {
code: expansion.code,
name: typeof expansion.name === "string" ? expansion.name : expansion.name[lang]
}
}
export function expansionToExpansionSingle(expansion: Expansion, lang: Langs): ExpansionSingle {
return {
code: expansion.code,
name: typeof expansion.name === "string" ? expansion.name : expansion.name[lang],
sets: getAllSets(expansion.code, true).map(el => setToSetSimple(fetchSet(expansion.code, el), lang))
}
}