@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
80 lines (78 loc) • 3.94 kB
JavaScript
import { contextMenuTypes } from "./compute-differences/_shared.mjs";
import { checkDefaultMemberPermissions } from "./compute-differences/default_member_permissions.mjs";
import { checkDescription } from "./compute-differences/description.mjs";
import { checkDMPermission } from "./compute-differences/dm_permission.mjs";
import { checkLocalizations } from "./compute-differences/localizations.mjs";
import { checkName } from "./compute-differences/name.mjs";
import { checkOptions } from "./compute-differences/options.mjs";
import { checkIntegrationTypes } from "./compute-differences/integration_types.mjs";
import { checkInteractionContextTypes } from "./compute-differences/contexts.mjs";
import { ApplicationCommandType } from "discord-api-types/v10";
//#region src/lib/utils/application-commands/computeDifferences.ts
/**
* @returns `true` if there are differences, `false` otherwise
*/
function getCommandDifferencesFast(existingCommand, apiData, guildCommand) {
for (const _ of getCommandDifferences(existingCommand, apiData, guildCommand)) return true;
return false;
}
function* getCommandDifferences(existingCommand, apiData, guildCommand) {
if (existingCommand.type !== ApplicationCommandType.ChatInput && existingCommand.type) {
if (contextMenuTypes.includes(existingCommand.type ?? ApplicationCommandType.ChatInput)) {
const casted$1 = apiData;
yield* checkName({
oldName: existingCommand.name,
newName: casted$1.name
});
if (!guildCommand) yield* checkDMPermission(existingCommand.dm_permission, casted$1.dm_permission);
yield* checkDefaultMemberPermissions(existingCommand.default_member_permissions, casted$1.default_member_permissions);
const originalLocalizedNames$1 = existingCommand.name_localizations;
const expectedLocalizedNames$1 = casted$1.name_localizations;
yield* checkLocalizations({
localeMapName: "nameLocalizations",
localePresentMessage: "localized names",
localeMissingMessage: "no localized names",
originalLocalizedDescriptions: originalLocalizedNames$1,
expectedLocalizedDescriptions: expectedLocalizedNames$1
});
yield* checkIntegrationTypes(existingCommand.integration_types, casted$1.integration_types);
yield* checkInteractionContextTypes(existingCommand.contexts, casted$1.contexts);
}
return;
}
const casted = apiData;
yield* checkName({
oldName: existingCommand.name.toLowerCase(),
newName: casted.name.toLowerCase()
});
const originalLocalizedNames = existingCommand.name_localizations;
const expectedLocalizedNames = casted.name_localizations;
yield* checkLocalizations({
localeMapName: "nameLocalizations",
localePresentMessage: "localized names",
localeMissingMessage: "no localized names",
originalLocalizedDescriptions: originalLocalizedNames,
expectedLocalizedDescriptions: expectedLocalizedNames
});
if (!guildCommand) yield* checkDMPermission(existingCommand.dm_permission, casted.dm_permission);
yield* checkDefaultMemberPermissions(existingCommand.default_member_permissions, casted.default_member_permissions);
yield* checkDescription({
oldDescription: existingCommand.description,
newDescription: casted.description
});
const originalLocalizedDescriptions = existingCommand.description_localizations;
const expectedLocalizedDescriptions = casted.description_localizations;
yield* checkLocalizations({
localeMapName: "descriptionLocalizations",
localePresentMessage: "localized descriptions",
localeMissingMessage: "no localized descriptions",
originalLocalizedDescriptions,
expectedLocalizedDescriptions
});
yield* checkIntegrationTypes(existingCommand.integration_types, casted.integration_types);
yield* checkInteractionContextTypes(existingCommand.contexts, casted.contexts);
yield* checkOptions(existingCommand.options, casted.options);
}
//#endregion
export { getCommandDifferences, getCommandDifferencesFast };
//# sourceMappingURL=computeDifferences.mjs.map