requisite
Version:
A cosmic javascript bundler.
77 lines (68 loc) • 1.57 kB
JavaScript
// Generated by CoffeeScript 1.12.4
var auto, detectMinifier, minifiers, wrapper;
detectMinifier = function(minifier) {
var err;
if (/^uglify/.test(minifier)) {
return 'uglify';
}
if (minifier == null) {
try {
if (require.resolve('uglify-js')) {
return 'uglify';
}
} catch (error) {
err = error;
}
try {
if (require.resolve('esmangle')) {
return 'esmangle';
}
} catch (error) {
err = error;
throw new Error('Unable to determine minifier to use');
}
}
return minifier;
};
minifiers = {
esmangle: function(ast, opts) {
var esmangle;
if (opts == null) {
opts = {};
}
esmangle = require('esmangle');
ast = esmangle.optimize(ast, null);
if (opts.mangle) {
ast = esmangle.mangle(ast);
}
return ast;
},
uglify: function(ast, opts) {
var uast, uglify;
if (opts == null) {
opts = {};
}
uglify = require('uglify-js');
uast = uglify.AST_Node.from_mozilla_ast(ast);
uast.figure_out_scope();
uast = uast.transform(uglify.Compressor({
warnings: false
}));
if (opts.mangle) {
uast.figure_out_scope();
uast.compute_char_frequency();
uast.mangle_names();
}
return uast.to_mozilla_ast();
}
};
auto = function(ast, opts) {
var minifier;
minifier = detectMinifier(opts.minifier);
return minifiers[minifier](ast, opts);
};
wrapper = auto;
wrapper.auto = auto;
wrapper.minifiers = minifiers;
module.exports = wrapper;
//# sourceMappingURL=minify.js.map