Skip to content

@gluonjs/core / packages/ssr/src / SsrRequestContext

Interface: SsrRequestContext<Data> ​

Type Parameters ​

Data ​

Data = undefined

Properties ​

data ​

readonly data: Data


router ​

readonly router: Router


scope ​

readonly scope: EffectScope


signal ​

readonly signal: AbortSignal


store ​

readonly store: StoreManager


tenant? ​

readonly optional tenant?: TenantContext<TenantJsonValue>

Request-local tenant data; never shared between renderRequest() calls.


url ​

readonly url: string

Example ​

Access the URL, isolated Router, Store manager, effect scope, and typed loader data owned by one SSR request:

ts
import { createApp, html } from '@gluonjs/core';
import { renderRequest, type SsrRequestContext, type SsrRequestOptions, type SsrRequestResult } from '@gluonjs/ssr';

type ReportData = { title: string };
const options = {
  url: '/reports/41',
  routes: [{ path: '/reports/:id', name: 'report' }],
  load: ({ router }: Omit<SsrRequestContext<ReportData>, 'data'>) => ({ title: `Report ${router.currentRoute.value.params.id}` }),
  createApp: ({ data }) => createApp(() => html`<main>${data.title}</main>`),
} satisfies SsrRequestOptions<ReportData>;

const response: SsrRequestResult = await renderRequest(options);
console.log(response.html, response.stateScript);

Version-matched documentation. Examples are checked against the public package contracts.