vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
42 lines (41 loc) • 1.97 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleErrorWithoutErrorPage = handleErrorWithoutErrorPage;
const stringify_1 = require("@brillout/json-serializer/stringify");
const utils_js_1 = require("../utils.js");
const createHttpResponse_js_1 = require("./createHttpResponse.js");
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
// When the user hasn't defined _error.page.js
async function handleErrorWithoutErrorPage(pageContext) {
(0, utils_js_1.assert)(pageContext.pageId === null);
(0, utils_js_1.assert)(pageContext.errorWhileRendering || pageContext.is404);
{
const isV1 = pageContext._globalContext._pageConfigs.length > 0;
await warnMissingErrorPage(isV1, pageContext._globalContext._isProduction);
}
if (!pageContext.isClientSideNavigation) {
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseError)(pageContext);
(0, utils_js_1.objectAssign)(pageContext, { httpResponse });
return pageContext;
}
else {
const __getPageAssets = async () => [];
(0, utils_js_1.objectAssign)(pageContext, { __getPageAssets });
const httpResponse = await (0, createHttpResponse_js_1.createHttpResponsePage)((0, stringify_1.stringify)({ serverSideError: true }), null, pageContext);
(0, utils_js_1.objectAssign)(pageContext, { httpResponse });
return pageContext;
}
}
async function warnMissingErrorPage(isV1, isProduction) {
if (!isProduction) {
const msg = [
`No ${isV1 ? 'error page' : picocolors_1.default.cyan('_error.page.js')} found,`,
'we recommend defining one',
'https://vike.dev/error-page',
].join(' ');
(0, utils_js_1.assertWarning)(false, msg, { onlyOnce: true });
}
}