Remove duplication in render function

This commit is contained in:
Luke Page
2014-09-04 15:57:20 +01:00
parent e108b50c51
commit 20025f10b1

View File

@@ -1,6 +1,6 @@
var PromiseConstructor = typeof Promise === 'undefined' ? require('promise') : Promise;
module.exports = function(Parser) {
var render = function(Parser) {
return function (input, options, callback) {
options = options || {};
@@ -9,19 +9,17 @@ module.exports = function(Parser) {
options = {};
}
var parser = new(Parser)(options);
if (callback) {
parser.parse(input, function (e, root) {
if (e) { callback(e); return; }
var css;
try {
css = root && root.toCSS && root.toCSS(options);
}
catch (err) { callback(err); return; }
callback(null, css);
}, options);
render(input.options)
.then(function(css) {
callback(null, css);
},
function(error) {
callback(error);
});
} else {
var parser = new(Parser)(options);
return new PromiseConstructor(function (resolve, reject) {
parser.parse(input, function (e, root) {
if (e) { return reject(e); }
@@ -32,3 +30,4 @@ module.exports = function(Parser) {
}
};
};
module.exports = render;