Class: abstract
Argument<T, Options>
The base argument class. This class is abstract and is to be extended by subclasses implementing the methods. In Sapphire's workflow, arguments are called when using Args's methods (usually used inside Commands by default).
Examples
// TypeScript:
import { Argument } from '@sapphire/framework';
import { URL } from 'node:url';
// Define a class extending `Argument`, then export it.
// NOTE: You can use `export default` or `export =` too.
export class CoreArgument extends Argument<URL> {
public constructor(context: Argument.LoaderContext) {
super(context, { name: 'hyperlink', aliases: ['url'] });
}
public run(argument: string, context: Argument.Context): Argument.Result<URL> {
try {
return this.ok(new URL(argument));
} catch {
return this.error({
parameter: argument,
context,
identifier: 'ArgumentHyperlinkInvalidURL',
message: 'The argument did not resolve to a valid URL.'
});
}
}
}
// Augment the ArgType structure so `args.pick('url')`, `args.repeat('url')`
// and others have a return type of `URL`.
declare module '@sapphire/framework' {
export interface ArgType {
url: URL;
}
}
// JavaScript:
const { Argument } = require('@sapphire/framework');
// Define a class extending `Argument`, then export it.
module.exports = class CoreArgument extends Argument {
constructor(context) {
super(context, { name: 'hyperlink', aliases: ['url'] });
}
run(argument, context) {
try {
return this.ok(new URL(argument));
} catch {
return this.error({
parameter: argument,
context,
identifier: 'ArgumentHyperlinkInvalidURL',
message: 'The argument did not resolve to a valid URL.'
});
}
}
}
Extends
AliasPiece
<Options
,"arguments"
>
Type Parameters
Type Parameter | Default type |
---|---|
T | unknown |
Options extends Options | Options |
Implements
IArgument
<T
>
Constructors
new Argument()
new Argument<
T
,Options
>(context
:LoaderContext
,options
:Options
):Argument
<T
,Options
>
Parameters
Parameter | Type |
---|---|
context | LoaderContext |
options | Options |
Returns
Argument
<T
, Options
>
Overrides
AliasPiece<Options, 'arguments'>.constructor
Defined in
projects/framework/src/lib/structures/Argument.ts:108
Methods
error()
Constructs an Err result containing an ArgumentError with a custom type.
Parameters
Parameter | Type | Description |
---|---|---|
options | Omit <Options <T >, "argument" > | The options to pass to the ArgumentError. |
Returns
Result
<T
>
Defined in
projects/framework/src/lib/structures/Argument.ts:126
ok()
ok(
value
:T
):Result
<T
>
Wraps a value into a successful value.
Parameters
Parameter | Type | Description |
---|---|---|
value | T | The value to wrap. |
Returns
Result
<T
>
Defined in
projects/framework/src/lib/structures/Argument.ts:118
run()
abstract
run(parameter
:string
,context
:Context
<T
>):AwaitableResult
<T
>
The method which is called when invoking the argument.
Parameters
Parameter | Type | Description |
---|---|---|
parameter | string | The string parameter to parse. |
context | Context <T > | The context for the method call, contains the message, command, and other options. |