code: function transform(file, enc, cb) {
      var filePath;
  
      if (file.isStream()) {
        if (!gutil) {
          gutil = require('gulp-util');
        }
        cb(new gutil.PluginError('gulp-revsolve', 'Streaming is not supported'));
        return;
      }
  
      assets.push(file);
  
      // Pass through empty files
      if (file.isNull()) {
        file.isTextFile = false;
        cb(null, file);
        return;
      }
  
      // Get original file path
      if (file.revOrigPath) {
        filePath = file.revOrigPath;
      } else {
        filePath = file.path;
      }
  
      // Detect text files
      if (!istextorbinary) {
        istextorbinary = require('istextorbinary');
      }
      istextorbinary.isText(filePath, file.contents, function(err, result) {
        /* istanbul ignore if  */
        if (err) {
          if (!gutil) {
            gutil = require('gulp-util');
          }
          cb(new gutil.PluginError('gulp-revsolve', 'Wrong content type of file `' + file.path + '`. ' + err));
          return;
        }
  
        file.isTextFile = result;
  
        // Filter text extensions
        if (options.filterExtensions.length > 0) {
          if (!_.contains(options.filterExtensions, path.extname(file.path).substr(1))) {
            file.isTextFile = false;
          }
        }
  
        // Skip text extensions
        if (options.skipExtensions.length > 0) {
          if (_.contains(options.skipExtensions, path.extname(file.path).substr(1))) {
            file.isTextFile = false;
          }
        }
  
        cb();
      });
    }
docs: noinspection JSUnusedLocalSymbols