|
|
|
@ -55,6 +55,22 @@ export class TarTools {
|
|
|
|
|
contentByteLength = fileStat.size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* here we try to harmonize all kind of entries towards a readable stream
|
|
|
|
|
*/
|
|
|
|
|
let content: plugins.smartstream.stream.Readable;
|
|
|
|
|
if (Buffer.isBuffer(optionsArg.content)) {
|
|
|
|
|
content = plugins.smartstream.stream.Readable.from(optionsArg.content);
|
|
|
|
|
} else if (typeof optionsArg.content === 'string') {
|
|
|
|
|
content = plugins.smartstream.stream.Readable.from(Buffer.from(optionsArg.content));
|
|
|
|
|
} else if (optionsArg.content instanceof plugins.smartfile.SmartFile) {
|
|
|
|
|
content = plugins.smartstream.stream.Readable.from(optionsArg.content.contents);
|
|
|
|
|
} else if (optionsArg.content instanceof plugins.smartfile.StreamFile) {
|
|
|
|
|
content = await optionsArg.content.createReadStream();
|
|
|
|
|
} else if (optionsArg.content instanceof plugins.smartstream.stream.Readable) {
|
|
|
|
|
content = optionsArg.content;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const entry = pack.entry(
|
|
|
|
|
{
|
|
|
|
|
name: fileName,
|
|
|
|
@ -73,19 +89,6 @@ export class TarTools {
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let content: plugins.smartstream.stream.Readable;
|
|
|
|
|
if (Buffer.isBuffer(optionsArg.content)) {
|
|
|
|
|
content = plugins.smartstream.stream.Readable.from(optionsArg.content);
|
|
|
|
|
} else if (typeof optionsArg.content === 'string') {
|
|
|
|
|
content = plugins.smartstream.stream.Readable.from(Buffer.from(optionsArg.content));
|
|
|
|
|
} else if (optionsArg.content instanceof plugins.smartfile.SmartFile) {
|
|
|
|
|
content = plugins.smartstream.stream.Readable.from(optionsArg.content.contents);
|
|
|
|
|
} else if (optionsArg.content instanceof plugins.smartfile.StreamFile) {
|
|
|
|
|
content = await optionsArg.content.createReadStream();
|
|
|
|
|
} else if (optionsArg.content instanceof plugins.smartstream.stream.Readable) {
|
|
|
|
|
content = optionsArg.content;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
content.pipe(entry);
|
|
|
|
|
entry.on('end', () => {
|
|
|
|
|
resolve();
|
|
|
|
|