Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vladfrangu/async-dl-github-repo

Asynchronously download a GitHub Repo
https://github.com/vladfrangu/async-dl-github-repo

download download-github download-github-repo github hacktoberfest

Last synced: about 23 hours ago
JSON representation

Asynchronously download a GitHub Repo

Awesome Lists containing this project

README

        





NPM version
NPM downloads
Dependencies



NPM info


# async-dl-github-repo

Asynchronously download a GitHub Repo

## Installation

**Node.js 8.0 or newer is required**

To install this module, just run:

```
npm i async-dl-github-repo
```

## Usage and Examples

This module has one function, that is exported by default.

### download(repo, destination, downloadOnly = false)

Download a GitHub repo, `repo` should be in the format: `Username/ProjectName[#branch-name]`, where `#branch-name` is optional. (Don't include the brackets). By default, the branch is set to `master`.

`path` should be relative to the [process cwd](https://nodejs.org/api/process.html#process_process_cwd)

`downloadOnly` is optional, but you can make it just save the archive

Returns a Promise that resolves with the zip and final paths if the download was successful, or rejects if there were any errors.

Example:

```js
const dlRepo = require("async-dl-github-repo");

dlRepo("vladfrangu/async-dl-github-repo", "./temp").then(results => {
console.log(`Downloaded successfuly at ${results.finalPath}`);
}).catch(err => {
console.error(`Download errored: ${err}`);
});
```

Downloading just the archive:

```js
const dlRepo = require("async-dl-github-repo");

dlRepo("vladfrangu/async-dl-github-repo", "./temp", true).then(results => {
console.log(`Downloaded at ${results.zipPath}`);
}).catch(err => {
console.error(`Download errored: ${err}`);
});
```