| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- const OError = require('@overleaf/o-error')
- function errSerializer(err) {
- if (!err) {
- return err
- }
- let message = err.message
- if (err.path) {
- // filter paths from the message to avoid duplicate errors with different path in message
- // (e.g. errors from `fs` methods which have a path attribute)
- message = message.replace(` '${err.path}'`, '')
- }
- return {
- message,
- name: err.name,
- stack: OError.getFullStack(err),
- info: OError.getFullInfo(err),
- code: err.code,
- signal: err.signal,
- path: err.path,
- }
- }
- function reqSerializer(req) {
- if (!req) {
- return req
- }
- const headers = req.headers || {}
- const entry = {
- method: req.method,
- url: req.originalUrl || req.url,
- remoteAddress: getRemoteIp(req),
- headers: {
- referer: headers.referer || headers.referrer,
- 'user-agent': headers['user-agent'],
- 'content-length': headers['content-length'],
- },
- }
- if (req.params) {
- const projectId =
- req.params.projectId || req.params.project_id || req.params.Project_id
- const userId = req.params.userId || req.params.user_id
- const docId = req.params.docId || req.params.doc_id
- if (projectId) {
- entry.projectId = projectId
- }
- if (userId) {
- entry.userId = userId
- }
- if (docId) {
- entry.docId = docId
- }
- }
- return entry
- }
- function resSerializer(res) {
- if (!res) {
- return res
- }
- return {
- statusCode: res.statusCode,
- headers: {
- 'content-length': res.getHeader && res.getHeader('content-length'),
- },
- }
- }
- function getRemoteIp(req) {
- if (req.ip) {
- return req.ip
- }
- if (req.socket) {
- if (req.socket.socket && req.socket.socket.remoteAddress) {
- return req.socket.socket.remoteAddress
- } else if (req.socket.remoteAddress) {
- return req.socket.remoteAddress
- }
- }
- return null
- }
- module.exports = { err: errSerializer, req: reqSerializer, res: resSerializer }
|