UNPKG

@sapphire/framework

Version:

Discord bot framework built for advanced and amazing bots.

80 lines (78 loc) 3.94 kB
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