@gluonjs/ssr / packages/ssr/src / SsrRequestContext
Interface: SsrRequestContext<Data>
Type Parameters
Data
Data = undefined
Properties
data
readonlydata:Data
router
readonlyrouter:Router
scope
readonlyscope:EffectScope
signal
readonlysignal:AbortSignal
store
readonlystore:StoreManager
url
readonlyurl:string
Example
Access the URL, isolated Router, Store manager, effect scope, and typed loader data owned by one SSR request:
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);