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');