axios 0.5.0 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of axios might be problematic. Click here for more details.

Files changed (54) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/COOKBOOK.md +127 -0
  3. package/README.md +7 -2
  4. package/coverage/lcov-report/base.css +182 -0
  5. package/coverage/lcov-report/dist/axios.js.html +6075 -0
  6. package/coverage/lcov-report/dist/index.html +85 -0
  7. package/coverage/lcov-report/index.html +85 -0
  8. package/coverage/lcov-report/prettify.css +1 -0
  9. package/coverage/lcov-report/prettify.js +1 -0
  10. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  11. package/coverage/lcov-report/sorter.js +156 -0
  12. package/coverage/lcov-report/webpack.tests.js.html +10236 -0
  13. package/coverage/lcov.info +2366 -0
  14. package/dist/axios.amd.js +118 -116
  15. package/dist/axios.amd.map +1 -1
  16. package/dist/axios.amd.min.js +3 -3
  17. package/dist/axios.amd.min.map +1 -1
  18. package/dist/axios.amd.standalone.js +118 -116
  19. package/dist/axios.amd.standalone.map +1 -1
  20. package/dist/axios.amd.standalone.min.js +2 -2
  21. package/dist/axios.amd.standalone.min.map +1 -1
  22. package/dist/axios.js +118 -116
  23. package/dist/axios.map +1 -1
  24. package/dist/axios.min.js +3 -3
  25. package/dist/axios.min.map +1 -1
  26. package/dist/axios.standalone.js +118 -116
  27. package/dist/axios.standalone.map +1 -1
  28. package/dist/axios.standalone.min.js +2 -2
  29. package/dist/axios.standalone.min.map +1 -1
  30. package/examples/README.md +9 -0
  31. package/examples/all/index.html +44 -0
  32. package/examples/amd/index.html +37 -0
  33. package/examples/get/index.html +33 -0
  34. package/examples/get/people.json +26 -0
  35. package/examples/post/index.html +45 -0
  36. package/examples/server.js +98 -0
  37. package/examples/transform-response/index.html +44 -0
  38. package/examples/upload/index.html +43 -0
  39. package/examples/upload/server.js +11 -0
  40. package/lib/adapters/http.js +10 -7
  41. package/lib/adapters/xhr.js +23 -17
  42. package/lib/axios.js +36 -26
  43. package/lib/core/InterceptorManager.js +2 -3
  44. package/lib/core/dispatchRequest.js +0 -2
  45. package/lib/defaults.js +6 -5
  46. package/lib/helpers/cookies.js +1 -1
  47. package/lib/helpers/parseHeaders.js +2 -2
  48. package/lib/helpers/spread.js +3 -1
  49. package/lib/helpers/transformData.js +1 -1
  50. package/lib/helpers/urlIsSameOrigin.js +8 -6
  51. package/lib/utils.js +10 -6
  52. package/package.json +20 -12
  53. package/webpack.config.js +5 -10
  54. package/webpack.tests.js +2 -0
package/dist/axios.js CHANGED
@@ -51,6 +51,8 @@ var axios =
51
51
  /* 1 */
