Skip to content

App

App<TSchema, TPermissions, TPluginContext, TClientContext> = object

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

The app object returned by createApp() and extended by .use() calls.

Provides methods for environment initialization, per-request context creation, route handler wrappers, plugin registration, and a composed React provider.

TSchema extends Schema

The env schema type.

TPermissions extends Permissions

The permissions definition type.

TPluginContext

The accumulated plugin context type.

TClientContext

The accumulated client-side context type.

permissions: TPermissions

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

The permissions config passed to createApp().


Provider: ComponentType<{ children: ReactNode; }>

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

Composed React provider tree from all registered plugins.

action<T>(fn): (args) => Promise<T>

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

Convenience wrapper for React Router actions that auto-creates the app context.

T

(ctx, args) => T | Promise<T>

(args): Promise<T>

RouteArgs

Promise<T>


context(request, context?): Promise<AppContext<TSchema, TPluginContext>>

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

Builds the per-request context by running each plugin’s setup() in order.

Request

unknown

Promise<AppContext<TSchema, TPluginContext>>


env(): ParsedEnv<TSchema>

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

Returns the typed, validated environment.

ParsedEnv<TSchema>


init(rawEnv): void

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

Validates and initializes environment bindings. Call once in the Workers entry point.

Record<string, unknown>

void


loader<T>(fn): (args) => Promise<T>

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

Convenience wrapper for React Router loaders that auto-creates the app context.

T

(ctx, args) => T | Promise<T>

(args): Promise<T>

RouteArgs

Promise<T>


use<TName, TProvides, TClient, TEnv>(plugin): App<TSchema, TPermissions, TPluginContext & { [K in string]: TProvides }, TClientContext & TClient extends object ? { [K in string]: TClient } : unknown>

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

Registers a plugin, extending the app’s context type. Throws on duplicate names.

TName extends string

TProvides

TClient

TEnv = any

CfastPlugin<TName, TProvides, TPluginContext, TClient, TEnv>

App<TSchema, TPermissions, TPluginContext & { [K in string]: TProvides }, TClientContext & TClient extends object ? { [K in string]: TClient } : unknown>