@immutabl3/tar

0.0.2 • Public • Published

tar

fast, browser-oriented tarball manipulation with zero dependencies

why?

this is a rewrite of tarballjs. enhancements:

  • fixes imports by using esmodules
  • works in node
  • allows tree-shaking
  • smaller bundle size
  • better developer experience

usage

untar

takes an ArrayBuffer and returns an array of entries representing files and folders

import { untar } from '@immutabl3/tar';

const res = await fetch(url);
const buffer = await res.arrayBuffer();
const entries = await untar(buffer);

Entry

  • .path: string - file's tar path
  • .ext: string - file's extension (e.g. png, jpg)
  • .type: string - 'file' or 'directory'
  • .size: number - file's byte size
  • .getText(): string - read the file as a text string
  • .getBinary(): Uint8Array - read the file as bytes
  • .getBlob(mimetype): Blob - read the file as a Blob with the provided mime

tar

creates a writer to add folders and files to. writing the tar returns a Uint8Array

import { tar } from '@immutabl3/tar';

const writer = tar();
writer.addFolder('myfolder/');
writer.addText('myfolder/first.txt', 'this is some text 🙂');
writer.addText('myfolder/second.txt', 'some more text with 🙃 emojis');
const result = await writer.write();

limitations

  • File name (including path) has to be less than 100 characters.
  • Maximum total file size seems to be limited to somewhere between 500MB to 1GB (exact limit is unknown).

tests

  • npm install
  • npm test

references

Readme

Keywords

none

Package Sidebar

Install

npm i @immutabl3/tar

Weekly Downloads

0

Version

0.0.2

License

none

Unpacked Size

53.2 kB

Total Files

15

Last publish

Collaborators

  • immutabl3