Server Loader

Server Loader: Return Object

A server-only loader is defined in a separate .ts file. When present, it runs instead of any client loader, giving you access to server-side resources like databases, file systems, and environment variables that should never be exposed to the client.

When to Use Server-Only Loaders

  • Accessing databases or server-side services directly
  • Reading secrets, API keys, or environment variables
  • Performing authentication/authorization checks
  • Loading data that requires server-side processing

Loaded Data

Message
Data loaded from the server!
Timestamp
2026-01-11T20:44:48.577Z
Server-Only Data
Server PID: 360

Server Loader (object.ts)

import type { RouteLoaderArgs } from "@udibo/juniper";

import type { ServerLoaderData } from "./object.tsx";

export async function loader(
  _args: RouteLoaderArgs,
): Promise<ServerLoaderData> {
  await new Promise((resolve) => setTimeout(resolve, 300));
  return {
    message: "Data loaded from the server!",
    timestamp: new Date().toISOString(),
    serverOnly: `Server PID: ${Deno.pid}`,
  };
}

Note: The serverOnly field contains the server process ID, demonstrating access to server-only resources. This data is never bundled into the client.