Skip to content

Commit

Permalink
js: add options to be passed to uglify
Browse files Browse the repository at this point in the history
  • Loading branch information
yields committed Jul 21, 2014
1 parent 26883bd commit 9bc79b8
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
16 changes: 10 additions & 6 deletions lib/index.js
Expand Up @@ -8,26 +8,30 @@ var uglify = require('uglify-js');
* Minify a `string` of an unknown language.
*
* @param {String} string
* @param {Object} opts
* @return {String}
*/

module.exports = exports = function minify (string) {
module.exports = exports = function minify (string, opts) {
var lang = detect(string);
var fn = exports[lang];
if (!fn) throw new Error('Unsupported language: ' + lang);
return fn(string);
return fn(string, opts);
};

/**
* Minify a Javascript `string`.
* Minify a Javascript `string` with optional `opts`.
*
* @param {String} string
* @param {Object} opts
* @return {String}
*/

exports.js =
exports.javascript = function (string) {
return uglify.minify(string, { fromString: true }).code;
exports.javascript = function (string, opts) {
opts = opts || {};
opts.fromString = true;
return uglify.minify(string, opts).code;
};

/**
Expand All @@ -50,4 +54,4 @@ exports.css = function (string) {

exports.html = function (string) {
return html.minify(string);
};
};
9 changes: 8 additions & 1 deletion test/index.js
Expand Up @@ -32,6 +32,13 @@ describe('minify', function () {
assert.equal(min, minify(max));
});
});

it('should pass options to uglify js', function(){
var js = '(function(){ var analytics = window.analytics = []; analytics.push(1) })();';
var opts = { mangle: { except: ['analytics'] }};
assert(!~minify(js).indexOf('var analytics'), 'expected "analytics" to be mangled');
assert(~minify(js, opts).indexOf('var analytics'), 'expected "analytics" to not be mangled');
});
});

/**
Expand Down Expand Up @@ -64,4 +71,4 @@ describe('cli', function () {
function fixture (name) {
var filename = path.resolve(__dirname, 'fixtures', name);
return fs.readFileSync(filename, 'utf8');
}
}

0 comments on commit 9bc79b8

Please sign in to comment.