description and source-codefunction ImageminPlugin() {
var _options$imageminOpti;
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _classCallCheck3.default)(this, ImageminPlugin);
// I love ES2015!
var _options$disable = options.disable,
disable = _options$disable === undefined ? false : _options$disable,
_options$test = options.test,
test = _options$test === undefined ? /.*/ : _options$test,
_options$maxConcurren = options.maxConcurrency,
maxConcurrency = _options$maxConcurren === undefined ? (0, _os.cpus)().length : _options$maxConcurren,
_options$plugins = options.plugins,
plugins = _options$plugins === undefined ? [] : _options$plugins,
_options$optipng = options.optipng,
optipng = _options$optipng === undefined ? {
optimizationLevel: 3
} : _options$optipng,
_options$gifsicle = options.gifsicle,
gifsicle = _options$gifsicle === undefined ? {
optimizationLevel: 1
} : _options$gifsicle,
_options$jpegtran = options.jpegtran,
jpegtran = _options$jpegtran === undefined ? {
progressive: false
} : _options$jpegtran,
_options$svgo = options.svgo,
svgo = _options$svgo === undefined ? {} : _options$svgo,
_options$pngquant = options.pngquant,
pngquant = _options$pngquant === undefined ? null : _options$pngquant;
this.options = {
disable,
maxConcurrency,
imageminOptions: {
plugins: []
},
testRegexes: compileTestOption(test)
};
// As long as the options aren't `null` then include the plugin. Let the destructuring above
// control whether the plugin is included by default or not.
var _arr = [[_imageminOptipng2.default, optipng], [_imageminGifsicle2.default, gifsicle], [_imageminJpegtran2.default, jpegtran
], [_imageminSvgo2.default, svgo], [_imageminPngquant2.default, pngquant]];
for (var _i = 0; _i < _arr.length; _i++) {
var _ref = _arr[_i];
var _ref2 = (0, _slicedToArray3.default)(_ref, 2);
var plugin = _ref2[0];
var pluginOptions = _ref2[1];
if (pluginOptions !== null) {
this.options.imageminOptions.plugins.push(plugin(pluginOptions));
}
}
// And finally, add any plugins that they pass in the options to the internal plugins array
(_options$imageminOpti = this.options.imageminOptions.plugins).push.apply(_options$imageminOpti, (0, _toConsumableArray3.default
)(plugins));
}