Skip to content

CfastPlugin

CfastPlugin<TName, TProvides, TRequires, TClient, TEnv> = object

Defined in: packages/core/src/types.ts:85

A cfast plugin definition created by definePlugin.

Plugins provide server-side context values via setup(), optional client-side React providers, and optional client-side values accessible via useApp().

TName extends string = string

The unique plugin name, used as the namespace key in AppContext.

TProvides = unknown

The type returned by setup(), accessible as ctx[name].

TRequires = unknown

The context shape this plugin depends on from prior plugins.

TClient = unknown

Client-side values exposed via useApp().

TEnv = Record<string, unknown>

Env shape seen by setup(). Defaults to the loose record shape so non-specialised plugins do not need to parameterise this slot.

optional client: TClient

Defined in: packages/core/src/types.ts:110

Optional client-side values exposed via useApp().


name: TName

Defined in: packages/core/src/types.ts:93

Unique identifier used as the namespace key in the app context.


optional Provider: ComponentType<{ children: ReactNode; }>

Defined in: packages/core/src/types.ts:108

Optional client-side React provider, composed into app.Provider.


optional requires: readonly CfastPlugin<string, unknown, any, unknown, any>[]

Defined in: packages/core/src/types.ts:102

Optional list of plugin references this plugin depends on.

When supplied, setup(ctx) is automatically typed with the union of each required plugin’s provides, and app.use(this) will throw at registration time if any of these plugins have not yet been registered.


setup: (ctx) => TProvides | Promise<TProvides>

Defined in: packages/core/src/types.ts:104

Called per-request to produce the values this plugin provides.

PluginSetupContext<TRequires, TEnv>

TProvides | Promise<TProvides>