download-package-tarball
Download a node package as a tarball, for example from github or npm
Installation
Download node at nodejs.org and install it, if you haven't already.
npm install download-package-tarball --save
Usage
/* eslint-disable import/no-extraneous-dependencies */
import download from 'download-package-tarball';
download({
// a npm tarball url will work
url: 'https://registry.npmjs.org/snappy/-/snappy-5.0.5.tgz',
dir: '/dir/where/file/will/be/downloaded'
}).then(() => {
console.log('file is now downloaded!');
}).catch(err => {
console.log('oh crap the file could not be downloaded properly');
console.log(err);
});
download({
// ... but also a github tarball url
url: 'https://api.github.com/repos/kesla/node-snappy/tarball/master',
dir: '/dir/where/file/will/be/downloaded',
// custom options that will be forwarded to got.stream(..., opts) can also be set
gotOpts: {
headers: {
beep: 'boop'
}
}
}).then(() => {
console.log('file is now downloaded!');
}).catch(err => {
console.log('oh crap the file could not be downloaded properly');
console.log(err);
});
download({
// or a tar file somewhere
url: 'http://link-to-tarball/file.tar',
dir: '/dir/where/file/will/be/downloaded'
}).then(() => {
console.log('file is now downloaded!');
}).catch(err => {
console.log('oh crap the file could not be downloaded properly');
console.log(err);
});
Tests
npm install
npm test
Dependencies
- download-tarball: Download a tarball (optionally gzipped) to a folder & extract it in the process. Uses the wonderful & super quick tar-fs & gunzip-maybe libraries.
- fs-extra: fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as mkdir -p, cp -r, and rm -rf.
- mkdirp-then: mkdirp as promised
- npm-package-arg: Parse the things that can be arguments to
npm install
- rimraf-then: rimraf as promised
- then-read-json: Read JSON file using promises
- then-tmp: Promised version of the node.js tmp module.
Dev Dependencies
- babel-cli: Babel command line.
- babel-core: Babel compiler core.
- babel-plugin-syntax-async-functions: Allow parsing of async functions
- babel-plugin-transform-async-to-generator: Turn async functions into ES2015 generators
- babel-preset-es2015-node4: Babel preset to make node@4 ES2015 compatible.
- babel-tape-runner: Babel + Tape for running your ES Next tests
- http-test-server: Create a simple http server for tests
- package-json-to-readme: Generate a README.md from package.json contents
- shx: Portable Shell Commands for Node
- tapava: the syntax of ava, run through tape
- tar-stream: tar-stream is a streaming tar parser and generator and nothing else. It is streams2 and operates purely using streams which means you can easily extract/parse tarballs without ever hitting the file system.
- xo: JavaScript happiness style linter ❤️
License
MIT
Generated by package-json-to-readme