schalewrapper
Version:
A simple Node.js wrapper for Blue Archive data from SchaleDB, with multi-language support and offline sync.
32 lines (26 loc) • 867 B
JavaScript
import { existsSync, readFileSync } from 'fs'
import { resolve } from 'path'
import { getDirname } from '../../utils/dirname.js'
import asArray from '../../utils/asArray.js'
const __dirname = getDirname(import.meta.url)
const langs = ['cn', 'jp', 'en', 'tw', 'kr', 'th', 'vi']
const itemMap = new Map()
let _initted = false
export function initItemMap() {
if (_initted) return
for (const lang of langs) {
const filePath = resolve(__dirname, `../../assets/data/${lang}/items.json`)
if (!existsSync(filePath)) continue
const data = asArray(JSON.parse(readFileSync(filePath, 'utf-8')))
itemMap.set(lang, data)
}
_initted = true
}
export function getItems(lang = 'en') {
initItemMap()
return itemMap.get(lang) || []
}
export function getItemId(id, lang = 'en') {
initItemMap()
return itemMap.get(lang)?.find(item => item.Id === id)
}