UNPKG

koa3-wechat

Version:

wechat api modified by windsome.feng

119 lines (98 loc) 3.36 kB
'use strict'; 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;