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
This commit is contained in:
56
apps/public-web/node_modules/next/dist/server/node-environment-extensions/console-file.js
generated
vendored
Normal file
56
apps/public-web/node_modules/next/dist/server/node-environment-extensions/console-file.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
const _consoleasyncstorageexternal = require("../app-render/console-async-storage.external");
|
||||
const _filelogger = require("../dev/browser-logs/file-logger");
|
||||
const _console = require("../../client/lib/console");
|
||||
// Based on https://github.com/facebook/react/blob/28dc0776be2e1370fe217549d32aee2519f0cf05/packages/react-server/src/ReactFlightServer.js#L248
|
||||
function patchConsoleMethodDEV(methodName) {
|
||||
const descriptor = Object.getOwnPropertyDescriptor(console, methodName);
|
||||
if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') {
|
||||
const originalMethod = descriptor.value;
|
||||
const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name');
|
||||
const wrapperMethod = function(...args) {
|
||||
const consoleStore = _consoleasyncstorageexternal.consoleAsyncStorage.getStore();
|
||||
if ((consoleStore == null ? void 0 : consoleStore.dim) === true) {
|
||||
// In this context the log args are already dimmed. We use the console store
|
||||
// to decide if this log is ignorable for reporting in our file logger.
|
||||
return originalMethod.apply(this, args);
|
||||
} else {
|
||||
const ret = originalMethod.apply(this, args);
|
||||
const fileLogger = (0, _filelogger.getFileLogger)();
|
||||
const message = (0, _console.formatConsoleArgs)(args);
|
||||
// Strip ANSI escape codes for file logging
|
||||
// eslint-disable-next-line no-control-regex
|
||||
const ansiEscapeRegex = new RegExp('\u001b\\[[0-9;]*m', 'g');
|
||||
const cleanMessage = message.replace(ansiEscapeRegex, '');
|
||||
fileLogger.logServer(methodName.toUpperCase(), cleanMessage);
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
if (originalName) {
|
||||
Object.defineProperty(wrapperMethod, 'name', originalName);
|
||||
}
|
||||
Object.defineProperty(console, methodName, {
|
||||
value: wrapperMethod
|
||||
});
|
||||
}
|
||||
}
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
patchConsoleMethodDEV('error');
|
||||
patchConsoleMethodDEV('assert');
|
||||
patchConsoleMethodDEV('debug');
|
||||
patchConsoleMethodDEV('dir');
|
||||
patchConsoleMethodDEV('dirxml');
|
||||
patchConsoleMethodDEV('group');
|
||||
patchConsoleMethodDEV('groupCollapsed');
|
||||
patchConsoleMethodDEV('groupEnd');
|
||||
patchConsoleMethodDEV('info');
|
||||
patchConsoleMethodDEV('log');
|
||||
patchConsoleMethodDEV('table');
|
||||
patchConsoleMethodDEV('trace');
|
||||
patchConsoleMethodDEV('warn');
|
||||
}
|
||||
|
||||
//# sourceMappingURL=console-file.js.map
|
||||
Reference in New Issue
Block a user