Skip to content

Commit

Permalink
chore(emoji-argument): Apply review changes
Browse files Browse the repository at this point in the history
  • Loading branch information
feralheart committed Jan 10, 2022
1 parent 9ad6feb commit c9d9892
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 22 deletions.
18 changes: 4 additions & 14 deletions src/arguments/CoreEmoji.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
import type { PieceContext } from '@sapphire/pieces';
import type { GuildEmoji } from 'discord.js';
import { Identifiers } from '../lib/errors/Identifiers';
import { GuildEmojiStructure, resolveEmoji } from '../lib/resolvers/emoji';
import { EmojiObject, resolveEmoji } from '../lib/resolvers/emoji';
import { Argument, ArgumentResult } from '../lib/structures/Argument';

export default class extends Argument<GuildEmoji | string> {
export default class extends Argument<EmojiObject | string> {
public constructor(context: PieceContext) {
super(context, { name: 'emoji' });
}

public run(parameter: string): ArgumentResult<GuildEmoji | string> {
public run(parameter: string): ArgumentResult<EmojiObject | string> {
const resolved = resolveEmoji(parameter);
return resolved.success
? this.ok(this.parseSuccess(resolved.value))
? this.ok(resolved.value)
: this.error({
parameter,
identifier: Identifiers.ArgumentEmojiError,
message: 'The argument did not resolve to an emoji.'
});
}

public parseSuccess(resolvedValue: string | GuildEmojiStructure): GuildEmoji | string {
if (resolvedValue instanceof Object) {
const resolvedGuildEmoji = resolvedValue as GuildEmojiStructure;
return this.container.client.emojis.resolve(resolvedGuildEmoji.id)!;
}

return resolvedValue;
}
}
4 changes: 2 additions & 2 deletions src/lib/parsers/Args.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { container } from '@sapphire/pieces';
import type {
CategoryChannel,
DMChannel,
GuildEmoji,
GuildMember,
Message,
NewsChannel,
Expand All @@ -19,6 +18,7 @@ import type { URL } from 'url';
import { ArgumentError } from '../errors/ArgumentError';
import { Identifiers } from '../errors/Identifiers';
import { UserError } from '../errors/UserError';
import type { EmojiObject } from '../resolvers';
import type { Argument, IArgument } from '../structures/Argument';
import type { Command } from '../structures/Command';
import { isSome, maybe, Maybe } from './Maybe';
Expand Down Expand Up @@ -690,7 +690,7 @@ export interface ArgType {
channel: ChannelTypes;
date: Date;
dmChannel: DMChannel;
emoji: GuildEmoji | string;
emoji: EmojiObject | string;
float: number;
guildCategoryChannel: CategoryChannel;
guildChannel: GuildBasedChannelTypes;
Expand Down
12 changes: 6 additions & 6 deletions src/lib/resolvers/emoji.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { EmojiRegex, TwemojiRegex } from '@sapphire/discord-utilities';
import { Snowflake, Util } from 'discord.js';
import { Util } from 'discord.js';
import { Identifiers } from '../errors/Identifiers';
import { err, ok } from '../parsers/Result';

Expand All @@ -13,7 +13,7 @@ export function resolveEmoji(parameter: string) {
const emojiId = EmojiRegex.exec(parameter)?.groups?.id;

if (emojiId) {
const resolved = Util.parseEmoji(emojiId) as GuildEmojiStructure;
const resolved = Util.parseEmoji(emojiId) as EmojiObject;

if (resolved) {
return ok(resolved);
Expand All @@ -23,8 +23,8 @@ export function resolveEmoji(parameter: string) {
return err(Identifiers.ArgumentEmojiError);
}

export interface GuildEmojiStructure {
animated: boolean;
name: string;
id: Snowflake;
export interface EmojiObject {
name: string | null;
id: string | null;
animated?: boolean;
}

0 comments on commit c9d9892

Please sign in to comment.