code: function gulpPrefixer(parameter) {
      parameter.cache = parameter.cache || true;
  
      if (parameter.key instanceof Object) {
          parameter.key = parameter.key[handle.RandomNum(0, parameter.key.length)]
      }
  
      AUTH_TOKEN = new Buffer('api:' + parameter.key).toString('base64');
      if (!parameter.key) {
          throw PluginError(PLUGIN_NAME, "Missing prefix text!");
      }
      parameter.key = new Buffer(parameter.key); // allocate ahead of time
  
      if (!fs.existsSync(TEMP_DIR) || !parameter.cache) {
          handle.cleanTemp()
      }
      // Creating a stream through which each file will pass
      let stream = through.obj(function (file, enc, callback) {
          if (file.isNull()) {
              this.push(file); // Do nothing if no contents
              return callback();
          }
  
          if (file.isBuffer()) {
              handle.tinypng(file, function (data) {
                  file.contents = data;
                  this.push(file);
                  gutil.log(PLUGIN_NAME + ': [compressing]', gutil.colors.green('✔ ') + file.relative + gutil.colors.gray(' (done)'));
                  return callback();
              }.bind(this));
          }
  
          if (file.isStream()) {
              throw PluginError(PLUGIN_NAME, "Stream is not supported");
              return callback();
          }
      });
      // returning the file stream
      return stream;
  }
docs: Plugin level function (dealing with files)