52
52
  /***/ function(module, exports, __webpack_require__) {
53
53
 
54
+ 'use strict';
55
+
54
56
  var defaults = __webpack_require__(2);
55
57
  var utils = __webpack_require__(3);
56
58
  var deprecatedMethod = __webpack_require__(4);
@@ -58,7 +60,14 @@ var axios =
58
60
  var InterceptorManager = __webpack_require__(6);
59
61
 
60
62
  // Polyfill ES6 Promise if needed
61
- __webpack_require__(9).polyfill();
63
+ (function () {
64
+ // webpack is being used to set es6-promise to the native Promise
65
+ // for the standalone build. It's necessary to make sure polyfill exists.
66
+ var P = __webpack_require__(9);
67
+ if (P && typeof P.polyfill === 'function') {
68
+ P.polyfill();
69
+ }
70
+ })();
62
71
 
63
72
  var axios = module.exports = function axios(config) {
64
73
  config = utils.merge({
@@ -126,32 +135,33 @@ var axios =
126
135
  };
127
136
 
128
137
  // Provide aliases for supported request methods
129
- createShortMethods('delete', 'get', 'head');
130
- createShortMethodsWithData('post', 'put', 'patch');
131
-
132
- function createShortMethods() {
133
- utils.forEach(arguments, function (method) {
134
- axios[method] = function (url, config) {
135
- return axios(utils.merge(config || {}, {
136
- method: method,
137
- url: url
138
- }));
139
- };
140
- });
141
- }
138
+ (function () {
139
+ function createShortMethods() {
140
+ utils.forEach(arguments, function (method) {
141
+ axios[method] = function (url, config) {
142
+ return axios(utils.merge(config || {}, {
143
+ method: method,
144
+ url: url
145
+ }));
146
+ };
147
+ });
148
+ }
142
149
 
143
- function createShortMethodsWithData() {
144
- utils.forEach(arguments, function (method) {
145
- axios[method] = function (url, data, config) {
146
- return axios(utils.merge(config || {}, {
147
- method: method,
148
- url: url,
149
- data: data
150
- }));
151
- };
152
- });
153
- }
150
+ function createShortMethodsWithData() {
151
+ utils.forEach(arguments, function (method) {
152
+ axios[method] = function (url, data, config) {
153
+ return axios(utils.merge(config || {}, {
154
+ method: method,
155
+ url: url,
156
+ data: data
157
+ }));
158
+ };
159
+ });
160
+ }
154
161
 
162
+ createShortMethods('delete', 'get', 'head');
163
+ createShortMethodsWithData('post', 'put', 'patch');
164
+ })();
155
165
 
156
166
 
157
167
  /***/ },
@@ -162,8 +172,6 @@ var axios =
162
172
 
163
173
  var utils = __webpack_require__(3);
164
174
 
165
- var JSON_START = /^\s*(\[|\{[^\{])/;
166
- var JSON_END = /[\}\]]\s*$/;
167
175
  var PROTECTION_PREFIX = /^\)\]\}',?\n/;
