jsperf-img-svc
Version:
A simple micro service for loading jsperf result charts as a static image
44 lines (40 loc) • 1.15 kB
JavaScript
var
_ = require('lodash'),
Promise = require('bluebird'),
webpage = require('webpage'),
system = require('system'),
config = JSON.parse(system.args[1]),
svg = JSON.parse(system.args[2]),
page = _.assign(webpage.create(), {
onConsoleMessage: function(msg){
console.log(msg);
},
viewportSize: {width: 1420, height: 660},
content: '<html><body></body><html>'
});
Promise
.all([
new Promise(function(resolve){
page.includeJs(config.localBase + '/public/rgbcolor/index.js', resolve);
}),
new Promise(function(resolve){
page.includeJs(config.localBase + '/public/stackblur/index.js', resolve);
}),
new Promise(function(resolve){
page.includeJs(config.localBase + '/public/canvg/index.js', resolve);
})
])
.then(function(){
var dataURL = page.evaluate(function(svg, config){
var canvas = document.createElement('canvas');
canvas.width = svg.width;
canvas.height = svg.height;
canvg(canvas, svg.data);
return canvas.toDataURL(config.mime);
}, svg, config);
console.log(dataURL.replace('data:' + config.mime + ';base64,', ''));
})
.finally(function(){
phantom.exit();
});
;