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 |
---|---|
Context extends ExtendContext | object |
Id extends string | string |
Deps extends readonly (string | PluginDependency )[] | [] |
Extension extends object | 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 |
---|---|
Context extends ExtendContext | object |
Id extends string | string |
Deps extends readonly (string | PluginDependency )[] | [] |
Extension extends Record <string , unknown > | 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