UNPKG

vite-plugin-react-server

Version:
45 lines (39 loc) 1.19 kB
import type { ResolvedUserOptions } from '../types.js'; export async function resolvePages( pages: ResolvedUserOptions["build"]["pages"] ): Promise<{ type: "success"; error?:never; pages: string[] } | { type: "error"; error: unknown; pages?:never }> { if (!pages) { return { type: "success", pages: [] }; } try { // Handle function if (typeof pages === "function") { const result = pages(); if(result instanceof Promise) { return resolvePages(await result); } return resolvePages(result); } // Handle Promise if (pages instanceof Promise) { return resolvePages(await pages); } // Handle string if (typeof pages === "string") { return { type: "success", pages: [pages] }; } // Handle array if (Array.isArray(pages)) { if (pages.every(page => typeof page === "string")) { return { type: "success", pages }; } throw new Error('All pages must be strings'); } throw new Error('Invalid pages format'); } catch (error) { return { type: "error", error: error instanceof Error ? error : new Error('Failed to resolve pages') }; } }