Skip to content
Classcore/pluginv0.11.0

PluginHost

Base class for a plugin host.

abstract class PluginHost<
    BotT extends Transport,
    BotRt extends Runtime
> implements CoreBase

Member visibility

Filter class members by access level.

constructor

Constructs a new instance of the PluginHost class

PluginHost(transport: BotT, runtime: BotRt)

Showing members with Protected visibility and higher.

applicationId

public abstract readonly applicationId: string

bus

public abstract readonly bus: Bus

config

public abstract readonly config: Config

rateLimiter

public abstract readonly rateLimiter: IRateLimiter

rest

public abstract readonly rest: REST

attach()

Attaches a plugin under key. Read the instance back as core[key]. seedcord codegen writes the Core augmentation that types it there.

Put one dot in the key to nest the plugin under a group. 'services.users' reads back as core.services.users. Each name holds one plugin or one group.

Startup runs each plugin's init() in attach order within its phase. A node bot starts in start(). An edge bot starts on its first request.

Attaching a plugin whose transport or runtime differs from this host fails to compile. Your constructor takes CoreBase as its first parameter (you don't need to pass it though). A narrower one fails to compile here.

public attach<Key, Ctor>(
    this: this,
    key: AttachKeyAssert<Key, this>,
    Plugin: AttachableCtor<Ctor, BotT, BotRt>,
    args: PluginArgs<Ctor>
): this & Attached<Key, InstanceType<Ctor>>
Parameter: key

Also the channel the plugin logs on, dots included.

Parameter: args

Whatever your constructor takes after the host.

Throws:

A SeedcordError when you attach after the bot has started.

Throws:

A SeedcordTypeError when key is taken, reserved, or malformed.

Throws:

A SeedcordTypeError when the plugin extends Plugin from another copy of @seedcord/core.

Throws:

A SeedcordTypeError when the plugin's transport or runtime differs from this host and the types were bypassed.