File: //proc/1526/cwd/tana/frontend/node_modules/gulp-decompress/index.js
'use strict';
var archiveType = require('archive-type');
var Decompress = require('decompress');
var gutil = require('gulp-util');
var Transform = require('readable-stream/transform');
module.exports = function (opts) {
	opts = opts || {};
	return new Transform({
		objectMode: true,
		transform: function (file, enc, cb) {
			if (file.isNull()) {
				cb(null, file);
				return;
			}
			if (file.isStream()) {
				cb(new gutil.PluginError('gulp-decompress', 'Streaming is not supported'));
				return;
			}
			if (!archiveType(file.contents)) {
				cb(null, file);
				return;
			}
			var decompress = new Decompress()
				.src(file.contents)
				.use(Decompress.tar(opts))
				.use(Decompress.tarbz2(opts))
				.use(Decompress.targz(opts))
				.use(Decompress.zip(opts));
			decompress.run(function (err, files) {
				if (err) {
					cb(new gutil.PluginError('gulp-decompress:', err, {fileName: file.path}));
					return;
				}
				files.forEach(this.push.bind(this));
				cb();
			}.bind(this));
		}
	});
};