@coding-blocks/jsonapi-server
Version:
A config driven NodeJS framework implementing json:api
24 lines (18 loc) • 814 B
JavaScript
const metrics = module.exports = { }
const EventEmitter = require('events').EventEmitter
metrics.emitter = new EventEmitter()
metrics._replaceUUIDsInRoute = routeString => routeString.replace(/[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}/ig, ':id')
metrics._replaceTrailingSlashesInRoute = routeString => routeString.replace(/\/$/, '')
metrics.processResponse = (request, httpCode, payload, duration) => {
let route = request ? request.route.path : 'invalid'
route = metrics._replaceUUIDsInRoute(route)
route = metrics._replaceTrailingSlashesInRoute(route)
metrics.emitter.emit('data', {
route,
verb: request ? request.route.verb || 'GET' : 'GET',
httpCode,
error: payload.errors ? payload.errors[0].title : null,
duration: duration || 0
})
}