UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

38 lines (37 loc) 1.33 kB
import { decodeKey } from "../encryption.js"; import { NOOP_MIDDLEWARE_FN } from "../middleware/noop-middleware.js"; import { deserializeRouteData } from "../routing/manifest/serialization.js"; function deserializeManifest(serializedManifest) { const routes = []; for (const serializedRoute of serializedManifest.routes) { routes.push({ ...serializedRoute, routeData: deserializeRouteData(serializedRoute.routeData) }); const route = serializedRoute; route.routeData = deserializeRouteData(serializedRoute.routeData); } const assets = new Set(serializedManifest.assets); const componentMetadata = new Map(serializedManifest.componentMetadata); const inlinedScripts = new Map(serializedManifest.inlinedScripts); const clientDirectives = new Map(serializedManifest.clientDirectives); const serverIslandNameMap = new Map(serializedManifest.serverIslandNameMap); const key = decodeKey(serializedManifest.key); return { // in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts) middleware() { return { onRequest: NOOP_MIDDLEWARE_FN }; }, ...serializedManifest, assets, componentMetadata, inlinedScripts, clientDirectives, routes, serverIslandNameMap, key }; } export { deserializeManifest };