lib/less/js/lib/less/index.js in less-2.0.9 vs lib/less/js/lib/less/index.js in less-2.0.10

- old
+ new

@@ -1,11 +1,11 @@ var path = require('path'), sys = require('util'), fs = require('fs'); var less = { - version: [1, 2, 1], + version: [1, 3, 0], Parser: require('./parser').Parser, importer: require('./parser').importer, tree: require('./tree'), render: function (input, options, callback) { options = options || {}; @@ -17,11 +17,11 @@ var parser = new(less.Parser)(options), ee; if (callback) { parser.parse(input, function (e, root) { - callback(e, root.toCSS(options)); + callback(e, root && root.toCSS && root.toCSS(options)); }); } else { ee = new(require('events').EventEmitter); process.nextTick(function () { @@ -80,18 +80,21 @@ ['color', 'directive', 'operation', 'dimension', 'keyword', 'variable', 'ruleset', 'element', 'selector', 'quoted', 'expression', 'rule', 'call', 'url', 'alpha', 'import', 'mixin', 'comment', 'anonymous', 'value', - 'javascript', 'assignment', 'condition', 'paren' + 'javascript', 'assignment', 'condition', 'paren', + 'media' ].forEach(function (n) { require('./tree/' + n); }); -less.Parser.importer = function (file, paths, callback) { +less.Parser.importer = function (file, paths, callback, env) { var pathname; + // TODO: Undo this at some point, + // or use different approach. paths.unshift('.'); for (var i = 0; i < paths.length; i++) { try { pathname = path.join(paths[i], file); @@ -102,20 +105,24 @@ } } if (pathname) { fs.readFile(pathname, 'utf-8', function(e, data) { - if (e) sys.error(e); + if (e) return callback(e); - new(less.Parser)({ - paths: [path.dirname(pathname)].concat(paths), - filename: pathname - }).parse(data, function (e, root) { - callback(e, root, data); - }); + new(less.Parser)({ + paths: [path.dirname(pathname)].concat(paths), + filename: pathname + }).parse(data, function (e, root) { + callback(e, root, data); + }); }); } else { - callback({ type: 'File', message: "'" + file + "' wasn't found.\n" }); + if (typeof(env.errback) === "function") { + env.errback(file, paths, callback); + } else { + callback({ type: 'File', message: "'" + file + "' wasn't found.\n" }); + } } } require('./functions'); require('./colors');