@yhiot/utils
Version:
125 lines (96 loc) • 4.02 kB
JavaScript
;
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;