UNPKG

vite-ssr

Version:

Vite utility for server side rendering

27 lines (26 loc) 930 B
import { deserializeState } from '../utils/deserialize-state'; import { useClientRedirect } from '../utils/response'; export const viteSSR = async function viteSSR(options, hook) { if (!hook && typeof options === 'function') { hook = options; options = {}; } const { url = new URL(window.location.href), transformState = deserializeState, spaRedirect, } = (options || {}); // Deserialize the state included in the DOM const initialState = await transformState( // @ts-ignore window.__INITIAL_STATE__, deserializeState); // Browser redirect utilities const { redirect, writeResponse } = useClientRedirect(spaRedirect); const context = { url, isClient: true, initialState: initialState || {}, writeResponse, redirect, }; // Main hook / component hook && (await hook(context)); return context; }; export default viteSSR;