gbf-raidfinder
Version:
JavaScript library for tracking Granblue Fantasy raid tweets from Twitter
53 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var gbf_raidfinder_parser_1 = require("gbf-raidfinder-parser");
var Constants_1 = require("./Constants");
function parseFromFilter(boss) {
var name = null;
if (typeof boss.name === 'string') {
name = boss.name;
}
else if (typeof boss.name === 'object') {
var language = Object.keys(boss.name).pop();
if (language) {
name = boss.name[language];
}
}
if (!name) {
throw new TypeError('Can\'t determine the boss name!');
}
return gbf_raidfinder_parser_1.BossParser.parse(name);
}
function parse(boss) {
var _a;
if (typeof boss === 'object') {
if (!boss.level) {
try {
var parsed = parseFromFilter(boss);
boss.level = parsed.level;
}
catch (e) {
boss.levels = boss.levels || Constants_1.ALL_LEVELS;
}
}
if (!boss.levels && boss.level) {
boss.levels = [boss.level];
}
}
else {
var parsed = gbf_raidfinder_parser_1.BossParser.parse(boss);
if (!parsed.language || !parsed.name) {
return null;
}
boss = {
level: parsed.level,
levels: [parsed.level],
name: (_a = {},
_a[parsed.language] = parsed.name,
_a)
};
}
return boss;
}
exports.parse = parse;
//# sourceMappingURL=BossFilter.js.map