From 5f76fa016f102062b8233fd7e0cce71c45bf9a3d Mon Sep 17 00:00:00 2001 From: Vsevolod Strukchinsky Date: Mon, 16 Nov 2015 00:16:45 +0500 Subject: [PATCH] basic consts and function arrow replacement --- index.js | 84 +++++++++++++++++++++++++--------------------------- package.json | 1 + 2 files changed, 41 insertions(+), 44 deletions(-) diff --git a/index.js b/index.js index a7cb7b9..62bfbd8 100644 --- a/index.js +++ b/index.js @@ -1,22 +1,21 @@ -'use strict'; -var EventEmitter = require('events').EventEmitter; -var http = require('http'); -var https = require('https'); -var urlLib = require('url'); -var querystring = require('querystring'); -var objectAssign = require('object-assign'); -var duplexify = require('duplexify'); -var isStream = require('is-stream'); -var readAllStream = require('read-all-stream'); -var timedOut = require('timed-out'); -var urlParseLax = require('url-parse-lax'); -var lowercaseKeys = require('lowercase-keys'); -var isRedirect = require('is-redirect'); -var unzipResponse = require('unzip-response'); -var createErrorClass = require('create-error-class'); -var nodeStatusCodes = require('node-status-codes'); -var isPlainObj = require('is-plain-obj'); -var parseJson = require('parse-json'); +const EventEmitter = require('events').EventEmitter; +const http = require('http'); +const https = require('https'); +const urlLib = require('url'); +const querystring = require('querystring'); +const objectAssign = require('object-assign'); +const duplexify = require('duplexify'); +const isStream = require('is-stream'); +const readAllStream = require('read-all-stream'); +const timedOut = require('timed-out'); +const urlParseLax = require('url-parse-lax'); +const lowercaseKeys = require('lowercase-keys'); +const isRedirect = require('is-redirect'); +const unzipResponse = require('unzip-response'); +const createErrorClass = require('create-error-class'); +const nodeStatusCodes = require('node-status-codes'); +const isPlainObj = require('is-plain-obj'); +const parseJson = require('parse-json'); function requestAsEventEmitter(opts) { opts = opts || {}; @@ -25,10 +24,10 @@ function requestAsEventEmitter(opts) { var redirectCount = 0; var retryCount = 0; - var get = function (opts) { + var get = opts => { var fn = opts.protocol === 'https:' ? https : http; - var req = fn.request(opts, function (res) { + var req = fn.request(opts, res => { var statusCode = res.statusCode; if (isRedirect(statusCode) && 'location' in res.headers && (opts.method === 'GET' || opts.method === 'HEAD')) { @@ -48,14 +47,14 @@ function requestAsEventEmitter(opts) { return; } - // do not write ee.bind(...) instead of function - it will break gzip in Node.js 0.10 setImmediate(function () { ee.emit('response', typeof unzipResponse === 'function' && req.method !== 'HEAD' ? unzipResponse(res) : res); }); }); - req.once('error', function (err) { - var backoff = opts.retries(++retryCount, err); + req.once('error', err => { + const backoff = opts.retries(++retryCount, err); + if (backoff) { setTimeout(get, backoff, opts); return; @@ -68,7 +67,7 @@ function requestAsEventEmitter(opts) { timedOut(req, opts.timeout); } - setImmediate(ee.emit.bind(ee), 'request', req); + setImmediate(() => ee.emit('request', req)); }; get(opts); @@ -78,7 +77,7 @@ function requestAsEventEmitter(opts) { function asCallback(opts, cb) { var ee = requestAsEventEmitter(opts); - ee.on('request', function (req) { + ee.on('request', req => { if (isStream(opts.body)) { opts.body.pipe(req); opts.body = undefined; @@ -88,8 +87,8 @@ function asCallback(opts, cb) { req.end(opts.body); }); - ee.on('response', function (res) { - readAllStream(res, opts.encoding, function (err, data) { + ee.on('response', res => + readAllStream(res, opts.encoding, (err, data) => { var statusCode = res.statusCode; if (err) { @@ -111,31 +110,28 @@ function asCallback(opts, cb) { } cb(err, data, res); - }); - }); + }) + ); ee.on('error', cb); } function asPromise(opts) { - return new Promise(function (resolve, reject) { - asCallback(opts, function (err, data, response) { + return new Promise((resolve, reject) => + asCallback(opts, (err, data, response) => { if (response) { response.body = data; } if (err) { - Object.defineProperty(err, 'response', { - value: response, - enumerable: false - }); + Object.defineProperty(err, 'response', {value: response}); reject(err); return; } resolve(response); - }); - }); + }) + ); } function asStream(opts) { @@ -146,14 +142,14 @@ function asStream(opts) { } if (opts.body) { - proxy.write = function () { + proxy.write = () => { throw new Error('got\'s stream is not writable when options.body is used'); }; } var ee = requestAsEventEmitter(opts); - ee.on('request', function (req) { + ee.on('request', req => { proxy.emit('request', req); if (isStream.readable(opts.body)) { @@ -174,7 +170,7 @@ function asStream(opts) { req.end(); }); - ee.on('response', function (res) { + ee.on('response', res => { var statusCode = res.statusCode; proxy.setReadable(res); @@ -307,8 +303,8 @@ var helpers = [ 'delete' ]; -helpers.forEach(function (el) { - got[el] = function (url, opts, cb) { +helpers.forEach(el => { + got[el] = (url, opts, cb) => { if (typeof opts === 'function') { cb = opts; opts = {}; @@ -326,7 +322,7 @@ got.stream = function (url, opts, cb) { return asStream(normalizeArguments(url, opts)); }; -helpers.forEach(function (el) { +helpers.forEach(el => { got.stream[el] = function (url, opts) { return got.stream(url, objectAssign({}, opts, {method: el.toUpperCase()})); }; diff --git a/package.json b/package.json index 0ecde42..1d61b22 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "xo": "*" }, "xo": { + "esnext": true, "ignores": [ "test/**" ]