rednote-mcp
Version:
A friendly tool to help you access and interact with Xiaohongshu (RedNote) content through Model Context Protocol.
46 lines (45 loc) • 1.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createStdioLogger = createStdioLogger;
const logger_1 = __importDefault(require("./logger"));
/**
* Logger for stdio input and output
* @param logFilePath - Path to the log file (unused, kept for backward compatibility)
* @returns A function to stop logging
*/
function createStdioLogger(logFilePath) {
// Store original stdio
const originalStdoutWrite = process.stdout.write.bind(process.stdout);
const originalStderrWrite = process.stderr.write.bind(process.stderr);
// Create new write functions
const newStdoutWrite = function (str, encoding, cb) {
logger_1.default.info(`[STDOUT] ${str}`);
if (typeof encoding === 'function') {
return originalStdoutWrite(str, encoding);
}
return originalStdoutWrite(str, encoding, cb);
};
const newStderrWrite = function (str, encoding, cb) {
logger_1.default.error(`[STDERR] ${str}`);
if (typeof encoding === 'function') {
return originalStderrWrite(str, encoding);
}
return originalStderrWrite(str, encoding, cb);
};
// Override stdio
process.stdout.write = newStdoutWrite;
process.stderr.write = newStderrWrite;
// Add stdin listener
process.stdin.on('data', (data) => {
logger_1.default.info(`[STDIN] ${data}`);
});
// Return cleanup function
return () => {
process.stdout.write = originalStdoutWrite;
process.stderr.write = originalStderrWrite;
process.stdin.removeAllListeners('data');
};
}