168
176
  var DEFAULT_CONTENT_TYPE = {
169
177
  'Content-Type': 'application/x-www-form-urlencoded'
@@ -171,6 +179,9 @@ var axios =
171
179
 
172
180
  module.exports = {
173
181
  transformRequest: [function (data, headers) {
182
+ if(utils.isFormData(data)) {
183
+ return data;
184
+ }
174
185
  if (utils.isArrayBuffer(data)) {
175
186
  return data;
176
187
  }
@@ -190,9 +201,9 @@ var axios =
190
201
  transformResponse: [function (data) {
191
202
  if (typeof data === 'string') {
192
203
  data = data.replace(PROTECTION_PREFIX, '');
193
- if (JSON_START.test(data) && JSON_END.test(data)) {
204
+ try {
194
205
  data = JSON.parse(data);
195
- }
206
+ } catch (e) {}
196
207
  }
197
208
  return data;
198
209
  }],
@@ -210,10 +221,15 @@ var axios =
210
221
  xsrfHeaderName: 'X-XSRF-TOKEN'
211
222
  };
212
223
 
224
+
213
225
  /***/ },
214
226
  /* 3 */
215
227
  /***/ function(module, exports, __webpack_require__) {
216
228
 
229
+ 'use strict';
230
+
231
+ /*global toString:true*/
232
+
217
233
  // utils is a library of generic helper functions non-specific to axios
218
234
 
219
235
  var toString = Object.prototype.toString;
@@ -361,16 +377,16 @@ var axios =
361
377
  }
362
378
 
363
379
  // Check if obj is array-like
364
- var isArray = obj.constructor === Array || typeof obj.callee === 'function';
380
+ var isArrayLike = isArray(obj) || (typeof obj === 'object' && !isNaN(obj.length));
365
381
 
366
382
  // Force an array if not already something iterable
367
- if (typeof obj !== 'object' && !isArray) {
383
+ if (typeof obj !== 'object' && !isArrayLike) {
368
384
  obj = [obj];
369
385
  }
370
386
 
371
387
  // Iterate over array values
372
- if (isArray) {
373
- for (var i=0, l=obj.length; i<l; i++) {
388
+ if (isArrayLike) {
389
+ for (var i = 0, l = obj.length; i < l; i++) {
374
390
  fn.call(null, obj[i], i, obj);
375
391
  }
376
392
  }
@@ -401,7 +417,7 @@ var axios =
401
417
  * @param {Object} obj1 Object to merge
402
418
  * @returns {Object} Result of all merge properties
403
419
  */
404
- function merge(obj1/*, obj2, obj3, ...*/) {
420
+ function merge(/*obj1, obj2, obj3, ...*/) {
405
421
  var result = {};
406
422
  forEach(arguments, function (obj) {
407
423
  forEach(obj, function (val, key) {
@@ -428,6 +444,7 @@ var axios =
428
444
  trim: trim
429
445
  };
430
446
 
447
+
431
448
  /***/ },
432
449
  /* 4 */
433
450
  /***/ function(module, exports, __webpack_require__) {
@@ -462,8 +479,6 @@ var axios =
462
479
 
463
480
  /* WEBPACK VAR INJECTION */(function(process) {'use strict';
464
481
 
465
- var Promise = __webpack_require__(9).Promise;
466
-
467
482
  /**
468
483
  * Dispatch a request to the server using whichever adapter
469
484
  * is supported by the current environment.
@@ -501,7 +516,7 @@ var axios =
501
516
 
502
517
  function InterceptorManager() {
503
518
  this.handlers = [];
504
- };
519
+ }
505
520
 
506
521
  /**
507
522
  * Add a new interceptor to the stack
@@ -542,18 +557,19 @@ var axios =
542
557
  utils.forEach(this.handlers, function (h) {
543
558
  if (h !== null) {
544
559
  fn(h);
545
- }
560
+ }
546
561
  });
547
562
  };
548
563
 
549
564
  module.exports = InterceptorManager;
550
-
551
565
 
552
566
 
553
567
  /***/ },
554
568
  /* 7 */
555
569
  /***/ function(module, exports, __webpack_require__) {
556
570
 
571
+ 'use strict';
572
+
557
573
  /**
558
574
  * Syntactic sugar for invoking a function and expanding an array for arguments.
559
575
  *
@@ -580,10 +596,15 @@ var axios =
580
596
  };
581
597
  };
582
598
 
599
+
583
600
  /***/ },
584
601
  /* 8 */
585
602
  /***/ function(module, exports, __webpack_require__) {
586
603
 
604
+ 'use strict';
605
+
606
+ /*global ActiveXObject:true*/
607
+
587
608
  var defaults = __webpack_require__(2);
588
609
  var utils = __webpack_require__(3);
589
610
  var buildUrl = __webpack_require__(11);
@@ -601,40 +622,42 @@ var axios =
601
622
  );
602
623
 
603
624
  // Merge headers
604
- var headers = utils.merge(
625
+ var requestHeaders = utils.merge(
605
626
  defaults.headers.common,
606
627
  defaults.headers[config.method] || {},
607
628
  config.headers || {}
608
629
  );
609
630
 
610
631
  if (utils.isFormData(data)) {
611
- delete headers['Content-Type']; // Let the browser set it
632
+ delete requestHeaders['Content-Type']; // Let the browser set it
612
633
  }
613
634
 
614
635
  // Create the request
615
- var request = new(XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP');
636
+ var request = new (XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP');
616
637
  request.open(config.method.toUpperCase(), buildUrl(config.url, config.params), true);
617
638
 
618
639
  // Listen for ready state
619
640
  request.onreadystatechange = function () {
620
641
  if (request && request.readyState === 4) {
621
642
  // Prepare the response
622
- var headers = parseHeaders(request.getAllResponseHeaders());
643
+ var responseHeaders = parseHeaders(request.getAllResponseHeaders());
644
+ var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;
623
645
  var response = {
624
646
  data: transformData(
625
- request.responseText,
626
- headers,
647
+ responseData,
648
+ responseHeaders,
627
649
  config.transformResponse
628
650
  ),
629
651
  status: request.status,
630
- headers: headers,
652
+ statusText: request.statusText,
653
+ headers: responseHeaders,
631
654
  config: config
632
655
  };
633
656
 
634
657
  // Resolve or reject the Promise based on the status
635
- (request.status >= 200 && request.status < 300
636
- ? resolve
637
- : reject)(response);
658
+ (request.status >= 200 && request.status < 300 ?
659
+ resolve :
660
+ reject)(response);
638
661
 
639
662
  // Clean up request
640
663
  request = null;
@@ -642,18 +665,18 @@ var axios =
642
665
  };
643
666
 
644
667
  // Add xsrf header
645
- var xsrfValue = urlIsSameOrigin(config.url)
646
- ? cookies.read(config.xsrfCookieName || defaults.xsrfCookieName)
647
- : undefined;
668
+ var xsrfValue = urlIsSameOrigin(config.url) ?
669
+ cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) :
670
+ undefined;
648
671
  if (xsrfValue) {
649
- headers[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
672
+ requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
650
673
  }
651
674
 
652
675
  // Add headers to the request
653
- utils.forEach(headers, function (val, key) {
676
+ utils.forEach(requestHeaders, function (val, key) {
654
677
  // Remove Content-Type if data is undefined
655
678
  if (!data && key.toLowerCase() === 'content-type') {
656
- delete headers[key];
679
+ delete requestHeaders[key];
657
680
  }
658
681
  // Otherwise add header to the request
659
682
  else {
@@ -685,6 +708,7 @@ var axios =
685
708
  request.send(data);
686
709
  };
687
710
 
711
+
688
712
  /***/ },
689
713
  /* 9 */
690
714
  /***/ function(module, exports, __webpack_require__) {
@@ -1658,69 +1682,40 @@ var axios =
1658
1682
  // shim for using process in browser
1659
1683
 
1660
1684
  var process = module.exports = {};
1685
+ var queue = [];
1686
+ var draining = false;
1661
1687
 
1662
- process.nextTick = (function () {
1663
- var canSetImmediate = typeof window !== 'undefined'
1664
- && window.setImmediate;
1665
- var canMutationObserver = typeof window !== 'undefined'
1666
- && window.MutationObserver;
1667
- var canPost = typeof window !== 'undefined'
1668
- && window.postMessage && window.addEventListener
1669
- ;
1670
-
1671
- if (canSetImmediate) {
1672
- return function (f) { return window.setImmediate(f) };
1688
+ function drainQueue() {
1689
+ if (draining) {
1690
+ return;
1673
1691
  }
1674
-
1675
- var queue = [];
1676
-
1677
- if (canMutationObserver) {
1678
- var hiddenDiv = document.createElement("div");
1679
- var observer = new MutationObserver(function () {
1680
- var queueList = queue.slice();
1681
- queue.length = 0;
1682
- queueList.forEach(function (fn) {
1683
- fn();
1684
- });
1685
- });
1686
-
1687
- observer.observe(hiddenDiv, { attributes: true });
1688
-
1689
- return function nextTick(fn) {
1690
- if (!queue.length) {
1691
- hiddenDiv.setAttribute('yes', 'no');
1692
- }
1693
- queue.push(fn);
1694
- };
1692
+ draining = true;
1693
+ var currentQueue;
1694
+ var len = queue.length;
1695
+ while(len) {
1696
+ currentQueue = queue;
1697
+ queue = [];
1698
+ var i = -1;
1699
+ while (++i < len) {
1700
+ currentQueue[i]();
1701
+ }
1702
+ len = queue.length;
1695
1703
  }
1696
-
1697
- if (canPost) {
1698
- window.addEventListener('message', function (ev) {
1699
- var source = ev.source;
1700
- if ((source === window || source === null) && ev.data === 'process-tick') {
1701
- ev.stopPropagation();
1702
- if (queue.length > 0) {
1703
- var fn = queue.shift();
1704
- fn();
1705
- }
1706
- }
1707
- }, true);
1708
-
1709
- return function nextTick(fn) {
1710
- queue.push(fn);
1711
- window.postMessage('process-tick', '*');
1712
- };
1704
+ draining = false;
1705
+ }
1706
+ process.nextTick = function (fun) {
1707
+ queue.push(fun);
1708
+ if (!draining) {
1709
+ setTimeout(drainQueue, 0);
1713
1710
  }
1714
-
1715
- return function nextTick(fn) {
1716
- setTimeout(fn, 0);
1717
- };
1718
- })();
1711
+ };
1719
1712
 
1720
1713
  process.title = 'browser';
1721
1714
  process.browser = true;
1722
1715
  process.env = {};
1723
1716
  process.argv = [];
1717
+ process.version = ''; // empty string to avoid regexp issues
1718
+ process.versions = {};
1724
1719
 
1725
1720
  function noop() {}
1726
1721
 
@@ -1741,6 +1736,7 @@ var axios =
1741
1736
  process.chdir = function (dir) {
1742
1737
  throw new Error('process.chdir is not supported');
1743
1738
  };
1739
+ process.umask = function() { return 0; };
1744
1740
 
1745
1741
 
1746
1742
  /***/ },
@@ -1843,6 +1839,7 @@ var axios =
1843
1839
  }
1844
1840
  };
1845
1841
 
1842
+
1846
1843
  /***/ },
1847
1844
  /* 13 */
1848
1845
  /***/ function(module, exports, __webpack_require__) {
@@ -1867,7 +1864,7 @@ var axios =
1867
1864
  module.exports = function parseHeaders(headers) {
1868
1865
  var parsed = {}, key, val, i;
1869
1866
 
1870
- if (!headers) return parsed;
1867
+ if (!headers) { return parsed; }
1871
1868
 
1872
1869
  utils.forEach(headers.split('\n'), function(line) {
1873
1870
  i = line.indexOf(':');
@@ -1882,6 +1879,7 @@ var axios =
1882
1879
  return parsed;
1883
1880
  };
1884
1881
 
1882
+
1885
1883
  /***/ },
1886
1884
  /* 14 */
1887
1885
  /***/ function(module, exports, __webpack_require__) {
@@ -1906,16 +1904,17 @@ var axios =
1906
1904
  return data;
1907
1905
  };
1908
1906
 
1907
+
1909
1908
  /***/ },
1910
1909
  /* 15 */
1911
1910
  /***/ function(module, exports, __webpack_require__) {
1912
1911
 
1913
1912
  'use strict';
1914
1913
 
1915
- var msie = /(msie|trident)/i.test(navigator.userAgent);
1916
1914
  var utils = __webpack_require__(3);
1915
+ var msie = /(msie|trident)/i.test(navigator.userAgent);
1917
1916
  var urlParsingNode = document.createElement('a');
1918
- var originUrl = urlResolve(window.location.href);
1917
+ var originUrl;
1919
1918
 
1920
1919
  /**
1921
1920
  * Parse a URL to discover it's components
@@ -1943,12 +1942,14 @@ var axios =
1943
1942
  hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
1944
1943
  hostname: urlParsingNode.hostname,
1945
1944
  port: urlParsingNode.port,
1946
- pathname: (urlParsingNode.pathname.charAt(0) === '/')
1947
- ? urlParsingNode.pathname
1948
- : '/' + urlParsingNode.pathname
1945
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
1946
+ urlParsingNode.pathname :
1947
+ '/' + urlParsingNode.pathname
1949
1948
  };
1950
1949
  }
1951
1950
 
1951
+ originUrl = urlResolve(window.location.href);
1952
+
1952
1953
  /**
1953
1954
  * Determine if a URL shares the same origin as the current location
1954
1955
  *
@@ -1961,6 +1962,7 @@ var axios =
1961
1962
  parsed.host === originUrl.host);
1962
1963
  };
1963
1964
 
1965
+
1964
1966
  /***/ },
1965
1967
  /* 16 */
1966
1968
  /***/ function(module, exports, __webpack_require__) {
@@ -1985,5 +1987,5 @@ var axios =
1985
1987
 
1986
1988
 
1987
1989
  /***/ }
1988
- /******/ ])
1990
+ /******/ ]);
1989
1991
  //# sourceMappingURL=axios.map