Skip to content

Commit ec8bbeb

Browse files
committed
Stable Version 0.4.3.
1 parent 5d35c06 commit ec8bbeb

File tree

5 files changed

+164
-69
lines changed

5 files changed

+164
-69
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "js-data-http",
33
"description": "http adapter for js-data.",
4-
"version": "0.4.2",
4+
"version": "0.4.3",
55
"homepage": "http://www.js-data.io/js-data-http",
66
"repository": {
77
"type": "git",

dist/js-data-http.js

Lines changed: 157 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @author Jason Dobry <[email protected]>
33
* @file js-data-http.js
4-
* @version 0.4.2 - Homepage <http://www.js-data.iojs-data-http/>
4+
* @version 0.4.3 - Homepage <http://www.js-data.iojs-data-http/>
55
* @copyright (c) 2014 Jason Dobry
66
* @license MIT <https://github.com/js-data/js-data-http/blob/master/LICENSE>
77
*
@@ -10,13 +10,13 @@
1010
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.DSHttpAdapter=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
1111
module.exports = require('./lib/axios');
1212
},{"./lib/axios":3}],2:[function(require,module,exports){
13-
var buildUrl = require('./../buildUrl');
14-
var cookies = require('./../cookies');
1513
var defaults = require('./../defaults');
16-
var parseHeaders = require('./../parseHeaders');
17-
var transformData = require('./../transformData');
18-
var urlIsSameOrigin = require('./../urlIsSameOrigin');
1914
var utils = require('./../utils');
15+
var buildUrl = require('./../helpers/buildUrl');
16+
var cookies = require('./../helpers/cookies');
17+
var parseHeaders = require('./../helpers/parseHeaders');
18+
var transformData = require('./../helpers/transformData');
19+
var urlIsSameOrigin = require('./../helpers/urlIsSameOrigin');
2020

2121
module.exports = function xhrAdapter(resolve, reject, config) {
2222
// Transform request data
@@ -99,19 +99,23 @@ module.exports = function xhrAdapter(resolve, reject, config) {
9999
}
100100
}
101101

102+
if (utils.isArrayBuffer(data)) {
103+
data = new DataView(data);
104+
}
105+
102106
// Send the request
103107
request.send(data);
104108
};
105-
},{"./../buildUrl":4,"./../cookies":5,"./../defaults":6,"./../parseHeaders":7,"./../transformData":9,"./../urlIsSameOrigin":10,"./../utils":11}],3:[function(require,module,exports){
109+
},{"./../defaults":4,"./../helpers/buildUrl":5,"./../helpers/cookies":6,"./../helpers/parseHeaders":7,"./../helpers/transformData":9,"./../helpers/urlIsSameOrigin":10,"./../utils":11}],3:[function(require,module,exports){
106110
(function (process){
107111
var Promise = require('es6-promise').Promise;
108112
var defaults = require('./defaults');
109113
var utils = require('./utils');
110-
var spread = require('./spread');
111114

112115
var axios = module.exports = function axios(config) {
113116
config = utils.merge({
114117
method: 'get',
118+
headers: {},
115119
transformRequest: defaults.transformRequest,
116120
transformResponse: defaults.transformResponse
117121
}, config);
@@ -134,8 +138,23 @@ var axios = module.exports = function axios(config) {
134138
}
135139
});
136140

141+
function deprecatedMethod(method, instead, docs) {
142+
try {
143+
console.warn(
144+
'DEPRECATED method `' + method + '`.' +
145+
(instead ? ' Use `' + instead + '` instead.' : '') +
146+
' This method will be removed in a future release.');
147+
148+
if (docs) {
149+
console.warn('For more information about usage see ' + docs);
150+
}
151+
} catch (e) {}
152+
}
153+
137154
// Provide alias for success
138155
promise.success = function success(fn) {
156+
deprecatedMethod('success', 'then', 'https://github.com/mzabriskie/axios/blob/master/README.md#response-api');
157+
139158
promise.then(function(response) {
140159
fn(response.data, response.status, response.headers, response.config);
141160
});
@@ -144,6 +163,8 @@ var axios = module.exports = function axios(config) {
144163

145164
// Provide alias for error
146165
promise.error = function error(fn) {
166+
deprecatedMethod('error', 'catch', 'https://github.com/mzabriskie/axios/blob/master/README.md#response-api');
167+
147168
promise.then(null, function(response) {
148169
fn(response.data, response.status, response.headers, response.config);
149170
});
@@ -160,7 +181,7 @@ axios.defaults = defaults;
160181
axios.all = function (promises) {
161182
return Promise.all(promises);
162183
};
163-
axios.spread = spread;
184+
axios.spread = require('./helpers/spread');
164185

165186
// Provide aliases for supported request methods
166187
createShortMethods('delete', 'get', 'head');
@@ -189,11 +210,63 @@ function createShortMethodsWithData() {
189210
});
190211
}
191212
}).call(this,require('_process'))
192-
},{"./adapters/http":2,"./adapters/xhr":2,"./defaults":6,"./spread":8,"./utils":11,"_process":22,"es6-promise":12}],4:[function(require,module,exports){
213+
},{"./adapters/http":2,"./adapters/xhr":2,"./defaults":4,"./helpers/spread":8,"./utils":11,"_process":22,"es6-promise":12}],4:[function(require,module,exports){
193214
'use strict';
194215

195216
var utils = require('./utils');
196217

218+
var JSON_START = /^\s*(\[|\{[^\{])/;
219+
var JSON_END = /[\}\]]\s*$/;
220+
var PROTECTION_PREFIX = /^\)\]\}',?\n/;
221+
var DEFAULT_CONTENT_TYPE = {
222+
'Content-Type': 'application/x-www-form-urlencoded'
223+
};
224+
225+
module.exports = {
226+
transformRequest: [function (data, headers) {
227+
if (utils.isArrayBuffer(data)) {
228+
return data;
229+
}
230+
if (utils.isArrayBufferView(data)) {
231+
return data.buffer;
232+
}
233+
if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {
234+
// Set application/json if no Content-Type has been specified
235+
if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {
236+
headers['Content-Type'] = 'application/json;charset=utf-8';
237+
}
238+
return JSON.stringify(data);
239+
}
240+
return data;
241+
}],
242+
243+
transformResponse: [function (data) {
244+
if (typeof data === 'string') {
245+
data = data.replace(PROTECTION_PREFIX, '');
246+
if (JSON_START.test(data) && JSON_END.test(data)) {
247+
data = JSON.parse(data);
248+
}
249+
}
250+
return data;
251+
}],
252+
253+
headers: {
254+
common: {
255+
'Accept': 'application/json, text/plain, */*'
256+
},
257+
patch: utils.merge(DEFAULT_CONTENT_TYPE),
258+
post: utils.merge(DEFAULT_CONTENT_TYPE),
259+
put: utils.merge(DEFAULT_CONTENT_TYPE)
260+
},
261+
262+
xsrfCookieName: 'XSRF-TOKEN',
263+
xsrfHeaderName: 'X-XSRF-TOKEN'
264+
};
265+
},{"./utils":11}],5:[function(require,module,exports){
266+
'use strict';
267+
268+
var utils = require('./../utils');
269+
197270
function encode(val) {
198271
return encodeURIComponent(val).
199272
replace(/%40/gi, '@').
@@ -235,10 +308,10 @@ module.exports = function buildUrl(url, params) {
235308

236309
return url;
237310
};
238-
},{"./utils":11}],5:[function(require,module,exports){
311+
},{"./../utils":11}],6:[function(require,module,exports){
239312
'use strict';
240313

241-
var utils = require('./utils');
314+
var utils = require('./../utils');
242315

243316
module.exports = {
244317
write: function write(name, value, expires, path, domain, secure) {
@@ -273,52 +346,10 @@ module.exports = {
273346
this.write(name, '', Date.now() - 86400000);
274347
}
275348
};
276-
},{"./utils":11}],6:[function(require,module,exports){
277-
'use strict';
278-
279-
var utils = require('./utils');
280-
281-
var JSON_START = /^\s*(\[|\{[^\{])/;
282-
var JSON_END = /[\}\]]\s*$/;
283-
var PROTECTION_PREFIX = /^\)\]\}',?\n/;
284-
var CONTENT_TYPE_APPLICATION_JSON = {
285-
'Content-Type': 'application/json;charset=utf-8'
286-
};
287-
288-
module.exports = {
289-
transformRequest: [function (data) {
290-
return utils.isObject(data) &&
291-
!utils.isFile(data) &&
292-
!utils.isBlob(data) ?
293-
JSON.stringify(data) : data;
294-
}],
295-
296-
transformResponse: [function (data) {
297-
if (typeof data === 'string') {
298-
data = data.replace(PROTECTION_PREFIX, '');
299-
if (JSON_START.test(data) && JSON_END.test(data)) {
300-
data = JSON.parse(data);
301-
}
302-
}
303-
return data;
304-
}],
305-
306-
headers: {
307-
common: {
308-
'Accept': 'application/json, text/plain, */*'
309-
},
310-
patch: utils.merge(CONTENT_TYPE_APPLICATION_JSON),
311-
post: utils.merge(CONTENT_TYPE_APPLICATION_JSON),
312-
put: utils.merge(CONTENT_TYPE_APPLICATION_JSON)
313-
},
314-
315-
xsrfCookieName: 'XSRF-TOKEN',
316-
xsrfHeaderName: 'X-XSRF-TOKEN'
317-
};
318-
},{"./utils":11}],7:[function(require,module,exports){
349+
},{"./../utils":11}],7:[function(require,module,exports){
319350
'use strict';
320351

321-
var utils = require('./utils');
352+
var utils = require('./../utils');
322353

323354
/**
324355
* Parse headers into an object
@@ -350,7 +381,7 @@ module.exports = function parseHeaders(headers) {
350381

351382
return parsed;
352383
};
353-
},{"./utils":11}],8:[function(require,module,exports){
384+
},{"./../utils":11}],8:[function(require,module,exports){
354385
/**
355386
* Syntactic sugar for invoking a function and expanding an array for arguments.
356387
*
@@ -379,7 +410,7 @@ module.exports = function spread(callback) {
379410
},{}],9:[function(require,module,exports){
380411
'use strict';
381412

382-
var utils = require('./utils');
413+
var utils = require('./../utils');
383414

384415
/**
385416
* Transform the data for a request or a response
@@ -396,11 +427,11 @@ module.exports = function transformData(data, headers, fns) {
396427

397428
return data;
398429
};
399-
},{"./utils":11}],10:[function(require,module,exports){
430+
},{"./../utils":11}],10:[function(require,module,exports){
400431
'use strict';
401432

402433
var msie = /(msie|trident)/i.test(navigator.userAgent);
403-
var utils = require('./utils');
434+
var utils = require('./../utils');
404435
var urlParsingNode = document.createElement('a');
405436
var originUrl = urlResolve(window.location.href);
406437

@@ -447,7 +478,7 @@ module.exports = function urlIsSameOrigin(requestUrl) {
447478
return (parsed.protocol === originUrl.protocol &&
448479
parsed.host === originUrl.host);
449480
};
450-
},{"./utils":11}],11:[function(require,module,exports){
481+
},{"./../utils":11}],11:[function(require,module,exports){
451482
// utils is a library of generic helper functions non-specific to axios
452483

453484
var toString = Object.prototype.toString;
@@ -462,6 +493,30 @@ function isArray(val) {
462493
return toString.call(val) === '[object Array]';
463494
}
464495

496+
/**
497+
* Determine if a value is an ArrayBuffer
498+
*
499+
* @param {Object} val The value to test
500+
* @returns {boolean} True if value is an ArrayBuffer, otherwise false
501+
*/
502+
function isArrayBuffer(val) {
503+
return toString.call(val) === '[object ArrayBuffer]';
504+
}
505+
506+
/**
507+
* Determine if a value is a view on an ArrayBuffer
508+
*
509+
* @param {Object} val The value to test
510+
* @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
511+
*/
512+
function isArrayBufferView(val) {
513+
if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
514+
return ArrayBuffer.isView(val);
515+
} else {
516+
return (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);
517+
}
518+
}
519+
465520
/**
466521
* Determine if a value is a String
467522
*
@@ -482,6 +537,16 @@ function isNumber(val) {
482537
return typeof val === 'number';
483538
}
484539

540+
/**
541+
* Determine if a value is undefined
542+
*
543+
* @param {Object} val The value to test
544+
* @returns {boolean} True if the value is undefined, otherwise false
545+
*/
546+
function isUndefined(val) {
547+
return typeof val === 'undefined';
548+
}
549+
485550
/**
486551
* Determine if a value is an Object
487552
*
@@ -603,9 +668,12 @@ function merge(obj1/*, obj2, obj3, ...*/) {
603668

604669
module.exports = {
605670
isArray: isArray,
671+
isArrayBuffer: isArrayBuffer,
672+
isArrayBufferView: isArrayBufferView,
606673
isString: isString,
607674
isNumber: isNumber,
608675
isObject: isObject,
676+
isUndefined: isUndefined,
609677
isDate: isDate,
610678
isFile: isFile,
611679
isBlob: isBlob,
@@ -1231,6 +1299,8 @@ var process = module.exports = {};
12311299
process.nextTick = (function () {
12321300
var canSetImmediate = typeof window !== 'undefined'
12331301
&& window.setImmediate;
1302+
var canMutationObserver = typeof window !== 'undefined'
1303+
&& window.MutationObserver;
12341304
var canPost = typeof window !== 'undefined'
12351305
&& window.postMessage && window.addEventListener
12361306
;
@@ -1239,8 +1309,29 @@ process.nextTick = (function () {
12391309
return function (f) { return window.setImmediate(f) };
12401310
}
12411311

1312+
var queue = [];
1313+
1314+
if (canMutationObserver) {
1315+
var hiddenDiv = document.createElement("div");
1316+
var observer = new MutationObserver(function () {
1317+
var queueList = queue.slice();
1318+
queue.length = 0;
1319+
queueList.forEach(function (fn) {
1320+
fn();
1321+
});
1322+
});
1323+
1324+
observer.observe(hiddenDiv, { attributes: true });
1325+
1326+
return function nextTick(fn) {
1327+
if (!queue.length) {
1328+
hiddenDiv.setAttribute('yes', 'no');
1329+
}
1330+
queue.push(fn);
1331+
};
1332+
}
1333+
12421334
if (canPost) {
1243-
var queue = [];
12441335
window.addEventListener('message', function (ev) {
12451336
var source = ev.source;
12461337
if ((source === window || source === null) && ev.data === 'process-tick') {
@@ -1280,7 +1371,7 @@ process.emit = noop;
12801371

12811372
process.binding = function (name) {
12821373
throw new Error('process.binding is not supported');
1283-
}
1374+
};
12841375

12851376
// TODO(shtylman)
12861377
process.cwd = function () { return '/' };
@@ -1327,7 +1418,9 @@ defaultsPrototype.forceTrailingSlash = '';
13271418

13281419
defaultsPrototype.httpConfig = {};
13291420

1330-
defaultsPrototype.log = console ? console.log : function () {
1421+
defaultsPrototype.log = console ? function (a, b, c, d, e) {
1422+
console.log(a, b, c, d, e);
1423+
} : function () {
13311424
};
13321425

13331426
defaultsPrototype.deserialize = function (resourceName, data) {

0 commit comments

Comments
 (0)