UNPKG

vite-plugin-react-server

Version:
58 lines (55 loc) 1.64 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ import { stashedPages } from './config/resolvePages.js'; async function resolvePage({ pageModule, path, url, exportName }) { if (stashedPages.length > 0 && stashedPages.includes(path)) { return { type: "success", key: path, Page: pageModule }; } if (!pageModule) { return { type: "error", error: new Error(`pageModule is ${typeof pageModule}`) }; } const keys = typeof pageModule === "object" && pageModule != null ? Object.keys(pageModule) : []; const found = keys.find((v) => v === exportName || v === url || v === path); if (found) { if (typeof pageModule[found] === "function") { return { type: "success", key: found, Page: pageModule[found] }; } else { if (typeof pageModule === "object" && pageModule != null && Object.keys(pageModule).includes("type")) return pageModule; return { type: "error", [exportName]: () => found, error: pageModule[found]["error"] }; } } if (keys.includes("type")) return pageModule; return { type: "error", error: new Error( `Could not find Page export "${exportName}" in "${path}". ${typeof pageModule === "object" && pageModule != null ? keys.length ? "Available exports: " + keys.join(", ") : 'The object was defined but has no properties. "' + JSON.stringify(pageModule) + '"' : "typeof pageModule =" + typeof pageModule}`, { cause: pageModule } ) }; } export { resolvePage }; //# sourceMappingURL=resolvePage.js.map