JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1026
  • Score
    100M100P100Q105291F
  • License MIT

Gulp plugin for downloading files in parallel into Vinyl streams

Package Exports

  • gulp-download-stream
  • gulp-download-stream/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gulp-download-stream) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

gulp-download-stream Build Status Coverage Status

Request wrapper for gulp, allowing you to download files via http/https. The files contents are streamed into a stream of Vinyl files and so download in parallel / concurrently.

Installation

npm install gulp-download-stream --save

Usage

var download = require("gulp-download-stream");

Download single file

To download a single file, pass a string as the first argument to download.

download("http://domain.com/path/to/file.ext")
  .pipe(gulp.dest("downloads/"));

Download multiple files

To download multiple files, pass an array of strings as the first argument to download.

download([
  "http://domain.com/path/to/file1.ext",
  "http://domain.com/path/to/file2.ext"
])
  .pipe(gulp.dest("downloads/"));

The files are downloaded concurrently into stream of Vinyl files, and so are suitable to be piped into other gulp plugins. Each Vinyl file is also itself a stream, and so any downstream plugins must also support stream-based Vinyl files.

Specify local file name

You can specify the local file names of files downloaded. You can do this for one file

download({
  file: "newFileName.ext",
  url: "http://domain.com/path/to/file.ext"
})
  .pipe(gulp.dest("downloads/"));

or for multiple files.

download([{
  file: "newFileName1.ext",
  url: "http://domain.com/path/to/file1.ext"
}, {
  file: "newFileName2.ext",
  url: "http://domain.com/path/to/file2.ext"
}])
  .pipe(gulp.dest("downloads/"));

Pass options to request

You can pass options to request as the second argument. For example, you can request using HTTP authentication.

download("http://domain.com/path/to/file.ext", {
  "auth": {
    "user": "username",
    "pass": "password",
    "sendImmediately": false
  }
})
  .pipe(gulp.dest("downloads/"));

Error handling

For any file, if node can't connect to the server, or the server returns a status code >= 400, then the Vinyl stream will emit an error and the containing gulp task will fail.