0.0.2 • Published 3 years ago

@immutabl3/tar v0.0.2

Weekly downloads
-
License
-
Repository
-
Last release
3 years ago

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