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.