PrerenderIndex
interfaz
Índice manifest.json que se escribe junto al HTML prerenderizado y que leen los adaptadores al
arrancar. headOffset se mide en unidades de código UTF-16 del HTML leído como texto, no en bytes.
import type { PrerenderIndex } from "@meekojs/meeko/build";Código fuente src/framework/prerender.ts:74
Declaración #
interface PrerenderIndex {
readonly version: 1
readonly pages: Readonly<
Record<
string,
{
readonly file: string
readonly headOffset: number
readonly etag: string
readonly payload?: string
readonly scriptHashes?: readonly string[]
readonly styleHashes?: readonly string[]
}
>
>
}Ejemplo #
import { readFile } from "node:fs/promises";
import type { PrerenderIndex } from "@meekojs/meeko/build";
const index = JSON.parse(await readFile(".meeko/output/node/prerender/manifest.json", "utf8")) as PrerenderIndex;
const home = index.pages["/"];Propiedades #
pages
#
readonly pages: Readonly<
Record<
string,
{
readonly file: string
readonly headOffset: number
readonly etag: string
readonly payload?: string
readonly scriptHashes?: readonly string[]
readonly styleHashes?: readonly string[]
}
>
>Páginas por ruta: archivo HTML, posición donde se inserta la meta CSRF, ETag, si existe, el
payload de navegación index.meeko.json y, desde 1.3, scriptHashes: las fuentes CSP
'sha256-…' de los scripts en línea que ejecuta la página (véase inlineScriptHashes), para
construir su Content-Security-Policy con contentSecurityPolicy. Un índice escrito por una
versión anterior no tiene scriptHashes. Desde 1.4, styleHashes hace lo mismo con los
<style> en línea (véase inlineStyleHashes), como el del tema de <MeekoThemeToggle>. Desde
1.7, sólo cuentan los que escribe Meeko alrededor de la página (la cabecera, el payload, la
entrada y bodyEnd): un <script> o un <style> dentro de #app o de un teleport, que puede
venir de contenido de usuario, no se autoriza.
Véase también #
- Routing, layouts y SSR Framework full-stack