koa3-wechat
Version:
wechat api modified by windsome.feng
119 lines (98 loc) • 3.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.requestDelete = exports.requestGet = exports.requestPut = exports.requestPost = exports.request = exports.requestOrigin = undefined;
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
require('isomorphic-fetch');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var requestOrigin = exports.requestOrigin = function requestOrigin(url) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
console.log('request', url);
return fetch(url, opts).then(function (response) {
if (!response.ok) {
throw { errcode: -1, message: response.statusText };
}
if (response.status === 204) {
throw { errcode: -2, message: '没有数据' };
}
return response;
})
// .then(response => response.json());
.then(function (response) {
var contentType = response.headers.get('content-type');
//console.log ("contentType:", contentType);
if (contentType.includes('application/json') || contentType.includes('text/plain')) {
return response.json();
} else {
console.log("Oops, we haven't got JSON!");
throw {
errcode: -3,
message: '不是json数据!',
xContentType: contentType,
xOrigData: response
};
}
})
// .then(json => {
// if (!json.errcode) {
// return json;
// }
// throw json;
// })
.catch(function (error) {
console.log('error!', error);
return (0, _extends3.default)({ errcode: -100 }, error);
});
};
var request = exports.request = function request(method, url) {
var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var options = arguments[3];
if (!method) {
console.log('error! method=null!');
}
if (!url) {
console.log('error! url=null!');
}
var body = null;
if (method === 'GET' || method === 'DELETE') {
body = null;
} else {
body = (0, _stringify2.default)(data);
}
var _headers$credentials = (0, _extends3.default)({
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 = (0, _extends3.default)({}, opts, {
credentials: 'include'
});
}
return requestOrigin(url, opts);
};
var requestPost = exports.requestPost = function requestPost(url) {
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return request('POST', url, data);
};
var requestPut = exports.requestPut = function requestPut(url) {
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return request('PUT', url, data);
};
var requestGet = exports.requestGet = function requestGet(url, options) {
return request('GET', url, null, options);
};
var requestDelete = exports.requestDelete = function requestDelete(url) {
return request('DELETE', url);
};
exports.default = request;