broccoli-less-single
Advanced tools
Comparing version 0.3.0 to 0.4.0
47
index.js
@@ -7,17 +7,8 @@ var fs = require('fs') | ||
var less = require('less') | ||
var _ = require('lodash') | ||
var merge = require('lodash-node/modern/object/merge') | ||
var RSVP = require('rsvp'); | ||
var writeFile = RSVP.denodeify(fs.writeFile); | ||
function writeFilePromise(filename, data, options) { | ||
return new RSVP.Promise(function(resolve, reject) { | ||
fs.writeFile(filename, data, options, function (err) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
return resolve(data); | ||
}); | ||
}); | ||
} | ||
module.exports = LessCompiler; | ||
module.exports = LessCompiler; | ||
LessCompiler.prototype = Object.create(CachingWriter.prototype) | ||
@@ -59,28 +50,22 @@ LessCompiler.prototype.constructor = LessCompiler | ||
_.merge(lessOptions, this.lessOptions) | ||
merge(lessOptions, this.lessOptions) | ||
lessOptions.paths = [path.dirname(lessOptions.filename)].concat(lessOptions.paths); | ||
data = fs.readFileSync(lessOptions.filename, 'utf8'); | ||
return new RSVP.Promise(function(resolve, reject) { | ||
return less.render(data, lessOptions). | ||
catch(function(err) { | ||
less.writeError(err, lessOptions); | ||
throw err; | ||
}). | ||
then(function (output) { | ||
var fileWriterPromises = [writeFile(destFile, output.css, { encoding: 'utf8' }) ]; | ||
var sourceMapURL = lessOptions.sourceMap && lessOptions.sourceMap.sourceMapURL; | ||
less.render(data, lessOptions).then(function (output) { | ||
var fileWriterPromises = [ writeFilePromise(destFile, output.css, { encoding: 'utf8' }) ]; | ||
var sourceMapURL = lessOptions.sourceMap && lessOptions.sourceMap.sourceMapURL; | ||
if (sourceMapURL) { | ||
fileWriterPromises.push( writeFilePromise(destDir + '/' + sourceMapURL, output.map, { encoding: 'utf8' }) ); | ||
fileWriterPromises.push( writeFile(destDir + '/' + sourceMapURL, output.map, { encoding: 'utf8' }) ); | ||
} | ||
RSVP.all(fileWriterPromises).then(function() { | ||
return resolve(output); | ||
}, function(err) { | ||
return reject(err); | ||
}); | ||
}, function (err) { | ||
less.writeError(err, lessOptions); | ||
reject(err); | ||
}); | ||
}); | ||
return RSVP.Promise.all(fileWriterPromises); | ||
}) | ||
} |
{ | ||
"name": "broccoli-less-single", | ||
"description": "Single-file-output LESS compiler for Broccoli", | ||
"version": "0.3.0", | ||
"version": "0.4.0", | ||
"author": { | ||
@@ -35,11 +35,12 @@ "name": "Gabriel Grant", | ||
"scripts": { | ||
"test": "mocha test/runner.js --reporter spec" | ||
"test": "mocha test/runner.js --reporter spec", | ||
"test:debug": "mocha debug test/runner.js --reporter spec" | ||
}, | ||
"dependencies": { | ||
"mkdirp": "^0.5.0", | ||
"lodash": "^2.4.1", | ||
"broccoli-caching-writer": "^0.5.4", | ||
"include-path-searcher": "^0.1.0", | ||
"less": "^2.5.0", | ||
"rsvp": "^3.0.17", | ||
"broccoli-caching-writer": "^0.5.4" | ||
"lodash-node": "^3.8.0", | ||
"mkdirp": "^0.5.0", | ||
"rsvp": "^3.0.17" | ||
}, | ||
@@ -53,4 +54,4 @@ "readmeFilename": "README.md", | ||
"broccoli": "^0.13.3", | ||
"mocha": "^2.2.1" | ||
"mocha": "^2.2.4" | ||
} | ||
} |
@@ -6,20 +6,19 @@ var path = require('path'); | ||
function compare (name, done, lessOptions) { | ||
lessCompile('../less', name + '.less', name + '.css', lessOptions).then(function (result) { | ||
function compare (name, lessOptions) { | ||
return lessCompile('../less', name + '.less', name + '.css', lessOptions).then(function (result) { | ||
assert.equal(result.css, read(path.join(expected, result.outputFile))); | ||
done(); | ||
}).catch(done); | ||
}); | ||
} | ||
describe('lessCompiler', function () { | ||
it('basic less preprocessing', function (done) { | ||
compare('basic', done); | ||
it('basic less preprocessing', function () { | ||
return compare('basic'); | ||
}); | ||
it('import statements functioning', function (done) { | ||
compare('import', done); | ||
it('import statements functioning', function () { | ||
return compare('import'); | ||
}); | ||
it('`lessOption` discovers paths', function (done) { | ||
compare('paths', done, { | ||
it('`lessOption` discovers paths', function () { | ||
return compare('paths', { | ||
paths: ['../less/branch'] | ||
@@ -26,0 +25,0 @@ }); |
@@ -17,11 +17,9 @@ 'use strict'; | ||
return new RSVP.Promise(function (resolve, reject) { | ||
return new broccoli.Builder(less).build().then(function (results) { | ||
resolve({ | ||
css: read(path.join(results.directory, outputFile)), | ||
directory: results.directory, | ||
outputFile: outputFile | ||
}); | ||
}); | ||
return new broccoli.Builder(less).build().then(function (results) { | ||
return { | ||
css: read(path.join(results.directory, outputFile)), | ||
directory: results.directory, | ||
outputFile: outputFile | ||
}; | ||
}); | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9659
132
+ Addedlodash-node@^3.8.0
+ Addedlodash-node@3.10.2(transitive)
- Removedlodash@^2.4.1
- Removedlodash@2.4.2(transitive)