UNPKG

@yhiot/utils

Version:
125 lines (96 loc) 4.02 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.requestDelete = exports.requestGet = exports.requestPut = exports.requestPost = exports.request = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); require("isomorphic-fetch"); var _console = _interopRequireDefault(require("console")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var request = function request(method, url) { var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var options = arguments.length > 3 ? arguments[3] : undefined; if (!method) { _console.default.log('error! method=null!'); } if (!url) { _console.default.log('error! url=null!'); } var body = null; if (method === 'GET' || method === 'DELETE') { body = null; } else { body = JSON.stringify(data); } var _headers$credentials = _objectSpread({ headers: { 'Content-Type': 'application/json' }, credentials: true }, options || {}), headers = _headers$credentials.headers, credentials = _headers$credentials.credentials; var opts = { method: method, headers: headers, body: body }; if (credentials) { opts = _objectSpread(_objectSpread({}, opts), {}, { credentials: 'include' }); } _console.default.log('request', url); return fetch(url, opts).catch(function (error) { _console.default.log('error!', error, url, opts); throw new Error('网络请求失败!'); }).then(function (response) { if (!response.ok) { throw new Error(response.statusText); } if (response.status === 204) { throw new Error('没有数据'); } return response; }).then(function (response) { return response.json(); }); // .then(response => { // let contentType = response.headers.get('content-type'); // //console.log ("contentType:", contentType); // if (contentType.includes('application/json')) { // return response.json(); // } else { // console.log("Oops, we haven't got JSON!"); // return { errcode: -1, xContentType: contentType, xOrigData: response }; // } // }) // .then(json => { // if (!json.errcode) { // return json; // } // throw json; // }) }; exports.request = request; var requestPost = function requestPost(url) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return request('POST', url, data); }; exports.requestPost = requestPost; var requestPut = function requestPut(url) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return request('PUT', url, data); }; exports.requestPut = requestPut; var requestGet = function requestGet(url, options) { return request('GET', url, null, options); }; exports.requestGet = requestGet; var requestDelete = function requestDelete(url) { return request('DELETE', url); }; exports.requestDelete = requestDelete; var _default = request; exports.default = _default;