@mann-conomy/tf-particle-effects
Version:
A Node.js wrapper for Team Fortress 2's in-game particle effects.
46 lines • 2.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isUndefinedOrEmpty = isUndefinedOrEmpty;
exports.compareById = compareById;
exports.getLanguageTranslation = getLanguageTranslation;
exports.getLanguageSubtag = getLanguageSubtag;
exports.compareByIdOrName = compareByIdOrName;
exports.compareByIdAndName = compareByIdAndName;
const localization_1 = __importDefault(require("../classes/errors/localization"));
const enums_1 = require("../resources/enums");
function isUndefinedOrEmpty(attributes) {
return !(Array.isArray(attributes) && attributes.length > 0);
}
function compareById(attribute, id) {
return attribute.id === id;
}
function getLanguageTranslation(language) {
const translations = Object.entries(enums_1.LanguageTranslation).map(([name, code]) => ({ name, code }));
const translation = translations.find(translation => translation.code.toLowerCase() === language.toLowerCase());
if (translation !== undefined) {
return translation.name;
}
throw new localization_1.default("No translation exists for the provided language code.");
}
function getLanguageSubtag(translation) {
const languageTags = Object.entries(enums_1.LanguageSubtag).map(([name, subtag]) => ({ name, subtag }));
const languageTag = languageTags.find(subtag => subtag.name.toLowerCase() === translation.toLowerCase());
if (languageTag !== undefined) {
return languageTag.subtag;
}
throw new localization_1.default("No language subtag was found matching the provided language code.");
}
function compareByIdOrName(attribute, effect) {
const translation = getLanguageTranslation(effect.language);
const subtag = getLanguageSubtag(translation);
return attribute.id === effect.id || attribute.name.toLocaleLowerCase(subtag) === effect.name.toLocaleLowerCase(subtag);
}
function compareByIdAndName(attribute, effect) {
const translation = getLanguageTranslation(effect.language);
const subtag = getLanguageSubtag(translation);
return attribute.id === effect.id && attribute.name.toLocaleLowerCase(subtag) === effect.name.toLocaleLowerCase(subtag);
}
//# sourceMappingURL=utils.js.map