UNPKG

parse

Version:
70 lines 1.82 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.polyfillFetch = polyfillFetch; function parseResponse(res) { var headers = res.header || {}; headers = Object.keys(headers).reduce(function (map, key) { map[key.toLowerCase()] = headers[key]; return map; }, {}); return { status: res.statusCode, json: function json() { if (typeof res.data === 'object') { return Promise.resolve(res.data); } var json = {}; try { json = JSON.parse(res.data); } catch (err) { console.error(err); } return Promise.resolve(json); }, headers: { keys: function () { return Object.keys(headers); }, get: function (n) { return headers[n.toLowerCase()]; }, has: function (n) { return n.toLowerCase() in headers; }, entries: function () { var all = []; for (var key in headers) { if (headers[key]) { all.push([key, headers[key]]); } } return all; } } }; } function polyfillFetch() { var typedGlobal = global; if (typeof typedGlobal.fetch !== 'function') { typedGlobal.fetch = function (url, options) { var dataType = url.match(/\.(txt|json|html|txt|csv)/) ? 'text' : 'arraybuffer'; return new Promise(function (resolve, reject) { wx.request({ url: url, method: options.method || 'GET', data: options.body, header: options.headers, dataType: dataType, responseType: dataType, success: function (response) { return resolve(parseResponse(response)); }, fail: function (error) { return reject(error); } }); }); }; } }