UNPKG

@obsidize/tar-browserify

Version:

Browser-based tar utility for packing and unpacking tar files (stream-capable)

54 lines (53 loc) 2.07 kB
import { __asyncGenerator, __asyncValues, __await, __awaiter } from "tslib"; import { ArchiveReader } from './archive-reader'; import { ArchiveWriter } from './archive-writer'; /** * Main entry point for extracting and creating tarballs. * See TarIterator and TarEntry for more granular options. */ export class Archive extends ArchiveWriter { constructor(entries) { super(entries); } /** * Parses an Archive instance from the given buffer, with all entries read into memory. * The buffer should come from a complete, uncompressed tar file. */ static extract(buffer) { return __awaiter(this, void 0, void 0, function* () { const reader = yield ArchiveReader.wrap(buffer); const entries = yield reader.readAllEntries(); return new Archive(entries); }); } /** * Iterate over entries in-place from a given source buffer. * The buffer should come from a complete, uncompressed tar file. */ static read(buffer) { return __asyncGenerator(this, arguments, function* read_1() { var _a, e_1, _b, _c; const reader = yield __await(ArchiveReader.wrap(buffer)); try { for (var _d = true, reader_1 = __asyncValues(reader), reader_1_1; reader_1_1 = yield __await(reader_1.next()), _a = reader_1_1.done, !_a;) { _c = reader_1_1.value; _d = false; try { const entry = _c; yield yield __await(entry); } finally { _d = true; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (!_d && !_a && (_b = reader_1.return)) yield __await(_b.call(reader_1)); } finally { if (e_1) throw e_1.error; } } }); } }