less
Version:
Leaner CSS
42 lines (36 loc) • 1.26 kB
JavaScript
import * as utils from './utils.js';
export default function(environment, ParseTree) {
const render = function (input, options, callback) {
if (typeof options === 'function') {
callback = options;
options = utils.copyOptions(this.options, {});
}
else {
options = utils.copyOptions(this.options, options || {});
}
if (!callback) {
const self = this;
return new Promise(function (resolve, reject) {
render.call(self, input, options, function(err, output) {
if (err) {
reject(err);
} else {
resolve(output);
}
});
});
} else {
this.parse(input, options, function(err, root, imports, options) {
if (err) { return callback(err); }
let result;
try {
const parseTree = new ParseTree(root, imports);
result = parseTree.toCSS(options);
}
catch (err) { return callback(err); }
callback(null, result);
});
}
};
return render;
}