UNPKG

@mopinion/survey

Version:

Collect customer feedback with the Mopinion survey library

69 lines (68 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = request; function request(url, options) { options = options || {}; var request = new XMLHttpRequest(); var task = new Promise(function (resolve, reject) { var _keys = []; var all = []; var headers = {}; var _response = function response() { return { ok: (request.status / 100 | 0) == 2, statusText: request.statusText, status: request.status, url: request.responseURL, text: function text() { return Promise.resolve(request.responseText); }, json: function json() { return Promise.resolve(request.responseText).then(JSON.parse); }, blob: function blob() { return Promise.resolve(new Blob([request.response])); }, clone: _response, headers: { keys: function keys() { return _keys; }, entries: function entries() { return all; }, get: function get(n) { return headers[n.toLowerCase()]; }, has: function has(n) { return n.toLowerCase() in headers; } } }; }; request.open(options.method || 'get', url, true); request.onload = function () { request.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm, function (m, key, value) { _keys.push(key = key.toLowerCase()); all.push([key, value]); headers[key] = headers[key] ? "".concat(headers[key], ",").concat(value) : value; }); resolve(_response()); }; request.onerror = reject; request.withCredentials = options.credentials == 'include'; for (var i in options.headers) { request.setRequestHeader(i, options.headers[i]); } request.send(options.body || null); }); return { promise: task, abort: function abort() { return request.abort(); } }; } //# sourceMappingURL=request.js.map