Files
PascalSchattenburg d147843c76 feat(blog): add file-based blog with dynamic slugs, MDX content and layout shell
- Introduced blog routing using Next.js App Router
- Implemented dynamic [slug] pages for blog posts
- Added MDX-based content loading via lib/posts
- Integrated shared TopBar layout with navigation
- Established clear content, lib and component separation
2026-01-22 14:14:15 +01:00

28 lines
1.2 KiB
JavaScript

/**
* We extend Math.random() during builds and revalidates to ensure that prerenders don't observe randomness
* When cacheComponents is enabled. randomness is a form of IO even though it resolves synchronously. When cacheComponents is
* enabled we need to ensure that randomness is excluded from prerenders.
*
* The extensions here never error nor alter the random generation itself and thus should be transparent to callers.
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const _utils = require("./utils");
const expression = '`Math.random()`';
try {
const _random = Math.random;
Math.random = (function random() {
(0, _utils.io)(expression, 'random');
return _random.apply(null, arguments);
// We bind here to alter the `toString` printing to match `Math.random`'s native `toString`.
// eslint-disable-next-line no-extra-bind
}).bind(null);
Object.defineProperty(Math.random, 'name', {
value: 'random'
});
} catch {
console.error(`Failed to install ${expression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`);
}
//# sourceMappingURL=random.js.map