Files
NapCatQQ/.pnpm-store/v3/files/7b/f41d87a34dcf8ca1d73abe1ba71f590d662e5f05bcdd1db78572d8c543e0c3d1628616a1cb6f4a16a16572264cbe6c917e9fc342df16169c2ebf4e97c75275
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

40 lines
976 B
Plaintext

'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;