UNPKG

@sapphire/framework

Version:

Discord bot framework built for advanced and amazing bots.

49 lines (47 loc) 1.94 kB
"use strict"; //#region 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); } 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" }; } //#endregion exports.checkLocalizations = checkLocalizations; //# sourceMappingURL=localizations.cjs.map