schalewrapper
Version:
A simple Node.js wrapper for Blue Archive data from SchaleDB, with multi-language support and offline sync.
44 lines (38 loc) • 1.04 kB
JavaScript
import { getStudents, getStudentId } from './loader.js'
/**
* Normalization string for searching
* @param {string} name
* @returns {string}
*/
function normalize(name) {
return name.toLowerCase().replace(/(/g, '(').replace(/)/g, ')')
}
/**
* Find Student by specific name
* @param {string} name
* @param {string} lang
* @returns {import('../../types/student').Student[]}
*/
export function getStudentByName(name = '', lang = 'en') {
const students = getStudents(lang)
const found = []
const lc = normalize(name)
for (const s of students) {
if ([s?.Name, s?.PathName, s?.DevName].some(n => n?.toLowerCase() === lc)) {
return [s]
}
if (
[s?.Name, s?.PathName, s?.DevName, s?.FamilyName, s?.PersonalName, s?.CharacterVoice]
.some(n => n?.toLowerCase().includes(lc))
) {
found.push(s)
}
}
return found
}
export function getAllStudents(lang = 'en') {
return getStudents(lang)
}
export function getStudentById(id, lang = 'en') {
return getStudentId(Number(id), lang)
}