@gluonjs/ssr


@gluonjs/ssr / packages/ssr/src/static / StaticGenerationOptions

Interface: StaticGenerationOptions

Properties

assets

readonly assets: AssetManifest


clean?

readonly optional clean?: boolean


document?

readonly optional document?: (result, url) => string

Parameters

result

SsrRequestResult

url

string

Returns

string


dynamicRoutes?

readonly optional dynamicRoutes?: readonly string[]


outputDirectory

readonly outputDirectory: string


render

readonly render: (url) => Promise<SsrRequestResult>

Parameters

url

string

Returns

Promise<SsrRequestResult>


routes

readonly routes: readonly string[]

Example

Configure static output ownership, public assets, concrete routes, dynamic fallbacks, and the request renderer used for every page:

ts
import { createApp, html } from '@gluonjs/core';
import { renderRequest } from '@gluonjs/ssr';
import { generateStaticSite, type StaticGenerationOptions, type StaticGenerationResult } from '@gluonjs/ssr/static';

const options = {
  routes: ['/', '/about'],
  dynamicRoutes: ['/products/:id'],
  outputDirectory: 'dist-static',
  assets: { entry: '/assets/app.js' },
  render: (url: string) => renderRequest({
    url,
    createApp: ({ url: currentUrl }) => createApp(() => html`<main>${currentUrl}</main>`),
  }),
} satisfies StaticGenerationOptions;

const generated: StaticGenerationResult = await generateStaticSite(options);
console.log(generated.pages, generated.dynamicRoutes);