requisite
Version:
A cosmic javascript bundler.
83 lines (74 loc) • 1.88 kB
JavaScript
// Generated by CoffeeScript 1.10.0
var auto, detectMinifier, minifiers, wrapper;
detectMinifier = function(minifier) {
var err, error, error1;
if (minifier == null) {
minifier = 'esmangle';
}
if (/^uglify/.test(minifier)) {
return 'uglify';
}
try {
if (require.resolve('uglify-js')) {
return 'uglify';
}
} catch (error) {
err = error;
}
try {
require.resolve('esmangle');
} catch (error1) {
err = error1;
throw new Error('Unable to determine minifier to use');
}
return minifier;
};
minifiers = {
esmangle: function(ast) {
var escodegen, esmangle, mangled, optimized;
escodegen = require('escodegen');
esmangle = require('esmangle');
optimized = esmangle.optimize(ast, null);
mangled = esmangle.mangle(optimized);
return escodegen.generate(mangled, {
comment: false,
format: {
indent: {
style: '',
base: 0
},
compact: true,
escapeless: true,
hexadecimal: true,
parentheses: false,
quotes: 'auto',
renumber: true,
semicolons: false
}
});
},
uglify: function(ast) {
var compressed, compressor, uglified, uglify;
uglify = require('uglify-js');
uglified = uglify.AST_Node.from_mozilla_ast(ast);
uglified.figure_out_scope();
compressor = uglify.Compressor({
warnings: false
});
compressed = uglified.transform(compressor);
compressed.figure_out_scope();
compressed.compute_char_frequency();
compressed.mangle_names();
return compressed.print_to_string();
}
};
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