Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(606)

Unified Diff: node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js

Issue 800513006: Added vulcanize under third_party/npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js
diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b523473b2b487ea9bbe5450ae7ed8e2017f9b9a5
--- /dev/null
+++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js
@@ -0,0 +1,105 @@
+'use strict';
+var http = require('http');
+var https = require('https');
+var urlLib = require('url');
+var zlib = require('zlib');
+var PassThrough = require('stream').PassThrough;
+var assign = require('object-assign');
+
+module.exports = function (url, opts, cb) {
+ if (typeof opts === 'function') {
+ // if `cb` has been specified but `opts` has not
+ cb = opts;
+ opts = {};
+ } else if (!opts) {
+ // opts has not been specified
+ opts = {};
+ }
+
+ // extract own options
+ var encoding = opts.encoding;
+ delete opts.encoding;
+
+ // returns a proxy stream to the response
+ // if no callback has been provided
+ var proxy;
+ if (!cb) {
+ proxy = new PassThrough();
+
+ // forward errors on the stream
+ cb = function (err) {
+ proxy.emit('error', err);
+ };
+ }
+
+ // merge additional headers
+ opts.headers = assign({
+ 'user-agent': 'https://github.com/sindresorhus/got',
+ 'accept-encoding': 'gzip,deflate'
+ }, opts.headers || {});
+
+ var redirectCount = 0;
+
+ var get = function (url, opts, cb) {
+ var parsedUrl = urlLib.parse(url);
+ var fn = parsedUrl.protocol === 'https:' ? https : http;
+ var arg = assign({}, parsedUrl, opts);
+
+ fn.get(arg, function (res) {
+ // redirect
+ if (res.statusCode < 400 && res.statusCode >= 300 && res.headers.location) {
+ res.destroy();
+
+ if (++redirectCount > 10) {
+ cb(new Error('Redirected 10 times. Aborting.'));
+ return;
+ }
+
+ get(urlLib.resolve(url, res.headers.location), opts, cb);
+ return;
+ }
+
+ if (res.statusCode < 200 || res.statusCode > 299) {
+ res.destroy();
+ cb(res.statusCode);
+ return;
+ }
+
+ if (['gzip', 'deflate'].indexOf(res.headers['content-encoding']) !== -1) {
+ var unzip = zlib.createUnzip();
+ res.pipe(unzip);
+ res = unzip;
+ }
+
+ // pipe the response to the proxy if in proxy mode
+ if (proxy) {
+ res.on('error', proxy.emit.bind(proxy, 'error')).pipe(proxy);
+ return;
+ }
+
+ res.once('error', cb);
+
+ var chunks = [];
+ var len = 0;
+
+ res.on('data', function (chunk) {
+ chunks.push(chunk);
+ len += chunk.length;
+ });
+
+ res.once('end', function () {
+ var data = Buffer.concat(chunks, len);
+
+ if (encoding !== null) {
+ data = data.toString(encoding || 'utf8');
+ }
+
+ cb(null, data, res);
+ });
+ }).once('error', cb);
+ };
+
+ get(url, opts, cb);
+
+ return proxy;
+};

Powered by Google App Engine
This is Rietveld 408576698