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 Extra extends object = {}>(plugin: CreatePluginInputWithoutMeta<Name, I, E, C, M> & Extra): CreatePluginOutputBase<Name, I, E, C, M> & CreatePluginExtra<Extra>;Private types
CreatePluginInputWithoutMetaTypeAlias
type CreatePluginInputWithoutMeta<Name extends string, I extends readonly AnySeyfertPlugin[], E extends object, C extends object, M extends PluginMiddlewareMap> = CreatePluginInputBase<Name, I, E, C, M> & { readonly meta?: never;};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)[];};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>;};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.