Socket
Socket
Sign inDemoInstall

wget-improved-2

Package Overview
Dependencies
2
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    wget-improved-2

wget in nodejs, forked from wuchengwei/node-wget to add improvements and help maintain the project - forked for node-opcua


Version published
Weekly downloads
20K
increased by6.8%
Maintainers
1
Install size
121 kB
Created
Weekly downloads
 

Readme

Source

wget-improved

CircleCI

wget-improved simplifies retrieving files from any URL

Improvements over wuchengwei/node-wget

  • Handles 3xx redirects (including infinite redirect loops)
  • Passes URL parameters
  • Better error reporting
  • Does not write using append (uses w+ identical to wget)
  • Handles gzip compression, allow you to automatically gunzip the stream

Install

npm install wget-improved --save

download(src, output, options)

const wget = require('wget-improved');
const src = 'http://nodejs.org/images/logo.svg';
const output = '/tmp/logo.svg';
const options = {
    // see options below
};
let download = wget.download(src, output, options);
download.on('error', function(err) {
    console.log(err);
});
download.on('start', function(fileSize) {
    console.log(fileSize);
});
download.on('end', function(output) {
    console.log(output);
});
download.on('progress', function(progress) {
    typeof progress === 'number'
    // code to show progress bar
});

request(options, callback)

const wget = require('wget');
const options = {
    protocol: 'https',
    host: 'raw.github.com',
    path: '/Fyrd/caniuse/master/data.json',
    proxy: 'http://host:port',
    method: 'GET'
};
let req = wget.request(options, function(res) {
    let content = '';
    if (res.statusCode === 200) {
        res.on('error', function(err) {
            console.log(err);
        });
        res.on('data', function(chunk) {
            content += chunk;
        });
        res.on('end', function() {
            console.log(content);
        });
    } else {
        console.log('Server respond ' + res.statusCode);
    }
});

req.end();
req.on('error', function(err) {
    console.log(err);
});

options


options = {}
    // Set to true to have any gzip stream automatically decompressed before saving
    options.gunzip = false;
    options.proxy = {};
        options.proxy.protocol = 'http';
        options.proxy.host = 'someproxy.org';
        options.proxy.port = 1337;
        options.proxy.proxyAuth = '{basic auth}';
        options.proxy.headers = {'User-Agent': 'Node'};

CLI

# If installed globally
nwget https://raw.github.com/Fyrd/caniuse/master/data.json -O /tmp/data.json

# If not installed globally
./node_modules/.bin/nwget https://raw.github.com/Fyrd/caniuse/master/data.json -O /tmp/data.json

Changes from 2.0.0 to 3.0.0

Progress is now returned as a Number instead of a String

On start filesize can return null when the remote server does not provide content-length

Exception for not specifying protocol is now: Your URL must use either HTTP or HTTPS.

Supports handling redirects that return a relative URL.

You can now get events for the total number of bytes downloaded download.on('bytes', function(bytes) {}...)

Request headers can be specified by passing an object to options.headers.

Unit tests have been added for most download functionality and error cases. Tests are a requirement for all PRs going forward!

Keywords

FAQs

Last updated on 28 Mar 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc