<commit_before>/*jslint node:true */
var through = require('through2'),
  Imagemin = require('imagemin');

module.exports = function (options, info) {
  'use strict';
  return through(function (buffer, encoding, callback) {
    var imagemin = new Imagemin().src(buffer);

    switch (info.ext) {
    case '.png':
      imagemin.use(Imagemin.optipng({ optimizationLevel : 3 }));
      break;
    case '.gif':
      imagemin.use(Imagemin.gifsicle({ interlaced: true }));
      break;
    case '.jpg':
    case '.jpeg':
      imagemin.use(Imagemin.jpegtran({ progressive: true }));
      break;
    default:
      callback(null, buffer);
      return;
    }

    imagemin.optimize(function (err, file) {
      if (err) {
        console.log(err);
      }
      callback(null, file.contents);
    });
  });
};
<commit_msg>adapt new imagemin api<commit_after>/*jslint node:true */
var through = require('through2'),
  Imagemin = require('imagemin');

module.exports = function (options, info) {
  'use strict';
  return through(function (buffer, encoding, callback) {
    var imagemin = new Imagemin().src(buffer),
      isOldApi = !!imagemin.optimize;

    switch (info.ext) {
    case '.png':
      imagemin.use(Imagemin.optipng({ optimizationLevel : 3 }));
      break;
    case '.gif':
      imagemin.use(Imagemin.gifsicle({ interlaced: true }));
      break;
    case '.jpg':
    case '.jpeg':
      imagemin.use(Imagemin.jpegtran({ progressive: true }));
      break;
    default:
      callback(null, buffer);
      return;
    }

    imagemin[isOldApi ? 'optimize' : 'run'](function (err, files) {
      if (err) {
        console.log(err);
      }
      callback(null, isOldApi ? files.contents : files[0].contents);
    });
  });
};

{'fraction_non_alphanumeric': 0.15822784810126583, 'fraction_numerical': 0.0028768699654775605, 'mean_word_length': 2.796943231441048, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2433299', 'n_tokens_mistral': 583, 'n_tokens_neox': 563, 'n_words': 121}