/
erioxis
/
web-nodejs
Обзор
Документация
Войти
/
erioxis
/
web-nodejs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/node_modules/pino-std-serializers/lib/req.js
100 строк
2 KB
erioxis
lab11fix
15 дек 2025, 23:21
15 дек 2025, 23:21
70dc7ba
Код
Авторство
О чём код?
'use strict' module.exports = { mapHttpRequest, reqSerializer } const rawSymbol = Symbol('pino-raw-req-ref') const pinoReqProto = Object.create({}, { id: { enumerable: true, writable: true, value: '' }, method: { enumerable: true, writable: true, value: '' }, url: { enumerable: true, writable: true, value: '' }, query: { enumerable: true, writable: true, value: '' }, params: { enumerable: true, writable: true, value: '' }, headers: { enumerable: true, writable: true, value: {} }, remoteAddress: { enumerable: true, writable: true, value: '' }, remotePort: { enumerable: true, writable: true, value: '' }, raw: { enumerable: false, get: function () { return this[rawSymbol] }, set: function (val) { this[rawSymbol] = val } } }) Object.defineProperty(pinoReqProto, rawSymbol, { writable: true, value: {} }) function reqSerializer (req) { // req.info is for hapi compat. const connection = req.info || req.socket const _req = Object.create(pinoReqProto) _req.id = (typeof req.id === 'function' ? req.id() : (req.id || (req.info ? req.info.id : undefined))) _req.method = req.method // req.originalUrl is for expressjs compat. if (req.originalUrl) { _req.url = req.originalUrl } else { const path = req.path // path for safe hapi compat. _req.url = typeof path === 'string' ? path : (req.url ? req.url.path || req.url : undefined) } if (req.query) { _req.query = req.query } if (req.params) { _req.params = req.params } _req.headers = req.headers _req.remoteAddress = connection && connection.remoteAddress _req.remotePort = connection && connection.remotePort // req.raw is for hapi compat/equivalence _req.raw = req.raw || req return _req } function mapHttpRequest (req) { return { req: reqSerializer(req) } }