vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
43 lines (41 loc) • 1.1 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
let stashedPages = [];
async function resolvePages(pages) {
if (stashedPages.length > 0) {
return { type: "success", pages: stashedPages };
}
if (!pages) {
return { type: "success", pages: [] };
}
try {
if (typeof pages === "function") {
return resolvePages(pages());
}
if (pages instanceof Promise) {
return resolvePages(await pages);
}
if (typeof pages === "string") {
stashedPages = [pages];
return { type: "success", pages: [pages] };
}
if (Array.isArray(pages)) {
if (pages.every((page) => typeof page === "string")) {
stashedPages = pages;
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")
};
}
}
export { resolvePages, stashedPages };
//# sourceMappingURL=resolvePages.js.map