Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@rss/common-nodejs

Package Overview
Dependencies
Maintainers
1
Versions
239
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rss/common-nodejs - npm Package Compare versions

Comparing version
0.0.2
to
0.0.3
+20
src/bunyan-middleware.js
const uuid = require('uuid/v4');
const log = require('./logger');
const middleware = (req, res, next) => {
if (req.url.match(/healthz/) || process.env.NODE_ENV === 'test') {
return next();
}
const requestId = req.headers['x-request-id'] || uuid();
req.headers['x-request-id'] = requestId;
req.log = log.child({ req_id: requestId }, true);
res.on('finish', () => log.info({ req_id: requestId, req, res }));
res.on('close', () => log.info({ req_id: requestId, req, res }));
return next();
};
module.exports = middleware;
const bunyan = require('bunyan');
const log = bunyan.createLogger({
name: 'express',
serializers: {
req: (req) => {
if (!req || !req.connection) {
return req;
}
let user = null;
if (req.user) {
const { userId, firstName, lastName, email } = req.user;
user = {
userId,
firstName,
lastName,
email,
};
}
return {
method: req.method,
url: req.url,
headers: {
referer: req.headers.referer,
'user-agent': req.headers['user-agent'],
'x-request-id': req.headers['x-request-id'],
},
remoteAddress: req.connection.remoteAddress,
user,
body: req.body,
};
},
res: (res) => {
if (!res || !res.statusCode) return res;
return {
statusCode: res.statusCode,
};
},
err: bunyan.stdSerializers.err,
},
});
module.exports = log;
+2
-2

@@ -1,2 +0,2 @@

// constant - core
exports.buyanMiddleware = require('./src/buyan-middleware');
exports.bunyanMiddleware = require('./src/bunyan-middleware');
exports.log = require('./src/logger');
{
"name": "@rss/common-nodejs",
"version": "0.0.2",
"version": "0.0.3",
"description": "common nodejs library",

@@ -10,13 +10,11 @@ "author": "Risk & Safety Solution",

"scripts": {
"preversion": "npm run build",
"spec": "NODE_ENV=test jest --testMatch='**/*.spec.js'",
"spec:watch": "NODE_ENV=test jest --watch --testMatch='**/*.spec.js"
"preversion": "npm run build"
},
"dependencies": {
"bunyan": "1.8.12",
"uuid": "^3.3.2"
"uuid": "3.3.2"
},
"devDependencies": {
"jest": "22.4.2"
"jest": "23.6.0"
}
}
const express = require('express');
const buyanMiddleware = require('./src/buyan-middleware');
const log = require('./src/logger');
// express server
const app = express();
app.use(buyanMiddleware({ name: 'graph' }));
app.use('/health', (req, res) => {
req.log.info('hello world');
res.send();
});
app.use('/healthz', (req, res) => {
res.send();
});
// catch 404 and forward to error handler
app.use((req, res, next) => {
const err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler: only print stack on development enviroment
/* eslint-disable */
app.use((err, req, res, next) => {
log.error(err);
res.status(err.status || 500);
res.send({
message: err.message,
error: process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'prod' ? err.stack : {},
});
});
app.listen(3000);
log.info(`Express server listening on port 3000 in ${app.get('env')} mode`);
module.exports = app;
const bunyan = require('bunyan');
const uuid = require('uuid/v4');
const middleware = (opt) => {
const log = bunyan.createLogger({
name: opt.name || 'express',
serializers: {
req: (req) => {
if (!req || !req.connection) {
return req;
}
let user = null;
if (req.user) {
const { userId, firstName, lastName, email } = req.user;
user = {
userId,
firstName,
lastName,
email,
};
}
return {
method: req.method,
url: req.url,
headers: {
referer: req.headers.referer,
'user-agent': req.headers['user-agent'],
'x-request-id': req.headers['x-request-id'],
},
remoteAddress: req.connection.remoteAddress,
user,
body: req.body,
};
},
res: (res) => {
if (!res || !res.statusCode) return res;
return {
statusCode: res.statusCode,
};
},
err: bunyan.stdSerializers.err,
},
});
return (req, res, next) => {
if (req.url.match(/healthz/) || process.env.NODE_ENV === 'test') {
return next();
}
const requestId = req.headers['x-request-id'] || uuid();
req.headers['x-request-id'] = requestId;
req.log = log.child({ req_id: requestId }, true);
res.on('finish', () => log.info({ req_id: requestId, req, res }));
res.on('close', () => log.info({ req_id: requestId, req, res }));
return next();
};
};
module.exports = middleware;