123456789101112131415161718192021222324252627282930313233343536373839 |
- 'use strict';
- const fs = require('fs');
- const tar = require('tar-stream');
- const utils = require('../utils');
- const streamifier = require('streamifier');
- // stream.Writable
- class TarUncompressStream extends tar.extract {
- constructor(opts) {
- opts = opts || {};
- super(opts);
- const sourceType = utils.sourceType(opts.source);
- if (sourceType === 'file') {
- const stream = fs.createReadStream(opts.source, opts.fs);
- stream.on('error', err => this.emit('error', err));
- stream.pipe(this);
- return;
- }
- if (sourceType === 'buffer') {
- const stream = streamifier.createReadStream(opts.source, opts.streamifier);
- stream.on('error', err => this.emit('error', err));
- stream.pipe(this);
- return;
- }
- if (sourceType === 'stream') {
- opts.source.on('error', err => this.emit('error', err));
- opts.source.pipe(this);
- }
- // else: waiting to be piped
- }
- }
- module.exports = TarUncompressStream;
|