Function: plugin()
Define a plugin
Param
Since
v0.27.0
Call Signature
ts
function plugin<Context, Id, Deps, Extension, ResolvedDepExtensions, PluginExt, MergedExtensions>(options): PluginWithExtension<Awaited<ReturnType<PluginExt>>>;Define a plugin with extension compatibility and typed dependency extensions
Type Parameters
| Type Parameter | Default type | Description |
|---|---|---|
Context extends ExtendContext | object | A type extending ExtendContext to specify the shape of plugin dependency extensions. |
Id extends string | string | A string type to specify the plugin ID. |
Deps extends readonly (string | PluginDependency)[] | [] | A readonly array of PluginDependency or string to specify the plugin dependencies. |
Extension extends object | object | A type to specify the shape of the plugin extension object. |
ResolvedDepExtensions extends GunshiParams<{ args: Args; extensions: { }; }> | GunshiParams<{ args: Args; extensions: InferDependencyExtensions<Deps, Context>; }> | - |
PluginExt extends PluginExtension<Extension, DefaultGunshiParams> | PluginExtension<Extension, ResolvedDepExtensions> | - |
MergedExtensions extends GunshiParams<{ args: Args; extensions: { }; }> | GunshiParams<{ args: Args; extensions: MergeExtension<Id, InferDependencyExtensions<Deps, Context>, Awaited<ReturnType<PluginExt>>>; }> | - |
Parameters
| Parameter | Type | Description |
|---|---|---|
options | { dependencies?: Deps; extension: PluginExt; id: Id; name?: string; onExtension?: OnPluginExtension<MergedExtensions>; setup?: (ctx) => Awaitable<void>; } | plugin options |
options.dependencies? | Deps | - |
options.extension | PluginExt | - |
options.id | Id | - |
options.name? | string | - |
options.onExtension? | OnPluginExtension<MergedExtensions> | - |
options.setup? | (ctx) => Awaitable<void> | - |
Returns
PluginWithExtension<Awaited<ReturnType<PluginExt>>>
A defined plugin with extension
Since
v0.27.0
Call Signature
ts
function plugin<Context, Id, Deps, Extension, ResolvedDepExtensions, PluginExt, MergedExtensions>(options): PluginWithoutExtension<{
}>;Define a plugin without extension and typed dependency extensions
Type Parameters
| Type Parameter | Default type | Description |
|---|---|---|
Context extends ExtendContext | object | A type extending ExtendContext to specify the shape of plugin dependency extensions. |
Id extends string | string | A string type to specify the plugin ID. |
Deps extends readonly (string | PluginDependency)[] | [] | A readonly array of PluginDependency or string to specify the plugin dependencies. |
Extension extends Record<string, unknown> | object | A type to specify the shape of the plugin extension object. |
ResolvedDepExtensions extends GunshiParams<{ args: Args; extensions: { }; }> | GunshiParams<{ args: Args; extensions: InferDependencyExtensions<Deps, Context>; }> | - |
PluginExt extends PluginExtension<Extension, DefaultGunshiParams> | PluginExtension<Extension, ResolvedDepExtensions> | - |
MergedExtensions extends GunshiParams<{ args: Args; extensions: { }; }> | GunshiParams<{ args: Args; extensions: MergeExtension<Id, InferDependencyExtensions<Deps, Context>, Awaited<ReturnType<PluginExt>>>; }> | - |
Parameters
| Parameter | Type | Description |
|---|---|---|
options | { dependencies?: Deps; id: Id; name?: string; onExtension?: OnPluginExtension<MergedExtensions>; setup?: (ctx) => Awaitable<void>; } | plugin options without extension |
options.dependencies? | Deps | - |
options.id | Id | - |
options.name? | string | - |
options.onExtension? | OnPluginExtension<MergedExtensions> | - |
options.setup? | (ctx) => Awaitable<void> | - |
Returns
A defined plugin without extension
Since
v0.27.0
