Skip to content

PluginDefinition

PluginDefinition = object

Defined in: packages/core/src/plugin.ts:46

Declarative configuration for creating a PlatformPlugin via PlatformPlugin.create(). Plugin authors provide this instead of manually wiring RestManager overrides.

baseUrl: string

Defined in: packages/core/src/plugin.ts:51

Base URL for the platform’s API.


optional capabilities: PluginCapabilities

Defined in: packages/core/src/plugin.ts:81

Plugin capability metadata.


optional fetch: typeof globalThis.fetch

Defined in: packages/core/src/plugin.ts:75

Override fetch for testing.


optional handleRateLimit: (response, req, attempt) => Promise<boolean>

Defined in: packages/core/src/plugin.ts:69

Platform-specific rate limit handling (e.g., YouTube 403 quota detection).

Response

RestRequest

number

Promise<boolean>


optional headers: Record<string, string>

Defined in: packages/core/src/plugin.ts:66

Additional default headers for all requests.


matchUrl: (url) => ResolvedUrl | null

Defined in: packages/core/src/plugin.ts:60

URL matcher — pure function, no network calls.

string

ResolvedUrl | null


name: string

Defined in: packages/core/src/plugin.ts:48

Platform identifier (e.g., “youtube”, “twitch”).


optional parseRateLimitHeaders: (headers) => RateLimitInfo | undefined

Defined in: packages/core/src/plugin.ts:72

Parse rate limit info from response headers.

Headers

RateLimitInfo | undefined


rateLimitStrategy: RateLimitStrategy

Defined in: packages/core/src/plugin.ts:54

Rate limiting strategy instance.


optional retry: RetryConfig

Defined in: packages/core/src/plugin.ts:78

Retry configuration.


optional tokenManager: TokenManager

Defined in: packages/core/src/plugin.ts:57

Token manager for auth (optional — some platforms use query param auth).


optional transformRequest: (req) => RestRequest

Defined in: packages/core/src/plugin.ts:63

Transform requests before sending (e.g., inject API key, add headers).

RestRequest

RestRequest