Skip to content

Commit ce46ebf

Browse files
author
Gleb Mikheev
committed
conversion of non transparent png to jpg are become optional
1 parent 6112a90 commit ce46ebf

File tree

1 file changed

+19
-32
lines changed

1 file changed

+19
-32
lines changed

index.js

Lines changed: 19 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ function debug() {
2828
}
2929

3030
const defaultSettings = {
31+
optimizer: {
32+
covertPngToJpg:true
33+
},
3134
pngquant: {
3235
quality: '65-80',
3336
speed: 4
@@ -55,13 +58,12 @@ module.exports = function (content) {
5558

5659
// extend default configs
5760
const settings = {};
58-
59-
settings.mozjpeg = Object.assign({}, defaultSettings.mozjpeg, config.mozjpeg || {});
60-
settings.pngquant = Object.assign({}, defaultSettings.pngquant, config.pngquant || {});
61-
settings.svgo = Object.assign({}, defaultSettings.svgo, config.svgo || {});
61+
settings.optimizer = Object.assign({}, defaultSettings.optimizer, config.optimizer || {});
62+
settings.mozjpeg = Object.assign({}, settings.optimizer, defaultSettings.mozjpeg, config.mozjpeg || {});
63+
settings.pngquant = Object.assign({}, settings.optimizer, defaultSettings.pngquant, config.pngquant || {});
64+
settings.svgo = Object.assign({}, settings.optimizer, defaultSettings.svgo, config.svgo || {});
6265

6366
// add settings to cacheKey by extension
64-
console.log(fileExt);
6567
switch(fileExt) {
6668
case 'png':
6769
cacheKey = getHashOf(JSON.stringify([cacheKey, settings.pngquant]));
@@ -88,7 +90,6 @@ module.exports = function (content) {
8890
cache.has(cacheKey),
8991
cache.has(`${cacheKey}-checksum`),
9092
]).then(checks => {
91-
return promisePrepareImage.resolve();
9293
// if cache is not found
9394
if (!checks[0] || !checks[1]) {
9495
debug('> cache not found, optimize');
@@ -120,34 +121,20 @@ module.exports = function (content) {
120121
streamifier.createReadStream(content)
121122
.pipe(new PNG())
122123
.on('metadata', data => {
124+
if (!settings.optimizer.covertPngToJpg || data.alpha) {
125+
return promiseOptimizeImage.resolve();
126+
}
127+
123128
// if alpha not found - convert buffer to jpg
124-
if (!data.alpha) {
125-
debug('Alpha not found!');
126-
// var request = this._compilation._modules[this.request];
127-
// delete this._compilation._modules[this.request];
128-
129-
// request.request = request.request.replace(/.png$/,'.jpg');
130-
// request.resource = request.resource.replace(/.png$/,'.jpg');
131-
// request.userRequest = request.userRequest.replace(/.png$/,'.jpg');
132-
// request.rawRequest = request.rawRequest.replace(/.png$/,'.jpg');
133-
this.resource = this.resource.replace(/.png$/,'.jpg');
134-
console.log(this.resourcePath);
135-
// console.log(this.resourcePath);
136-
137-
138-
// this._compilation._modules[this.request] = request;
139-
140-
gm(content).toBuffer('JPG', (err, buffer) => {
141-
if (err) {
142-
return callback(err);
143-
}
144-
145-
content = buffer;
146-
promiseOptimizeImage.resolve();
147-
});
148-
} else {
129+
this.resource = this.resource.replace(/.png$/,'.jpg');
130+
gm(content).toBuffer('JPG', (err, buffer) => {
131+
if (err) {
132+
return callback(err);
133+
}
134+
135+
content = buffer;
149136
promiseOptimizeImage.resolve();
150-
}
137+
});
151138
});
152139
} else {
153140
promiseOptimizeImage.resolve();

0 commit comments

Comments
 (0)