Socket
Socket
Sign inDemoInstall

log4js-json-layout

Package Overview
Dependencies
1
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.4 to 1.0.5

40

lib/jsonLayout.js

@@ -6,5 +6,6 @@ /**

var util = require('util');
var _ = require('lodash');
function wrapErrorsWithInspect(items) {
return items.map(function (item) {
return _.chain(items).map(function (item) {
if ((item instanceof Error) && item.stack) {

@@ -16,6 +17,6 @@ return {

};
} else {
} else if (!_.isObject(item)) {
return item;
}
});
}).compact().value();
}

@@ -26,6 +27,13 @@ function formatLogData(logData) {

}
function isObject(value) {
var type = typeof value;
return !!value && (type == 'object' || type == 'function');
function createDataOverlays(items) {
// var data = Array.isArray(items) ? items : Array.prototype.slice.call(items);
let overlay = {};
for (let item of items) {
if (_.isObject(item)) {
Object.assign(overlay, item);
}
}
return overlay;
}
function jsonLayout(config) {

@@ -43,11 +51,13 @@ function formatter(data) {

}
if (data.data.length === 2 && isObject(data.data[1])) {
output.data = data.data[0]; // the message
Object.assign(output, data.data[1]);
} else if (data.data.length === 1 && data.data[0].hasOwnProperty(messageParam)) {
output.data = data.data[0][messageParam]; // the message
delete data.data[0][messageParam];
Object.assign(output, data.data[0]);
} else if (data.data) {
output.data = formatLogData(data.data);
let messages = Array.isArray(data.data) ? data.data : [data.data];
if (typeof messages !== 'string' && messages.length >= 1) {
if (typeof messages[0] == 'string') {
output.data = formatLogData(messages)
}
let overlays = createDataOverlays(messages);
if (overlays.hasOwnProperty(messageParam)) {
output.data = overlays[messageParam];
delete overlays[messageParam];
}
Object.assign(output, overlays);
}

@@ -54,0 +64,0 @@ if (config.include && config.include.length) {

{
"name": "log4js-json-layout",
"version": "1.0.4",
"version": "1.0.5",
"description": "provides a slim and easy to use json-layout for log4js-node",

@@ -25,3 +25,6 @@ "main": "index.js",

"mocha": "^2.4.5"
},
"dependencies": {
"lodash": "^4.15.0"
}
}

@@ -49,5 +49,23 @@ /**

data.data = ['%s', 'aaa'];
var output = layout({})(data);
JSON.parse(output).data.should.equal('aaa');
var output = JSON.parse(layout({})(data));
output.data.should.equal('aaa');
});
it('should format many params', function () {
data.data = ['%s_%s', 'aaa','bbb'];
var output = JSON.parse(layout({})(data));
output.data.should.equal('aaa_bbb');
});
it('should format data + support object', function () {
data.data = ['%s', 'aaa', {a: 1}];
var output = JSON.parse(layout({})(data));
output.data.should.equal('aaa');
output.a.should.equal(1);
});
it('should format many params + support objects', function () {
data.data = ['%s_%s', 'aaa','bbb',{a:1},{b:2}];
var output = JSON.parse(layout({})(data));
output.data.should.equal('aaa_bbb');
output.a.should.equal(1);
output.b.should.equal(2);
});
it('should format data when passed as message + object', function () {

@@ -59,2 +77,9 @@ data.data = ['aaa', {id: 123}];

});
it('should format data when passed as message + many objects', function () {
data.data = ['aaa', {id: 123}, {bb: 222}];
var output = JSON.parse(layout({})(data));
output.id.should.equal(123);
output.bb.should.equal(222);
output.data.should.equal('aaa')
});
it('should format data when passed as object with default msg param', function () {

@@ -61,0 +86,0 @@ data.data = [{id: 123, msg: 'aaa'}];

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc