diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 73f3fd8..3d50b5b 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartarchive', - version: '4.0.26', + version: '4.0.27', description: 'A library for working with archive files, providing utilities for compressing and decompressing data.' } diff --git a/ts/classes.tartools.ts b/ts/classes.tartools.ts index 089ebc6..d819bf5 100644 --- a/ts/classes.tartools.ts +++ b/ts/classes.tartools.ts @@ -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();