vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
35 lines (34 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.preparePageContextForUserConsumption = preparePageContextForUserConsumption;
const utils_js_1 = require("./utils.js");
const addIs404ToPageProps_js_1 = require("./addIs404ToPageProps.js");
function preparePageContextForUserConsumption(pageContext) {
(0, utils_js_1.assert)(pageContext.pageId);
(0, utils_js_1.assert)('config' in pageContext);
(0, utils_js_1.assert)('configEntries' in pageContext);
(0, addIs404ToPageProps_js_1.addIs404ToPageProps)(pageContext);
// TODO/next-major-release: remove
if (!('_pageId' in pageContext)) {
Object.defineProperty(pageContext, '_pageId', {
get() {
(0, utils_js_1.assertWarning)(false, 'pageContext._pageId has been renamed to pageContext.pageId', {
showStackTrace: true,
onlyOnce: true
});
return pageContext.pageId;
},
enumerable: false
});
}
// For a more readable `console.log(pageContext)` output
sortPageContext(pageContext);
}
// Sort `pageContext` keys alphabetically, in order to make reading the `console.log(pageContext)` output easier
function sortPageContext(pageContext) {
let descriptors = Object.getOwnPropertyDescriptors(pageContext);
for (const key of Object.keys(pageContext))
delete pageContext[key];
descriptors = Object.fromEntries(Object.entries(descriptors).sort(([key1], [key2]) => (0, utils_js_1.compareString)(key1, key2)));
Object.defineProperties(pageContext, descriptors);
}