New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ee-templates

Package Overview
Dependencies
Maintainers
2
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ee-templates - npm Package Compare versions

Comparing version 0.3.12 to 0.3.13

lib/renderer/CSVRenderer.js

29

lib/renderer/Factory.js

@@ -25,23 +25,24 @@ "use strict";

application: {
json: new rendering.JSONRenderer()
, xml: new rendering.XMLRenderer('application', 'xml')
, all: new rendering.DefaultRenderer('application', 'json')
json : new rendering.JSONRenderer()
, xml : new rendering.XMLRenderer('application', 'xml')
, all : new rendering.DefaultRenderer('application', 'json')
}
, image: {
png: new rendering.DefaultRenderer('image', 'png')
, jpg: new rendering.DefaultRenderer('image', 'jpg')
, jpeg: new rendering.DefaultRenderer('image', 'jpeg')
, webp: new rendering.DefaultRenderer('image', 'webp')
, tiff: new rendering.DefaultRenderer('image', 'tiff')
, all: new rendering.DefaultRenderer('image', '*')
png : new rendering.DefaultRenderer('image', 'png')
, jpg : new rendering.DefaultRenderer('image', 'jpg')
, jpeg : new rendering.DefaultRenderer('image', 'jpeg')
, webp : new rendering.DefaultRenderer('image', 'webp')
, tiff : new rendering.DefaultRenderer('image', 'tiff')
, all : new rendering.DefaultRenderer('image', '*')
}
, text: {
plain: new rendering.DefaultRenderer('text', 'plain')
, xml: new rendering.XMLRenderer()
, html: new rendering.HTMLRenderer(this.container, this.dataPropertyName)
, all: new rendering.DefaultRenderer('text', '*')
plain : new rendering.DefaultRenderer('text', 'plain')
, xml : new rendering.XMLRenderer()
, csv : new rendering.CSVRenderer()
, html : new rendering.HTMLRenderer(this.container, this.dataPropertyName)
, all : new rendering.DefaultRenderer('text', '*')
}
, all: {
all: new rendering.DefaultRenderer('*', '*')
all : new rendering.DefaultRenderer('*', '*')
}

@@ -48,0 +49,0 @@ };

@@ -24,4 +24,4 @@ "use strict";

/**
* todo: remove the try catch block as soon as we are sure the rendering does not throw errors anymore (nunjucks)
* todo: try to find a better solution for the data assignment!!
* @todo: remove the try catch block as soon as we are sure the rendering does not throw errors anymore (nunjucks)
* @todo: try to find a better solution for the data assignment!!
*/

@@ -28,0 +28,0 @@ , render: function(data, callback) {

module.exports.AbstractRenderer = require('./AbstractRenderer');
module.exports.StringRenderer = require('./StringRenderer');
module.exports.DefaultRenderer = module.exports.StringRenderer
module.exports.DefaultRenderer = module.exports.StringRenderer;

@@ -9,3 +9,5 @@ module.exports.JSONRenderer = require('./JSONRenderer');

module.exports.XMLRenderer = require('./XMLRenderer');
module.exports.CSVRenderer = require('./CSVRenderer');
module.exports.Factory = require('./Factory');

@@ -18,8 +18,9 @@ "use strict";

, render: function (data, callback) {
var rendered;
try {
var rendered = JSON.stringify(data.content);
callback(null, rendered, this.type);
rendered = JSON.stringify(data.content);
} catch(e) {
callback(e, null);
return callback(e, null);
}
callback(null, rendered, this.type);
}

@@ -26,0 +27,0 @@ };

@@ -14,11 +14,14 @@ "use strict";

, render: function initialize(data, callback) {
try {
if(Types.string(data.content) || Types.buffer(data.content)) {
return callback(null, data.content, this.type);
var stringified;
if(Types.string(data.content) || Types.buffer(data.content)) {
stringified = data.content;
} else {
try {
stringified = JSON.stringify(data.content);
} catch(e) {
return callback(e, null);
}
return callback(null, JSON.stringify(data.content), this.type);
} catch(e) {
callback(e, null);
}
callback(null, stringified, this.type);
}

@@ -25,0 +28,0 @@ };

@@ -22,12 +22,12 @@ "use strict";

if (Types.string(content)) {
callback(null, content, this.type);
return callback(null, content, this.type);
}
else {
try {
var parsed = js2xml('root', content, {useCDATA:true, wrapArray: {enabled: true}});
callback(null, parsed, this.type);
} catch (err){
callback(err, null, this.type);
}
var parsed;
try {
parsed = js2xml('root', content, {useCDATA:true, wrapArray: {enabled: true}});
} catch (err){
return callback(err, null, this.type);
}
callback(null, parsed, this.type);
}

@@ -34,0 +34,0 @@ };

