Sha256: 26b9e1f4f638e9c6dd8907003ecf49c1e8345ef0568a7c61ef597b34c4503b92
Contents?: true
Size: 1.54 KB
Versions: 19
Compression:
Stored size: 1.54 KB
Contents
/** * class UglifyCompressor * * Engine for CSS minification. You will need `uglify-js` Node module installed: * * npm install uglify-js * * * ##### SUBCLASS OF * * [[Template]] **/ 'use strict'; // 3rd-party var _ = require('lodash'); var UglifyJS; // initialized later // internal var Template = require('../template'); var prop = require('../common').prop; //////////////////////////////////////////////////////////////////////////////// // Class constructor var UglifyCompressor = module.exports = function UglifyCompressor() { Template.apply(this, arguments); UglifyJS = UglifyJS || Template.libs['uglify-js'] || require('uglify-js'); // Ensure UglifyJS v2 API if (!!UglifyJS.parser) { throw new Error('UglifyJS v1 not supported, please upgrade library.'); } }; require('util').inherits(UglifyCompressor, Template); // Internal (private) options storage var options = {}; /** * UglifyCompressor.configure(opts) -> Void * - opts (Object): * * Allows to set UglifyJS options. * See UglifyJS minify options for details. * * Default: `{}`. * * * ##### Example * * UglifyCompressor.configure({mangle: false}); **/ UglifyCompressor.configure = function (opts) { options = _.clone(opts); }; // Compress data UglifyCompressor.prototype.evaluate = function (/*context, locals*/) { var opts = _.merge(options, { fromString: true }); return UglifyJS.minify(this.data, opts).code; }; // Expose default MimeType of an engine prop(UglifyCompressor, 'defaultMimeType', 'application/javascript');
Version data entries
19 entries across 19 versions & 1 rubygems