UNPKG

@sapphire/framework

Version:

Discord bot framework built for advanced and amazing bots.

27 lines (25 loc) 1.13 kB
import { Identifiers } from "../errors/Identifiers.mjs"; import { isNullish } from "@sapphire/utilities"; import { Result } from "@sapphire/result"; import { SnowflakeRegex, UserOrMemberMentionRegex } from "@sapphire/discord-utilities"; //#region src/lib/resolvers/member.ts async function resolveMember(parameter, guild, performFuzzySearch) { let member = await resolveById(parameter, guild); if (isNullish(member) && performFuzzySearch) member = await resolveByQuery(parameter, guild); if (member) return Result.ok(member); return Result.err(Identifiers.ArgumentMemberError); } async function resolveById(argument, guild) { const memberId = UserOrMemberMentionRegex.exec(argument) ?? SnowflakeRegex.exec(argument); return memberId ? guild.members.fetch(memberId[1]).catch(() => null) : null; } async function resolveByQuery(argument, guild) { argument = argument.length > 5 && argument.at(-5) === "#" ? argument.slice(0, -5) : argument; return (await guild.members.fetch({ query: argument, limit: 1 }).catch(() => null))?.first() ?? null; } //#endregion export { resolveMember }; //# sourceMappingURL=member.mjs.map