From 20025f10b1079acedc75d3b28d43ab093e6ae985 Mon Sep 17 00:00:00 2001 From: Luke Page Date: Thu, 4 Sep 2014 15:57:20 +0100 Subject: [PATCH] Remove duplication in render function --- lib/less/render.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lib/less/render.js b/lib/less/render.js index d4ea7cc5..4893f946 100644 --- a/lib/less/render.js +++ b/lib/less/render.js @@ -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;