@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
1 lines • 1.58 kB
Source Map (JSON)
{"version":3,"file":"role.mjs","names":[],"sources":["../../../../src/lib/resolvers/role.ts"],"sourcesContent":["import { RoleMentionRegex, SnowflakeRegex } from '@sapphire/discord-utilities';\nimport { Result } from '@sapphire/result';\nimport type { Guild, Role, Snowflake } from 'discord.js';\nimport { Identifiers } from '../errors/Identifiers';\n\nexport async function resolveRole(parameter: string, guild: Guild): Promise<Result<Role, Identifiers.ArgumentRoleError>> {\n\tconst role = (await resolveById(parameter, guild)) ?? resolveByQuery(parameter, guild);\n\n\tif (role) {\n\t\treturn Result.ok(role);\n\t}\n\n\treturn Result.err(Identifiers.ArgumentRoleError);\n}\n\nasync function resolveById(argument: string, guild: Guild): Promise<Role | null> {\n\tconst roleId = RoleMentionRegex.exec(argument) ?? SnowflakeRegex.exec(argument);\n\treturn roleId ? guild.roles.fetch(roleId[1] as Snowflake) : null;\n}\n\nfunction resolveByQuery(argument: string, guild: Guild): Role | null {\n\tconst lowerCaseArgument = argument.toLowerCase();\n\treturn guild.roles.cache.find((role) => role.name.toLowerCase() === lowerCaseArgument) ?? null;\n}\n"],"mappings":";;;;;AAKA,eAAsB,YAAY,WAAmB,OAAoE;CACxH,MAAM,OAAQ,MAAM,YAAY,WAAW,MAAM,IAAK,eAAe,WAAW,MAAM;AAEtF,KAAI,KACH,QAAO,OAAO,GAAG,KAAK;AAGvB,QAAO,OAAO,IAAI,YAAY,kBAAkB;;AAGjD,eAAe,YAAY,UAAkB,OAAoC;CAChF,MAAM,SAAS,iBAAiB,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS;AAC/E,QAAO,SAAS,MAAM,MAAM,MAAM,OAAO,GAAgB,GAAG;;AAG7D,SAAS,eAAe,UAAkB,OAA2B;CACpE,MAAM,oBAAoB,SAAS,aAAa;AAChD,QAAO,MAAM,MAAM,MAAM,MAAM,SAAS,KAAK,KAAK,aAAa,KAAK,kBAAkB,IAAI"}