Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(*)!: absorb changes from result@2.0.0 #468

Merged
merged 31 commits into from
Aug 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
825de57
chore(deps): use result 2
c43721 Jun 26, 2022
2acbc43
chore(*): wip, always
c43721 Jul 22, 2022
1af9fe1
chore(deps): update result
c43721 Jul 22, 2022
7570f65
feat: do something I guess?
c43721 Jul 22, 2022
de03051
fix: resolve remaining errors
samfundev Jul 26, 2022
89732ac
feat: move to @sapphire/lexure
samfundev Jul 27, 2022
7b12859
fix: abcdefg
c43721 Jul 28, 2022
1742bf2
fix: remove woozy any
c43721 Jul 28, 2022
d171f6f
chore: extra debug for stuff module
favna Jul 29, 2022
5356cf1
fix: write better result/lexure code based on review
samfundev Jul 28, 2022
96c0c2e
feat: mapErrInto
samfundev Jul 29, 2022
bcae062
fix: remove more unwrapErr
samfundev Jul 29, 2022
1032850
fix: make Argument.ok consistent
samfundev Jul 29, 2022
27fc4a8
chore: this will definitely break in 2088 (todo)
favna Jul 30, 2022
756226e
feat: use more inspectErr
samfundev Aug 1, 2022
9ec5b34
fix: precondition logic
samfundev Aug 1, 2022
d87e69c
feat: mapInto for dmChannels
samfundev Aug 1, 2022
7f21dc9
feat: apply suggestions from code review
c43721 Aug 3, 2022
b9a8863
fix: add context to emoji arguments
samfundev Aug 3, 2022
d06c289
fix: use .leading as argument separator
samfundev Aug 3, 2022
955def5
fix: .reset() is the right way to reset the parser
samfundev Aug 3, 2022
5ab78c7
fix: apply suggestions from code review
c43721 Aug 3, 2022
0ad5069
fix: more suggestions because dumb github
c43721 Aug 3, 2022
868f63b
Update src/lib/structures/InteractionHandlerStore.ts
favna Aug 4, 2022
1ecbe72
Update src/lib/structures/InteractionHandlerStore.ts
favna Aug 4, 2022
f1b489c
fix: resolved issues
kyranet Aug 4, 2022
63a059f
chore: yes, i was being sarcastic.
favna Aug 4, 2022
3b62059
docs: fixy wixy
favna Aug 4, 2022
df98abd
chore: add `InteractionHandler.Context`
favna Aug 4, 2022
3d6ee18
fix: bug fixes
favna Aug 4, 2022
83c2458
chore: please enter the commit message for your changes. lines starti…
favna Aug 4, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@
"@discordjs/builders": "^0.16.0",
"@sapphire/discord-utilities": "^2.11.5",
"@sapphire/discord.js-utilities": "^4.11.3",
"@sapphire/lexure": "^1.0.1",
"@sapphire/pieces": "^3.3.5",
"@sapphire/ratelimits": "^2.4.4",
"@sapphire/result": "^1.1.1",
"@sapphire/result": "^2.2.0",
"@sapphire/stopwatch": "^1.4.1",
"@sapphire/utilities": "^3.8.0",
"@types/object-hash": "^2.2.1",
"lexure": "^0.17.0",
"object-hash": "^3.0.0",
"tslib": "^2.4.0"
},
Expand All @@ -53,11 +53,11 @@
"@types/jest": "^28.1.6",
"@types/node": "^18.6.3",
"@types/ws": "^8.5.3",
"@typescript-eslint/eslint-plugin": "^5.31.0",
"@typescript-eslint/parser": "^5.31.0",
"@typescript-eslint/eslint-plugin": "^5.32.0",
"@typescript-eslint/parser": "^5.32.0",
"cz-conventional-changelog": "^3.3.0",
"discord.js": "^13.9.2",
"eslint": "^8.20.0",
"eslint": "^8.21.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"gen-esm-wrapper": "^1.1.3",
Expand All @@ -70,7 +70,7 @@
"rollup": "^2.77.2",
"rollup-plugin-version-injector": "^1.3.3",
"ts-jest": "^28.0.7",
"typedoc": "^0.23.9",
"typedoc": "^0.23.10",
"typedoc-plugin-djs-links": "^1.2.0",
"typedoc-plugin-mdn-links": "^2.0.0",
"typescript": "^4.7.4"
Expand Down
15 changes: 8 additions & 7 deletions src/arguments/CoreBoolean.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@ export class CoreArgument extends Argument<boolean> {

public run(parameter: string, context: { readonly truths?: string[]; falses?: readonly string[] } & Argument.Context): Argument.Result<boolean> {
const resolved = resolveBoolean(parameter, { truths: context.truths, falses: context.falses });
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The argument did not resolve to a boolean.',
context
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The argument did not resolve to a boolean.',
context
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ export class CoreArgument extends Argument<ChannelTypes> {

public run(parameter: string, context: Argument.Context): Argument.Result<ChannelTypes> {
const resolved = resolveChannel(parameter, context.message);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The argument did not resolve to a channel.',
context
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The argument did not resolve to a channel.',
context
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreDMChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ export class CoreArgument extends Argument<DMChannel> {

public run(parameter: string, context: Argument.Context): Argument.Result<DMChannel> {
const resolved = resolveDMChannel(parameter, context.message);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The argument did not resolve to a DM channel.',
context
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The argument did not resolve to a DM channel.',
context
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreDate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ export class CoreArgument extends Argument<Date> {

public run(parameter: string, context: Argument.Context): Argument.Result<Date> {
const resolved = resolveDate(parameter, { minimum: context.minimum, maximum: context.maximum });
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: this.messages[resolved.error](context),
context
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: this.messages[identifier](context),
context
})
);
}
}
18 changes: 9 additions & 9 deletions src/arguments/CoreEmoji.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import type { PieceContext } from '@sapphire/pieces';
import { Identifiers } from '../lib/errors/Identifiers';
import { EmojiObject, resolveEmoji } from '../lib/resolvers/emoji';
import { Argument, ArgumentResult } from '../lib/structures/Argument';

Expand All @@ -8,14 +7,15 @@ export class CoreArgument extends Argument<EmojiObject> {
super(context, { name: 'emoji' });
}

public run(parameter: string): ArgumentResult<EmojiObject> {
public run(parameter: string, context: Argument.Context): ArgumentResult<EmojiObject> {
const resolved = resolveEmoji(parameter);
return resolved.success
? this.ok(resolved.value)
: this.error({
parameter,
identifier: Identifiers.ArgumentEmojiError,
message: 'The argument did not resolve to an emoji.'
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The argument did not resolve to an emoji.',
context
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreEnum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ export class CoreArgument extends Argument<string> {
context: { readonly enum?: string[]; readonly caseInsensitive?: boolean } & Argument.Context
): Argument.Result<string> {
const resolved = resolveEnum(parameter, { enum: context.enum, caseInsensitive: context.caseInsensitive });
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: `The argument must have one of the following values: ${context.enum?.join(', ')}`,
context
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: `The argument must have one of the following values: ${context.enum?.join(', ')}`,
context
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreFloat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ export class CoreArgument extends Argument<number> {

public run(parameter: string, context: Argument.Context): Argument.Result<number> {
const resolved = resolveFloat(parameter, { minimum: context.minimum, maximum: context.maximum });
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: this.messages[resolved.error](context),
context
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: this.messages[identifier](context),
context
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildCategoryChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<CategoryChannel> {
}

const resolved = resolveGuildCategoryChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The argument did not resolve to a valid server category channel.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The argument did not resolve to a valid server category channel.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<GuildBasedChannelTypes> {
}

const resolved = resolveGuildChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The argument did not resolve to a valid server channel.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The argument did not resolve to a valid server channel.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildNewsChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<NewsChannel> {
}

const resolved = resolveGuildNewsChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The given argument did not resolve to a valid announcements channel.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The given argument did not resolve to a valid announcements channel.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildNewsThreadChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<ThreadChannel> {
}

const resolved = resolveGuildNewsThreadChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The given argument did not resolve to a valid announcements thread.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The given argument did not resolve to a valid announcements thread.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildPrivateThreadChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<ThreadChannel> {
}

const resolved = resolveGuildPrivateThreadChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The given argument did not resolve to a valid private thread.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The given argument did not resolve to a valid private thread.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildPublicThreadChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<ThreadChannel> {
}

const resolved = resolveGuildPublicThreadChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The given argument did not resolve to a valid public thread.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The given argument did not resolve to a valid public thread.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildStageVoiceChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<StageChannel> {
}

const resolved = resolveGuildStageVoiceChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The given argument did not resolve to a valid stage voice channel.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The given argument did not resolve to a valid stage voice channel.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildTextChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<TextChannel> {
}

const resolved = resolveGuildTextChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The given argument did not resolve to a valid text channel.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The given argument did not resolve to a valid text channel.',
context: { ...context, guild }
})
);
}
}
15 changes: 8 additions & 7 deletions src/arguments/CoreGuildThreadChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export class CoreArgument extends Argument<ThreadChannel> {
}

const resolved = resolveGuildThreadChannel(parameter, guild);
if (resolved.success) return this.ok(resolved.value);
return this.error({
parameter,
identifier: resolved.error,
message: 'The given argument did not resolve to a valid thread.',
context: { ...context, guild }
});
return resolved.mapErrInto((identifier) =>
this.error({
parameter,
identifier,
message: 'The given argument did not resolve to a valid thread.',
context: { ...context, guild }
})
);
}
}
Loading