UNPKG

@sapphire/framework

Version:

Discord bot framework built for advanced and amazing bots.

1 lines 2.6 kB
{"version":3,"sources":["../../../../src/lib/resolvers/member.ts"],"names":[],"mappings":";;;;;;AAMA,eAAsB,aAAA,CACrB,SACA,EAAA,KAAA,EACA,kBACgE,EAAA;AAChE,EAAA,IAAI,MAAS,GAAA,MAAM,WAAY,CAAA,SAAA,EAAW,KAAK,CAAA;AAE/C,EAAI,IAAA,SAAA,CAAU,MAAM,CAAA,IAAK,kBAAoB,EAAA;AAC5C,IAAS,MAAA,GAAA,MAAM,cAAe,CAAA,SAAA,EAAW,KAAK,CAAA;AAAA;AAG/C,EAAA,IAAI,MAAQ,EAAA;AACX,IAAO,OAAA,MAAA,CAAO,GAAG,MAAM,CAAA;AAAA;AAGxB,EAAO,OAAA,MAAA,CAAO,GAAI,CAAA,WAAA,CAAY,mBAAmB,CAAA;AAClD;AAhBsB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAkBtB,eAAe,WAAA,CAAY,UAAkB,KAA2C,EAAA;AACvF,EAAA,MAAM,WAAW,wBAAyB,CAAA,IAAA,CAAK,QAAQ,CAAK,IAAA,cAAA,CAAe,KAAK,QAAQ,CAAA;AACxF,EAAO,OAAA,QAAA,GAAW,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,QAAA,CAAS,CAAC,CAAc,CAAE,CAAA,KAAA,CAAM,MAAM,IAAI,CAAI,GAAA,IAAA;AACrF;AAHe,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AAKf,eAAe,cAAA,CAAe,UAAkB,KAA2C,EAAA;AAC1F,EAAA,QAAA,GAAW,QAAS,CAAA,MAAA,GAAS,CAAK,IAAA,QAAA,CAAS,EAAG,CAAA,EAAE,CAAM,KAAA,GAAA,GAAM,QAAS,CAAA,KAAA,CAAM,CAAG,EAAA,EAAE,CAAI,GAAA,QAAA;AAEpF,EAAA,MAAM,OAAU,GAAA,MAAM,KAAM,CAAA,OAAA,CAAQ,MAAM,EAAE,KAAA,EAAO,QAAU,EAAA,KAAA,EAAO,CAAE,EAAC,CAAE,CAAA,KAAA,CAAM,MAAM,IAAI,CAAA;AACzF,EAAO,OAAA,OAAA,EAAS,OAAW,IAAA,IAAA;AAC5B;AALe,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA","file":"member.mjs","sourcesContent":["import { SnowflakeRegex, UserOrMemberMentionRegex } from '@sapphire/discord-utilities';\nimport { Result } from '@sapphire/result';\nimport { isNullish } from '@sapphire/utilities';\nimport type { Guild, GuildMember, Snowflake } from 'discord.js';\nimport { Identifiers } from '../errors/Identifiers';\n\nexport async function resolveMember(\n\tparameter: string,\n\tguild: Guild,\n\tperformFuzzySearch?: boolean\n): Promise<Result<GuildMember, Identifiers.ArgumentMemberError>> {\n\tlet member = await resolveById(parameter, guild);\n\n\tif (isNullish(member) && performFuzzySearch) {\n\t\tmember = await resolveByQuery(parameter, guild);\n\t}\n\n\tif (member) {\n\t\treturn Result.ok(member);\n\t}\n\n\treturn Result.err(Identifiers.ArgumentMemberError);\n}\n\nasync function resolveById(argument: string, guild: Guild): Promise<GuildMember | null> {\n\tconst memberId = UserOrMemberMentionRegex.exec(argument) ?? SnowflakeRegex.exec(argument);\n\treturn memberId ? guild.members.fetch(memberId[1] as Snowflake).catch(() => null) : null;\n}\n\nasync function resolveByQuery(argument: string, guild: Guild): Promise<GuildMember | null> {\n\targument = argument.length > 5 && argument.at(-5) === '#' ? argument.slice(0, -5) : argument;\n\n\tconst members = await guild.members.fetch({ query: argument, limit: 1 }).catch(() => null);\n\treturn members?.first() ?? null;\n}\n"]}