@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
1 lines • 2.12 kB
Source Map (JSON)
{"version":3,"file":"member.cjs","names":["Result","Identifiers","UserOrMemberMentionRegex","SnowflakeRegex"],"sources":["../../../../src/lib/resolvers/member.ts"],"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"],"mappings":";;;;;;;AAMA,eAAsB,cACrB,WACA,OACA,oBACgE;CAChE,IAAI,SAAS,MAAM,YAAY,WAAW,MAAM;AAEhD,yCAAc,OAAO,IAAI,mBACxB,UAAS,MAAM,eAAe,WAAW,MAAM;AAGhD,KAAI,OACH,QAAOA,yBAAO,GAAG,OAAO;AAGzB,QAAOA,yBAAO,IAAIC,2CAAY,oBAAoB;;AAGnD,eAAe,YAAY,UAAkB,OAA2C;CACvF,MAAM,WAAWC,sDAAyB,KAAK,SAAS,IAAIC,4CAAe,KAAK,SAAS;AACzF,QAAO,WAAW,MAAM,QAAQ,MAAM,SAAS,GAAgB,CAAC,YAAY,KAAK,GAAG;;AAGrF,eAAe,eAAe,UAAkB,OAA2C;AAC1F,YAAW,SAAS,SAAS,KAAK,SAAS,GAAG,GAAG,KAAK,MAAM,SAAS,MAAM,GAAG,GAAG,GAAG;AAGpF,SADgB,MAAM,MAAM,QAAQ,MAAM;EAAE,OAAO;EAAU,OAAO;EAAG,CAAC,CAAC,YAAY,KAAK,GAC1E,OAAO,IAAI"}