@wilcosp/rex
Version:
Rex is an automated command manager for discord js
42 lines (41 loc) • 1.4 kB
JavaScript
;
/*!
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.LocalsEqual = exports.getLocale = exports.parseLocalizations = void 0;
const v10_1 = require("discord-api-types/v10");
const node_util_1 = require("node:util");
function parseLocalizations(localizations, asMap = false) {
const locals = new Map();
for (const [key, localizedName] of Object.entries(localizations)) {
locals.set(getLocale(key), localizedName ?? undefined);
}
if (asMap) {
return locals;
}
return Object.fromEntries(locals);
}
exports.parseLocalizations = parseLocalizations;
function getLocale(value) {
if (isLanguageName(value)) {
return v10_1.Locale[value];
}
if (isLocaleCode(value)) {
return value;
}
throw TypeError(`${value} is not a valid LanguageName or Locale`);
}
exports.getLocale = getLocale;
function isLanguageName(value) {
return Object.keys(v10_1.Locale).includes(value);
}
function isLocaleCode(value) {
return Object.values(v10_1.Locale).includes(value);
}
function LocalsEqual(one, two) {
return (0, node_util_1.isDeepStrictEqual)(one, two);
}
exports.LocalsEqual = LocalsEqual;