Files
bunext/dist/functions/server/web-pages/grab-page-server-res.js
T
2026-10-13 15:52:34 +01:00

47 lines
1.5 KiB
JavaScript

import _ from "lodash";
import { log } from "../../../utils/log";
import isDevelopment from "../../../utils/is-development";
export default async function grabPageServerRes({ url, query, routeParams, server_function, props, }) {
const default_props = {
url: url
? {
..._.pick(url, [
"host",
"hostname",
"pathname",
"origin",
"port",
"search",
"searchParams",
"hash",
"href",
"protocol",
]),
}
: null,
query,
};
const init_props = props || null;
try {
if (routeParams && server_function) {
const serverData = await server_function({
...routeParams,
query: { ...routeParams.query, ...query },
props: init_props || undefined,
});
return _.merge(default_props, serverData);
}
return _.merge(default_props);
}
catch (error) {
log.error(`Page ${url?.pathname} Server Error => ${error.message}\n`, error);
// Error details can leak internals, so only expose them in
// development. They are always logged above.
return _.merge(default_props, {
error: isDevelopment()
? error.message
: "Internal Server Error",
});
}
}