@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
27 lines (25 loc) • 1.13 kB
JavaScript
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