@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
72 lines (69 loc) • 2.45 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/lib/utils/application-commands/compute-differences/localizations.ts
function* checkLocalizations({
localeMapName,
localePresentMessage,
localeMissingMessage,
originalLocalizedDescriptions,
expectedLocalizedDescriptions
}) {
if (!originalLocalizedDescriptions && expectedLocalizedDescriptions) {
yield {
key: localeMapName,
original: localeMissingMessage,
expected: localePresentMessage
};
} else if (originalLocalizedDescriptions && !expectedLocalizedDescriptions) {
yield {
key: localeMapName,
original: localePresentMessage,
expected: localeMissingMessage
};
} else if (originalLocalizedDescriptions && expectedLocalizedDescriptions) {
yield* reportLocalizationMapDifferences(originalLocalizedDescriptions, expectedLocalizedDescriptions, localeMapName);
}
}
__name(checkLocalizations, "checkLocalizations");
function* reportLocalizationMapDifferences(originalMap, expectedMap, mapName) {
const originalLocalizations = new Map(Object.entries(originalMap));
for (const [key, value] of Object.entries(expectedMap)) {
const possiblyExistingEntry = originalLocalizations.get(key);
originalLocalizations.delete(key);
const wasMissingBefore = typeof possiblyExistingEntry === "undefined";
const isResetNow = value === null;
if (wasMissingBefore && !isResetNow) {
yield {
key: `${mapName}.${key}`,
original: "no localization present",
expected: value
};
} else if (!wasMissingBefore && isResetNow) {
yield {
key: `${mapName}.${key}`,
original: possiblyExistingEntry,
expected: "no localization present"
};
} else if (possiblyExistingEntry !== value) {
yield {
key: `${mapName}.${key}`,
original: String(possiblyExistingEntry),
expected: String(value)
};
}
}
for (const [key, value] of originalLocalizations) {
if (value) {
yield {
key: `${mapName}.${key}`,
original: value,
expected: "no localization present"
};
}
}
}
__name(reportLocalizationMapDifferences, "reportLocalizationMapDifferences");
exports.checkLocalizations = checkLocalizations;
//# sourceMappingURL=localizations.cjs.map
//# sourceMappingURL=localizations.cjs.map