createPlugin
Signature
export declare function createPlugin<const Name extends string, const I extends readonly AnySeyfertPlugin[] = readonly [], E extends object = {}, C extends object = {}, M extends PluginMiddlewareMap = {}, const Meta = never, const Extra extends object = {}>(plugin: CreatePluginInputWithMeta<Name, I, E, C, M, Meta> & Extra): CreatePluginOutputWithMeta<Name, I, E, C, M, Meta> & CreatePluginExtra<Extra>;Private types
CreatePluginInputWithMetaTypeAlias
type CreatePluginInputWithMeta<Name extends string, I extends readonly AnySeyfertPlugin[], E extends object, C extends object, M extends PluginMiddlewareMap, Meta> = CreatePluginInputBase<Name, I, E, C, M> & { readonly meta: Meta;};CreatePluginOutputWithMetaTypeAlias
type CreatePluginOutputWithMeta<Name extends string, I extends readonly AnySeyfertPlugin[], E extends object, C extends object, M extends PluginMiddlewareMap, Meta> = CreatePluginOutputBase<Name, I, E, C, M> & { readonly meta: Meta;};CreatePluginExtraTypeAlias
type CreatePluginExtra<T extends object> = Omit<T, CreatePluginReservedKey>;CreatePluginInputBaseTypeAlias
type CreatePluginInputBase<Name extends string, I extends readonly AnySeyfertPlugin[], E extends object, C extends object, M extends PluginMiddlewareMap> = { readonly name: Name; readonly instanceId?: string; readonly imports?: I; readonly requires?: readonly PluginRequirementInput[]; readonly client?: PluginClientMap<E, I>; readonly ctx?: PluginContextMap<C, I, E>; readonly middlewares?: M; readonly globalMiddlewares?: readonly (keyof M & string)[]; options?(current: Readonly<BaseClientOptions>): SeyfertPluginOptions; register?(api: SeyfertPluginApi<M, ExtendOf<I> & E>): void; setup?(client: SeyfertPluginClient & ExtendOf<I> & E, api?: SeyfertPluginApi<M, ExtendOf<I> & E>): Awaitable<void>; teardown?(client: SeyfertPluginClient & ExtendOf<I> & E, api?: SeyfertPluginTeardownApi): Awaitable<void>;};CreatePluginOutputBaseTypeAlias
type CreatePluginOutputBase<Name extends string, I extends readonly AnySeyfertPlugin[], E extends object, C extends object, M extends PluginMiddlewareMap> = Omit<SeyfertPlugin<E, C, I, M>, 'meta'> & { readonly name: Name; readonly instanceId?: string; readonly imports?: I; readonly requires?: readonly PluginRequirementInput[]; readonly client?: PluginClientMap<E, I>; readonly ctx?: PluginContextMap<C, I, E>; readonly middlewares?: M; readonly globalMiddlewares?: readonly (keyof M & string)[];};CreatePluginReservedKeyTypeAlias
type CreatePluginReservedKey = keyof CreatePluginInputBase<string, readonly AnySeyfertPlugin[], object, object, PluginMiddlewareMap> | 'meta';Members
This export does not declare public properties or methods in the generated declaration file.