Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
'use strict';
var execFile = require('child_process').execFile;
var fs = require('fs');
var imageType = require('image-type');
var pngquant = require('pngquant-bin').path;
var tempfile = require('tempfile');
var rm = require('rimraf');
/**
* pngquant image-min plugin
*
* @param {Object} opts
* @api public
*/
module.exports = function (opts) {
opts = opts || {};
return function (file, imagemin, cb) {
if (imageType(file.contents) !== 'png') {
return cb();
Imagemin.prototype._optimizePng = function () {
var args = ['-strip', 'all', '-quiet'];
var optipng = require('optipng-bin').stream;
var pngquant;
if (typeof this.optimizationLevel === 'number') {
args.push('-o', this.optimizationLevel);
}
if (this.opts.pngquant) {
pngquant = require('pngquant-bin').path;
return spawn(optipng, args).stdout.pipe(spawn(pngquant, ['-']));
}
return spawn(optipng, args);
};