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().
Type Parameters
Section titled “Type Parameters”TName extends string = string
The unique plugin name, used as the namespace key in AppContext.
TProvides
Section titled “TProvides”TProvides = unknown
The type returned by setup(), accessible as ctx[name].
TRequires
Section titled “TRequires”TRequires = unknown
The context shape this plugin depends on from prior plugins.
TClient
Section titled “TClient”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.
Properties
Section titled “Properties”client?
Section titled “client?”
optionalclient: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.
Provider?
Section titled “Provider?”
optionalProvider:ComponentType<{children:ReactNode; }>
Defined in: packages/core/src/types.ts:108
Optional client-side React provider, composed into app.Provider.
requires?
Section titled “requires?”
optionalrequires: readonlyCfastPlugin<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()
Section titled “setup()”setup: (
ctx) =>TProvides|Promise<TProvides>
Defined in: packages/core/src/types.ts:104
Called per-request to produce the values this plugin provides.
Parameters
Section titled “Parameters”PluginSetupContext<TRequires, TEnv>
Returns
Section titled “Returns”TProvides | Promise<TProvides>