smolter
Types

ClientLoaderFunctionArgs

Client loader arguments with access to the server loader.

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 ClientLoaderFunctionArgs extends LoaderFunctionArgs {
  serverLoader: <T = unknown>() => Promise<T>;
}

Contract

Extends LoaderFunctionArgs with serverLoader<T>(): Promise<T>. The application transport supplies this callback; invoking it requests the registered server loader.

import type { ClientLoaderFunctionArgs } from "@kasperrt/smolter/preact";

interface TaskData {
  title: string;
}

export async function clientLoader({ serverLoader }: ClientLoaderFunctionArgs) {
  const task = await serverLoader<TaskData>();

  return { ...task, source: "server" };
}

Usage and limits

A client loader can return locally sourced data without calling serverLoader. The generic declares the server result contract; it does not validate JSON at runtime. A bare createDataRouter does not install a server transport callback.

Fields

serverLoader

serverLoader: <T = unknown>() => Promise<T>;
View implementation ↗