Interface: PluginContext<G>
Gunshi plugin context interface.
Since
v0.27.0
Signature
ts
export interface PluginContext<G extends GunshiParamsConstraint = DefaultGunshiParams>Type Parameters
| Name | Description |
|---|---|
G extends GunshiParamsConstraint = DefaultGunshiParams | A type extending GunshiParams to specify the shape of command parameters. |
Properties
| Name | Type | Description |
|---|---|---|
globalOptions (readonly) | Map<string, ArgSchema> | Get the global options |
subCommands (readonly) | ReadonlyMap<string, Command<G> | LazyCommand<G>> | Get the registered sub commands |
Methods
addCommand()
ts
addCommand(name: string, command: Command<G> | LazyCommand<G>): void;Add a sub command.
Parameters
| Name | Type | Description |
|---|---|---|
name | string | Command name |
command | Command<G> | LazyCommand<G> | Command definition |
Returns
void
addGlobalOption()
ts
addGlobalOption(name: string, schema: ArgSchema): void;Add a global option.
Parameters
| Name | Type | Description |
|---|---|---|
name | string | An option name |
schema | ArgSchema | An ArgSchema for the option |
Returns
void
decorateCommand()
ts
decorateCommand<L extends Record<string, unknown> = DefaultGunshiParams['extensions']>(decorator: (
baseRunner: (
ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>
) => Awaitable<void | string>
) => (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Awaitable<void | string>): void;Decorate the command execution.
Decorators are applied in reverse order (last registered is executed first).
Type Parameters
| Name | Description |
|---|---|
L extends Record<string, unknown> = DefaultGunshiParams['extensions'] | An extensions type to specify the shape of CommandContext's extensions. |
Parameters
| Name | Type | Description |
|---|---|---|
decorator | (baseRunner: (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Awaitable<void | string>) => (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Awaitable<void | string> | A decorator function that wraps the command runner |
Returns
void
decorateHeaderRenderer()
ts
decorateHeaderRenderer<L extends Record<string, unknown> = DefaultGunshiParams['extensions']>(decorator: (
baseRenderer: (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Promise<string>,
ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>
) => Promise<string>): void;Decorate the header renderer.
Type Parameters
| Name | Description |
|---|---|
L extends Record<string, unknown> = DefaultGunshiParams['extensions'] | An extensions type to specify the shape of CommandContext's extensions. |
Parameters
| Name | Type | Description |
|---|---|---|
decorator | (baseRenderer: (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Promise<string>, ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Promise<string> | A decorator function that wraps the base header renderer. |
Returns
void
decorateUsageRenderer()
ts
decorateUsageRenderer<L extends Record<string, unknown> = DefaultGunshiParams['extensions']>(decorator: (
baseRenderer: (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Promise<string>,
ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>
) => Promise<string>): void;Decorate the usage renderer.
Type Parameters
| Name | Description |
|---|---|
L extends Record<string, unknown> = DefaultGunshiParams['extensions'] | An extensions type to specify the shape of CommandContext's extensions. |
Parameters
| Name | Type | Description |
|---|---|---|
decorator | (baseRenderer: (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Promise<string>, ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>) => Promise<string> | A decorator function that wraps the base usage renderer. |
Returns
void
decorateValidationErrorsRenderer()
ts
decorateValidationErrorsRenderer<
L extends Record<string, unknown> = DefaultGunshiParams['extensions']
>(decorator: (
baseRenderer: (
ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>,
error: AggregateError
) => Promise<string>,
ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>,
error: AggregateError
) => Promise<string>): void;Decorate the validation errors renderer.
Type Parameters
| Name | Description |
|---|---|
L extends Record<string, unknown> = DefaultGunshiParams['extensions'] | An extensions type to specify the shape of CommandContext's extensions. |
Parameters
| Name | Type | Description |
|---|---|---|
decorator | (baseRenderer: (ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>, error: AggregateError) => Promise<string>, ctx: Readonly<CommandContext<MergeGunshiExtensions<G, L>>>, error: AggregateError) => Promise<string> | A decorator function that wraps the base validation errors renderer. |
Returns
void
hasCommand()
ts
hasCommand(name: string): boolean;Check if a command exists.
Parameters
| Name | Type | Description |
|---|---|---|
name | string | Command name |
Returns
boolean — True if the command exists, false otherwise
