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
@@ -0,0 +1,98 @@
1
+ var fs = require('fs');
2
+ var url = require('url');
3
+ var path = require('path');
4
+ var http = require('http');
5
+ var argv = require('minimist')(process.argv.slice(2));
6
+ var server;
7
+ var dirs;
8
+
9
+ function listDirs(root) {
10
+ var files = fs.readdirSync(root);
11
+ var dirs = [];
12
+
13
+ for (var i=0, l=files.length; i<l; i++) {
14
+ var file = files[i];
15
+ if (file[0] !== '.') {
16
+ var stat = fs.statSync(path.join(root, file));
17
+ if (stat.isDirectory()) {
18
+ dirs.push(file);
19
+ }
20
+ }
21
+ }
22
+
23
+ return dirs;
24
+ }
25
+
26
+
27
+ function sendResponse(statusCode, statusMessage) {
28
+ res.writeHead(statusCode);
29
+ res.write('<h1>' + statusMessage + '</h1>');
30
+ res.end();
31
+ }
32
+
33
+ function send200(res) {
34
+ sendResponse(200, 'OK');
35
+ }
36
+
37
+ function send404(res) {
38
+ sendResponse(404, 'Not Found');
39
+ }
40
+
41
+ function pipeFileToResponse(res, file, type) {
42
+ if (type) {
43
+ res.writeHead(200, {
44
+ 'Content-Type': type
45
+ });
46
+ }
47
+ fs.createReadStream(path.join(__dirname, file)).pipe(res);
48
+ }
49
+
50
+
51
+ dirs = listDirs(__dirname);
52
+
53
+ server = http.createServer(function (req, res) {
54
+ var url = req.url;
55
+
56
+ if (/axios\.min\.js$/.test(url)) {
57
+ pipeFileToResponse(res, '../dist/axios.min.js', 'text/javascript');
58
+ return;
59
+ }
60
+ if (/axios\.min\.map$/.test(url)) {
61
+ pipeFileToResponse(res, '../dist/axios.min.map', 'text/javascript');
62
+ return;
63
+ }
64
+
65
+ // Format request */ -> */index.html
66
+ if (/\/$/.test(url)) {
67
+ url += 'index.html';
68
+ }
69
+
70
+ // Format request /get -> /get/index.html
71
+ var parts = url.split('/');
72
+ if (dirs.indexOf(parts[parts.length - 1]) > -1) {
73
+ url += '/index.html';
74
+ }
75
+
76
+ // Process index.html request
77
+ if (/index\.html$/.test(url)) {
78
+ if (fs.existsSync(path.join(__dirname, url))) {
79
+ pipeFileToResponse(res, url, 'text/html');
80
+ } else {
81
+ send404(res);
82
+ }
83
+ }
84
+
85
+ // Process server request
86
+ else if (new RegExp('(' + dirs.join('|') + ')\/server').test(url)) {
87
+ if (fs.existsSync(path.join(__dirname, url + '.js'))) {
88
+ require(path.join(__dirname, url + '.js'))(req, res);
89
+ } else {
90
+ send404(res);
91
+ }
92
+ }
93
+ else {
94
+ send404(res);
95
+ }
96
+ });
97
+
98
+ server.listen(argv.p || 3000);
@@ -0,0 +1,44 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>axios - transform response example</title>
5
+ <link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
6
+ </head>
7
+ <body class="container">
8
+ <h1>transformResponse</h1>
9
+
10
+ <div class="row">
11
+ <img id="useravatar" src="" class="col-md-1"/>
12
+ <div class="col-md-3">
13
+ <strong id="username"></strong><br/>
14
+ Created: <span id="created"></span><br/>
15
+ Updated: <span id="updated"></span>
16
+ </div>
17
+ </div>
18
+
19
+ <script src="/dist/axios.min.js"></script>
20
+ <script>
21
+ var ISO_8601 = /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})Z/;
22
+ function formatDate(d) {
23
+ return (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
24
+ }
25
+
26
+ axios.get('https://api.github.com/users/mzabriskie', {
27
+ transformResponse: axios.defaults.transformResponse.concat(function (data, headers) {
28
+ Object.keys(data).forEach(function (k) {
29
+ if (ISO_8601.test(data[k])) {
30
+ data[k] = new Date(Date.parse(data[k]));
31
+ }
32
+ });
33
+ return data;
34
+ })
35
+ })
36
+ .then(function (res) {
37
+ document.getElementById('useravatar').src = res.data.avatar_url;
38
+ document.getElementById('username').innerHTML = res.data.name;
39
+ document.getElementById('created').innerHTML = formatDate(res.data.created_at);
40
+ document.getElementById('updated').innerHTML = formatDate(res.data.updated_at);
41
+ });
42
+ </script>
43
+ </body>
44
+ </html>
@@ -0,0 +1,43 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>axios - file upload example</title>
5
+ <link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
6
+ </head>
7
+ <body class="container">
8
+ <h1>file upload</h1>
9
+
10
+ <form role="form" class="form" onsubmit="return false;">
11
+ <div class="form-group">
12
+ <label for="file">File</label>
13
+ <input id="file" type="file" class="form-control"/>
14
+ </div>
15
+ <button id="upload" type="button" class="btn btn-primary">Upload</button>
16
+ </form>
17
+
18
+ <div id="output" class="container"></div>
19
+
20
+ <script src="/axios.min.js"></script>
21
+ <script>
22
+ (function () {
23
+ var output = document.getElementById('output');
24
+ document.getElementById('upload').onclick = function () {
25
+ var data = new FormData();
26
+ data.append('foo', 'bar');
27
+ data.append('file', document.getElementById('file').files[0]);
28
+
29
+ axios.put('/upload/server', data)
30
+ .then(function (res) {
31
+ output.className = 'container';
32
+ output.innerHTML = res.data;
33
+ })
34
+ .catch(function (res) {
35
+ output.className = 'container text-danger';
36
+ output.innerHTML = res.data;
37
+ });
38
+ };
39
+ })();
40
+ </script>
41
+ </body>
42
+ </html>
43
+
@@ -0,0 +1,11 @@
1
+ module.exports = function (req, res) {
2
+ var data = '';
3
+
4
+ req.on('data', function (chunk) {
5
+ data += chunk;
6
+ });
7
+
8
+ req.on('end', function () {
9
+ console.log(data);
10
+ });
11
+ };
@@ -1,3 +1,5 @@
1
+ 'use strict';
2
+
1
3
  var defaults = require('./../defaults');
2
4
  var utils = require('./../utils');
3
5
  var buildUrl = require('./../helpers/buildUrl');
@@ -52,27 +54,28 @@ module.exports = function httpAdapter(resolve, reject, config) {
52
54
  // Create the request
53
55
  var transport = parsed.protocol === 'https:' ? https : http;
54
56
  var req = transport.request(options, function (res) {
55
- var responseText = '';
57
+ var responseBuffer = [];
56
58
  res.on('data', function (chunk) {
57
- responseText += chunk;
59
+ responseBuffer.push(chunk);
58
60
  });
59
61
 
60
62
  res.on('end', function () {
61
63
  var response = {
62
64
  data: transformData(
63
- responseText,
65
+ Buffer.concat(responseBuffer).toString('utf8'),
64
66
  res.headers,
65
67
  config.transformResponse
66
68
  ),
67
69
  status: res.statusCode,
70
+ statusText: res.statusMessage,
68
71
  headers: res.headers,
69
72
  config: config
70
73
  };
71
74
 
72
75
  // Resolve or reject the Promise based on the status
73
- (res.statusCode >= 200 && res.statusCode < 300
74
- ? resolve
75
- : reject)(response);
76
+ (res.statusCode >= 200 && res.statusCode < 300 ?
77
+ resolve :
78
+ reject)(response);
76
79
  });
77
80
  });
78
81
 
@@ -83,4 +86,4 @@ module.exports = function httpAdapter(resolve, reject, config) {
83
86
 
84
87
  // Send the request
85
88
  req.end(data);
86
- };
89
+ };
@@ -1,3 +1,7 @@
1
+ 'use strict';
2
+
3
+ /*global ActiveXObject:true*/
4
+
1
5
  var defaults = require('./../defaults');
2
6
  var utils = require('./../utils');
3
7
  var buildUrl = require('./../helpers/buildUrl');
@@ -15,40 +19,42 @@ module.exports = function xhrAdapter(resolve, reject, config) {
15
19
  );
16
20
 
17
21
  // Merge headers
18
- var headers = utils.merge(
22
+ var requestHeaders = utils.merge(
19
23
  defaults.headers.common,
20
24
  defaults.headers[config.method] || {},
21
25
  config.headers || {}
22
26
  );
23
27
 
24
28
  if (utils.isFormData(data)) {
25
- delete headers['Content-Type']; // Let the browser set it
29
+ delete requestHeaders['Content-Type']; // Let the browser set it
26
30
  }
27
31
 
28
32
  // Create the request
29
- var request = new(XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP');
33
+ var request = new (XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP');
30
34
  request.open(config.method.toUpperCase(), buildUrl(config.url, config.params), true);
31
35
 
32
36
  // Listen for ready state
33
37
  request.onreadystatechange = function () {
34
38
  if (request && request.readyState === 4) {
35
39
  // Prepare the response
36
- var headers = parseHeaders(request.getAllResponseHeaders());
40
+ var responseHeaders = parseHeaders(request.getAllResponseHeaders());
41
+ var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;
37
42
  var response = {
38
43
  data: transformData(
39
- request.responseText,
40
- headers,
44
+ responseData,
45
+ responseHeaders,
41
46
  config.transformResponse
42
47
  ),
43
48
  status: request.status,
44
- headers: headers,
49
+ statusText: request.statusText,
50
+ headers: responseHeaders,
45
51
  config: config
46
52
  };
47
53
 
48
54
  // Resolve or reject the Promise based on the status
49
- (request.status >= 200 && request.status < 300
50
- ? resolve
51
- : reject)(response);
55
+ (request.status >= 200 && request.status < 300 ?
56
+ resolve :
57
+ reject)(response);
52
58
 
53
59
  // Clean up request
54
60
  request = null;
@@ -56,18 +62,18 @@ module.exports = function xhrAdapter(resolve, reject, config) {
56
62
  };
57
63
 
58
64
  // Add xsrf header
59
- var xsrfValue = urlIsSameOrigin(config.url)
60
- ? cookies.read(config.xsrfCookieName || defaults.xsrfCookieName)
61
- : undefined;
65
+ var xsrfValue = urlIsSameOrigin(config.url) ?
66
+ cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) :
67
+ undefined;
62
68
  if (xsrfValue) {
63
- headers[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
69
+ requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
64
70
  }
65
71
 
66
72
  // Add headers to the request
67
- utils.forEach(headers, function (val, key) {
73
+ utils.forEach(requestHeaders, function (val, key) {
68
74
  // Remove Content-Type if data is undefined
69
75
  if (!data && key.toLowerCase() === 'content-type') {
70
- delete headers[key];
76
+ delete requestHeaders[key];
71
77
  }
72
78
  // Otherwise add header to the request
73
79
  else {
@@ -97,4 +103,4 @@ module.exports = function xhrAdapter(resolve, reject, config) {
97
103
 
98
104
  // Send the request
99
105
  request.send(data);
100
- };
106
+ };
package/lib/axios.js CHANGED
@@ -1,3 +1,5 @@
1
+ 'use strict';
2
+
1
3
  var defaults = require('./defaults');
2
4
  var utils = require('./utils');
3
5
  var deprecatedMethod = require('./helpers/deprecatedMethod');
@@ -5,7 +7,14 @@ var dispatchRequest = require('./core/dispatchRequest');
5
7
  var InterceptorManager = require('./core/InterceptorManager');
6
8
 
7
9
  // Polyfill ES6 Promise if needed
8
- require('es6-promise').polyfill();
10
+ (function () {
11
+ // webpack is being used to set es6-promise to the native Promise
12
+ // for the standalone build. It's necessary to make sure polyfill exists.
13
+ var P = require('es6-promise');
14
+ if (P && typeof P.polyfill === 'function') {
15
+ P.polyfill();
16
+ }
17
+ })();
9
18
 
10
19
  var axios = module.exports = function axios(config) {
11
20
  config = utils.merge({
@@ -73,29 +82,30 @@ axios.interceptors = {
73
82
  };
74
83
 
75
84
  // Provide aliases for supported request methods
76
- createShortMethods('delete', 'get', 'head');
77
- createShortMethodsWithData('post', 'put', 'patch');
78
-
79
- function createShortMethods() {
80
- utils.forEach(arguments, function (method) {
81
- axios[method] = function (url, config) {
82
- return axios(utils.merge(config || {}, {
83
- method: method,
84
- url: url
85
- }));
86
- };
87
- });
88
- }
89
-
90
- function createShortMethodsWithData() {
91
- utils.forEach(arguments, function (method) {
92
- axios[method] = function (url, data, config) {
93
- return axios(utils.merge(config || {}, {
94
- method: method,
95
- url: url,
96
- data: data
97
- }));
98
- };
99
- });
100
- }
85
+ (function () {
86
+ function createShortMethods() {
87
+ utils.forEach(arguments, function (method) {
88
+ axios[method] = function (url, config) {
89
+ return axios(utils.merge(config || {}, {
90
+ method: method,
91
+ url: url
92
+ }));
93
+ };
94
+ });
95
+ }
96
+
97
+ function createShortMethodsWithData() {
98
+ utils.forEach(arguments, function (method) {
99
+ axios[method] = function (url, data, config) {
100
+ return axios(utils.merge(config || {}, {
101
+ method: method,
102
+ url: url,
103
+ data: data
104
+ }));
105
+ };
106
+ });
107
+ }
101
108
 
109
+ createShortMethods('delete', 'get', 'head');
110
+ createShortMethodsWithData('post', 'put', 'patch');
111
+ })();
@@ -4,7 +4,7 @@ var utils = require('./../utils');
4
4
 
5
5
  function InterceptorManager() {
6
6
  this.handlers = [];
7
- };
7
+ }
8
8
 
9
9
  /**
10
10
  * Add a new interceptor to the stack
@@ -45,9 +45,8 @@ InterceptorManager.prototype.forEach = function (fn) {
45
45
  utils.forEach(this.handlers, function (h) {
46
46
  if (h !== null) {
47
47
  fn(h);
48
- }
48
+ }
49
49
  });
50
50
  };
51
51
 
52
52
  module.exports = InterceptorManager;
53
-
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var Promise = require('es6-promise').Promise;
4
-
5
3
  /**
6
4
  * Dispatch a request to the server using whichever adapter
7
5
  * is supported by the current environment.
package/lib/defaults.js CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  var utils = require('./utils');
4
4
 
5
- var JSON_START = /^\s*(\[|\{[^\{])/;
6
- var JSON_END = /[\}\]]\s*$/;
7
5
  var PROTECTION_PREFIX = /^\)\]\}',?\n/;
8
6
  var DEFAULT_CONTENT_TYPE = {
9
7
  'Content-Type': 'application/x-www-form-urlencoded'
@@ -11,6 +9,9 @@ var DEFAULT_CONTENT_TYPE = {
11
9
 
12
10
  module.exports = {
13
11
  transformRequest: [function (data, headers) {
12
+ if(utils.isFormData(data)) {
13
+ return data;
14
+ }
14
15
  if (utils.isArrayBuffer(data)) {
15
16
  return data;
16
17
  }
@@ -30,9 +31,9 @@ module.exports = {
30
31
  transformResponse: [function (data) {
31
32
  if (typeof data === 'string') {
32
33
  data = data.replace(PROTECTION_PREFIX, '');
33
- if (JSON_START.test(data) && JSON_END.test(data)) {
34
+ try {
34
35
  data = JSON.parse(data);
35
- }
36
+ } catch (e) {}
36
37
  }
37
38
  return data;
38
39
  }],
@@ -48,4 +49,4 @@ module.exports = {
48
49
 
49
50
  xsrfCookieName: 'XSRF-TOKEN',
50
51
  xsrfHeaderName: 'X-XSRF-TOKEN'
51
- };
52
+ };
@@ -34,4 +34,4 @@ module.exports = {
34
34
  remove: function remove(name) {
35
35
  this.write(name, '', Date.now() - 86400000);
36
36
  }
37
- };
37
+ };
@@ -18,7 +18,7 @@ var utils = require('./../utils');
18
18
  module.exports = function parseHeaders(headers) {
19
19
  var parsed = {}, key, val, i;
20
20
 
21
- if (!headers) return parsed;
21
+ if (!headers) { return parsed; }
22
22
 
23
23
  utils.forEach(headers.split('\n'), function(line) {
24
24
  i = line.indexOf(':');
@@ -31,4 +31,4 @@ module.exports = function parseHeaders(headers) {
31
31
  });
32
32
 
33
33
  return parsed;
34
- };
34
+ };
@@ -1,3 +1,5 @@
1
+ 'use strict';
2
+
1
3
  /**
2
4
  * Syntactic sugar for invoking a function and expanding an array for arguments.
3
5
  *
@@ -22,4 +24,4 @@ module.exports = function spread(callback) {
22
24
  return function (arr) {
23
25
  callback.apply(null, arr);
24
26
  };
25
- };
27
+ };
@@ -16,4 +16,4 @@ module.exports = function transformData(data, headers, fns) {
16
16
  });
17
17
 
18
18
  return data;
19
- };
19
+ };
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var msie = /(msie|trident)/i.test(navigator.userAgent);
4
3
  var utils = require('./../utils');
4
+ var msie = /(msie|trident)/i.test(navigator.userAgent);
5
5
  var urlParsingNode = document.createElement('a');
6
- var originUrl = urlResolve(window.location.href);
6
+ var originUrl;
7
7
 
8
8
  /**
9
9
  * Parse a URL to discover it's components
@@ -31,12 +31,14 @@ function urlResolve(url) {
31
31
  hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
32
32
  hostname: urlParsingNode.hostname,
33
33
  port: urlParsingNode.port,
34
- pathname: (urlParsingNode.pathname.charAt(0) === '/')
35
- ? urlParsingNode.pathname
36
- : '/' + urlParsingNode.pathname
34
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
35
+ urlParsingNode.pathname :
36
+ '/' + urlParsingNode.pathname
37
37
  };
38
38
  }
39
39
 
40
+ originUrl = urlResolve(window.location.href);
41
+
40
42
  /**
41
43
  * Determine if a URL shares the same origin as the current location
42
44
  *
@@ -47,4 +49,4 @@ module.exports = function urlIsSameOrigin(requestUrl) {
47
49
  var parsed = (utils.isString(requestUrl)) ? urlResolve(requestUrl) : requestUrl;
48
50
  return (parsed.protocol === originUrl.protocol &&
49
51
  parsed.host === originUrl.host);
50
- };
52
+ };
package/lib/utils.js CHANGED
@@ -1,3 +1,7 @@
1
+ 'use strict';
2
+
3
+ /*global toString:true*/
4
+
1
5
  // utils is a library of generic helper functions non-specific to axios
2
6
 
3
7
  var toString = Object.prototype.toString;
@@ -145,16 +149,16 @@ function forEach(obj, fn) {
145
149
  }
146
150
 
147
151
  // Check if obj is array-like
148
- var isArray = obj.constructor === Array || typeof obj.callee === 'function';
152
+ var isArrayLike = isArray(obj) || (typeof obj === 'object' && !isNaN(obj.length));
149
153
 
150
154
  // Force an array if not already something iterable
151
- if (typeof obj !== 'object' && !isArray) {
155
+ if (typeof obj !== 'object' && !isArrayLike) {
152
156
  obj = [obj];
153
157
  }
154
158
 
155
159
  // Iterate over array values
156
- if (isArray) {
157
- for (var i=0, l=obj.length; i<l; i++) {
160
+ if (isArrayLike) {
161
+ for (var i = 0, l = obj.length; i < l; i++) {
158
162
  fn.call(null, obj[i], i, obj);
159
163
  }
160
164
  }
@@ -185,7 +189,7 @@ function forEach(obj, fn) {
185
189
  * @param {Object} obj1 Object to merge
186
190
  * @returns {Object} Result of all merge properties
187
191
  */
188
- function merge(obj1/*, obj2, obj3, ...*/) {
192
+ function merge(/*obj1, obj2, obj3, ...*/) {
189
193
  var result = {};
190
194
  forEach(arguments, function (obj) {
191
195
  forEach(obj, function (val, key) {
@@ -210,4 +214,4 @@ module.exports = {
210
214
  forEach: forEach,
211
215
  merge: merge,
212
216
  trim: trim
213
- };
217
+ };
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "axios",
3
- "version": "0.5.0",
3
+ "version": "0.5.4",
4
4
  "description": "Promise based HTTP client for the browser and node.js",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "test": "grunt test",
8
- "start": "node ./sandbox/server.js"
8
+ "start": "node ./sandbox/server.js",
9
+ "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
9
10
  },
10
11
  "repository": {
11
12
  "type": "git",
@@ -28,24 +29,31 @@
28
29
  "es6-promise": "^2.0.1"
29
30
  },
30
31
  "devDependencies": {
32
+ "coveralls": "^2.11.2",
31
33
  "grunt": "^0.4.5",
32
- "grunt-banner": "^0.2.3",
34
+ "grunt-banner": "^0.3.1",
33
35
  "grunt-contrib-clean": "^0.6.0",
34
36
  "grunt-contrib-nodeunit": "^0.4.1",
35
37
  "grunt-contrib-watch": "^0.6.1",
36
- "grunt-karma": "^0.8.3",
37
- "grunt-ts": "^1.12.1",
38
- "grunt-update-json": "^0.1.3",
38
+ "grunt-eslint": "^9.0.0",
39
+ "grunt-karma": "^0.10.1",
40
+ "grunt-ts": "^3.0.0",
41
+ "grunt-update-json": "^0.2.1",
39
42
  "grunt-webpack": "^1.0.8",
40
- "karma": "^0.12.21",
41
- "karma-jasmine": "^0.1.5",
42
- "karma-jasmine-ajax": "^0.1.4",
43
+ "karma": "^0.12.31",
44
+ "karma-coverage": "^0.2.7",
45
+ "karma-jasmine": "^0.3.5",
46
+ "karma-jasmine-ajax": "^0.1.12",
43
47
  "karma-phantomjs-launcher": "^0.1.4",
44
- "load-grunt-tasks": "^0.6.0",
45
- "webpack": "^1.4.0-beta9",
46
- "webpack-dev-server": "^1.4.10"
48
+ "karma-webpack": "^1.5.0",
49
+ "load-grunt-tasks": "^3.1.0",
50
+ "webpack": "^1.7.2",
51
+ "webpack-dev-server": "^1.7.0"
47
52
  },
48
53
  "browser": {
49
54
  "./lib/adapters/http.js": "./lib/adapters/xhr.js"
55
+ },
56
+ "typescript": {
57
+ "definition": "./axios.d.ts"
50
58
  }
51
59
  }