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

Version Path
ela-4.1.6 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-4.1.5 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-4.1.4 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-4.1.3 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-4.1.2 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-4.1.1 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-4.1.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-4.0.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.4.3 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.4.2 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.4.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.3.1 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.3.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.2.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.1.1 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.1.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-3.0.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-2.0.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js
ela-1.1.0 node_modules/mincer/lib/mincer/compressors/uglify_compressor.js