@@ -74,3 +74,4 @@ var log = require('ee-log'),

* This is currently a hack! Nunjucks seems to trick us ou!
* todo: simplify this interface!
* @todo: simplify this interface!
*
* proposal:

@@ -77,0 +78,0 @@ *

{
"name" : "ee-templates"
, "description" : "Templating integration for the ee-soa-transport-rest based on Nunjucks"
, "version" : "0.3.12"
, "version" : "0.3.13"
, "license" : "MIT"

@@ -6,0 +6,0 @@ , "author" : "Michael Rüfenacht <ruefe@rcky.ch> (http://www.rcky.ch)"

@@ -26,2 +26,3 @@ var assert = require('assert')

, acceptPlaintext = {'accept': [{key:'text', value: 'plain'}]}
, acceptCSV = {'accept': [{key:'text', value: 'csv'}]}
, acceptXML = {'accept': [{key:'text', value: 'xml'}]}

@@ -180,9 +181,4 @@ , acceptAppXML = {'accept': [{key:'application', value: 'xml'}]}

responseXML.render(200, 'it', {}, complexObject, function(err){
try {
// I dont want to dick around with whitespaces
assert.equal(expected, responseXML.data.replace(/\s*/g, ''));
done();
} catch(ex) {
done(ex);
}
assert.equal(expected, responseXML.data.replace(/\s*/g, ''));
done(err);
});

@@ -211,9 +207,4 @@ });

responseXML.render(200, 'it', {}, complexObject, function(err){
try {
// I dont want to dick around with whitespaces
assert.equal(expected, responseXML.data.replace(/\s*/g, ''));
done();
} catch(ex) {
done(ex);
}
assert.equal(expected, responseXML.data.replace(/\s*/g, ''));
done(err);
});

@@ -229,2 +220,81 @@ });

describe('text/csv', function(){
var requestCSV = new MockRequest('test.ch', '', acceptCSV)
, responseCSV = new MockResponse();
middleware.request(requestCSV, responseCSV, function(){
it('should append a rendering method to the response', function(){
assert('render' in responseCSV);
});
var expected = 'name,friends,age,sexy,bag\nJohn,"[""Chuck"",""Arnold""]",100,false,"{""full"":false}"\nBetty,"[""Jenna"",""Gina""]",20,true,"{""full"":true}"';
it('should fail if csv contains functions', function(done){
responseCSV.render(200, 'it', {}, complexObject, function(err){
assert(err);
assert.equal(responseCSV.status, 500);
responseCSV.isSent = false;
done();
});
});
it('should fail if csv contains literals', function(done){
responseCSV.render(200, 'it', {}, [ null, 'one', 1, true, null ], function(err){
assert(err);
assert.equal(responseCSV.status, 500);
responseCSV.isSent = false;
done();
});
});
it('should skip buffers', function(done){
responseCSV.render(200, 'it', {}, new Buffer('hello world'), function(err){
assert.equal(responseCSV.data, 'hello world');
assert.equal(200, responseCSV.status);
responseCSV.isSent = false;
done(err);
});
});
it('should skip strings as well', function(done){
responseCSV.render(200, 'it', {}, 'hello world', function(err){
assert.equal(responseCSV.data, 'hello world');
assert.equal(200, responseCSV.status);
responseCSV.isSent = false;
done(err);
});
});
it('should create csvs if possible', function(done){
responseCSV.render(200, 'it', {}, [
{
name : 'John'
, friends : ['Chuck', 'Arnold']
, age : 100
, sexy : false
, bag : { full: false }
}
,
{
name : 'Betty'
, friends : ['Jenna', 'Gina']
, age : 20
, sexy : true
, bag : { full: true }
}
], function(err){
assert.equal(responseCSV.data, expected);
assert.equal(200, responseCSV.status);
responseCSV.isSent = false;
done(err);
});
});
it('and set the content type accordingly', function(){
assert.equal('text/csv; charset=utf-8', responseCSV.contentType);
assert.equal(200, responseCSV.status);
});
});
});
describe('on errors', function(){

@@ -231,0 +301,0 @@ var errorRequest = new MockRequest('test.ch', 'test.nunjuck.inexistent.html', acceptHTML)

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc