jaydata
Version:
Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)
67 lines (57 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _index = require('../../TypeSystem/index.js');
var _index2 = _interopRequireDefault(_index);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
if (typeof WinJS !== 'undefined' && WinJS.xhr) {
_index2.default.ajax = _index2.default.ajax || function (options) {
_index2.default.typeSystem.extend(options, {
dataType: 'json',
headers: {}
});
var dataTypes = {
'json': {
accept: 'application/json, text/javascript',
convert: JSON.parse
},
'text': {
accept: 'text/plain',
convert: function convert(e) {
return e;
}
},
'html': {
accept: 'text/html',
convert: function convert(e) {
return e;
}
},
'xml': {
accept: 'application/xml, text/xml',
convert: function convert(e) {
// TODO?
return e;
}
}
};
var dataTypeContext = dataTypes[options.dataType.toLowerCase()];
options.headers.Accept = dataTypeContext.accept;
var successClb = options.success || _index2.default.defaultSuccessCallback;
var errorClb = options.error || _index2.default.defaultErrorCallback;
var progressClb = options.progress;
var success = function success(r) {
var result = dataTypeContext.convert(r.responseText);
successClb(result);
};
var error = function error(r) {
var error = dataTypeContext.convert(r.responseText);
errorClb(error);
};
var progress = progressClb;
WinJS.xhr(options).done(success, error, progress);
};
}
exports.default = _index2.default;
module.exports = exports['default'];