Skip to content

App

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

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

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:195

The permissions config passed to createApp().


Provider: ComponentType<{ children: ReactNode; }>

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

Composed React provider tree from all registered plugins.

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

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

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:161

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:159

Returns the typed, validated environment.

ParsedEnv<TSchema>


init(rawEnv): void

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

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:166

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>(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:180

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

TName extends string

TProvides

TClient

CfastPlugin<TName, TProvides, TPluginContext, TClient>

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