smolter
Types

RouteModule

The data and rendering exports belonging to a route.

Compatibility

ReactAvailable in this renderer's browser integration.
React SSRAvailable to this renderer's SSR integration; browser event handlers run after hydration.
PreactAvailable in this renderer's browser integration.
Preact SSRAvailable to this renderer's SSR integration; browser event handlers run after hydration.

Import from @kasperrt/smolter/react @kasperrt/smolter/preact

Signature

interface RouteModule {
  /** Stable identifier for targeted revalidation; defaults to the path. */
  id?: string;
  default?: unknown;
  HydrateFallback?: unknown;
  ErrorBoundary?: unknown;
  loader?: DataFunction;
  action?: DataFunction;
  /** Browser read: await the top-level result, retaining nested promises for deferred UI. */
  clientLoader?(args: ClientLoaderArgs): unknown;
  clientAction?(args: ClientActionArgs): unknown;
  shouldRevalidate?: (args: RevalidationArgs) => boolean;
}

Usage

The data and rendering exports belonging to a route. loader/action are server handlers with transport; clientLoader/clientAction are browser handlers. Rendering uses default, HydrateFallback, and ErrorBoundary. A manual browser table executes functions locally unless serverRoute supplies proxies.

import * as module from "./routes/tasks/route";
const route = defineRoute("/tasks", module);

Fields

id

id?: string;

Stable identifier for targeted revalidation; defaults to the path.

default

default?: unknown;

HydrateFallback

HydrateFallback?: unknown;

ErrorBoundary

ErrorBoundary?: unknown;

loader

loader?: DataFunction;

action

action?: DataFunction;

clientLoader

clientLoader?(args: ClientLoaderArgs): unknown;

Browser read: await the top-level result, retaining nested promises for deferred UI.

clientAction

clientAction?(args: ClientActionArgs): unknown;

shouldRevalidate

shouldRevalidate?: (args: RevalidationArgs) => boolean;
View implementation ↗