isomorphic-fetch-http
Advanced tools
Comparing version
@@ -69,3 +69,3 @@ 'use strict'; | ||
this.filter.before(); | ||
this.filter.before && this.filter.before(); | ||
return (0, _isomorphicFetch2.default)('' + this.prefix + url, _extends({}, this[config], { headers: _extends({}, this[config].headers, this.header, header) }, option)).then(function (resp) { | ||
@@ -88,6 +88,6 @@ if (resp.status >= 400) { | ||
_this.filter.after(); | ||
_this.filter.after && _this.filter.after({ status: status, code: code, data: data, message: message }); | ||
if (status === false) { | ||
if (_this.exception.indexOf(code) > -1) { | ||
throw code; | ||
throw Error(code); | ||
} | ||
@@ -101,7 +101,10 @@ } | ||
value: function setup(_ref2) { | ||
var prefix = _ref2.prefix, | ||
var _ref2$prefix = _ref2.prefix, | ||
prefix = _ref2$prefix === undefined ? "" : _ref2$prefix, | ||
_ref2$header = _ref2.header, | ||
header = _ref2$header === undefined ? {} : _ref2$header, | ||
filter = _ref2.filter, | ||
exception = _ref2.exception; | ||
_ref2$filter = _ref2.filter, | ||
filter = _ref2$filter === undefined ? this.filter : _ref2$filter, | ||
_ref2$exception = _ref2.exception, | ||
exception = _ref2$exception === undefined ? [] : _ref2$exception; | ||
@@ -161,3 +164,3 @@ this.prefix = prefix; | ||
console.log("WARNING: 在isomorphic-fetch-http 1.0.0版本及以上版本,option方法已经由json方法代替,option方法将在1.1.0版本中去除"); | ||
console.error("WARNING: 在isomorphic-fetch-http 1.0.0版本及以上版本,option方法已经由json方法代替,option方法将在1.1.0版本中去除"); | ||
return this[http](url, { method: 'POST', body: JSON.stringify(param) }, _extends({}, header, { "Content-Type": "application/json" })); | ||
@@ -164,0 +167,0 @@ } |
{ | ||
"name": "isomorphic-fetch-http", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "react fetch by isomorphic-fetch", | ||
@@ -5,0 +5,0 @@ "main": "lib/isomorphic-fetch-http.js", |
@@ -18,2 +18,10 @@ ## isomorphic-fetch-http | ||
// isomorphic-fetch-http 要求数据返回格式为 | ||
{ | ||
status: true, // 请求状态 true/false | ||
code: 'INVALIDError', // 发生特定异常返回的错误码 与 exception 对应 | ||
data: {} / [] // 请求状态为 true 时返回的数据体 | ||
message // 请求状态为 false 时返回的详细错误信息 | ||
} | ||
// 全局配置 | ||
@@ -23,5 +31,13 @@ http.setup({ | ||
header: {}, // 自定义请求头 | ||
filter: { // 自定义过滤器 before 发生在请求执行之前 after 发生在请求执行之后 | ||
before: () => false, | ||
after: () => false | ||
} | ||
exception: ['INVALIDError'] // 自定义捕获类型 | ||
}); | ||
http.setHeader({ // 覆盖/新增 请求头 | ||
token: '' | ||
}) | ||
// get方法 一般用于查询 | ||
@@ -28,0 +44,0 @@ // @param {Object} param |
@@ -38,3 +38,3 @@ import fetch from 'isomorphic-fetch'; | ||
[http](url, option = {}, header = {}) { | ||
this.filter.before(); | ||
this.filter.before && this.filter.before(); | ||
return fetch(`${this.prefix}${url}`, { ...this[config], headers: { ...this[config].headers, ...this.header, ...header }, ...option }) | ||
@@ -55,6 +55,6 @@ .then((resp) => { | ||
.then(({status, code, data, message}) => { | ||
this.filter.after(); | ||
this.filter.after && this.filter.after({status, code, data, message}); | ||
if (status === false) { | ||
if (this.exception.indexOf(code) > -1) { | ||
throw code; | ||
throw Error(code); | ||
} | ||
@@ -66,3 +66,3 @@ } | ||
setup({prefix, header = {}, filter, exception}) { | ||
setup({prefix = "", header = {}, filter = this.filter, exception = []}) { | ||
this.prefix = prefix; | ||
@@ -99,3 +99,3 @@ this.header = header; | ||
option(url, param = {}, header) { | ||
console.log("WARNING: 在isomorphic-fetch-http 1.0.0版本及以上版本,option方法已经由json方法代替,option方法将在1.1.0版本中去除"); | ||
console.error("WARNING: 在isomorphic-fetch-http 1.0.0版本及以上版本,option方法已经由json方法代替,option方法将在1.1.0版本中去除"); | ||
return this[http](url, {method: 'POST', body: JSON.stringify(param)}, {...header, "Content-Type": "application/json"}); | ||
@@ -102,0 +102,0 @@ } |
import $http from './isomorphic-fetch-http'; | ||
$http.setup({ | ||
prefix: '/123', | ||
header: {"123123": "asda"}, | ||
fn: (data) => data | ||
prefix: '19634', | ||
header: {}, | ||
// filter: { | ||
// before: () => { | ||
// alert('before'); | ||
// }, | ||
// after: (data) => { | ||
// alert('after'); | ||
// } | ||
// } | ||
}); | ||
$http.setup({ | ||
prefix: '/123', | ||
header: {"456456": "3453453"}, | ||
fn: (data) => data | ||
$http.setHeader({ | ||
token: 'asdasd' | ||
}); | ||
$http.get("/asd"); | ||
$http.get("/add?currentPage=1"); |
@@ -39,5 +39,11 @@ 'use strict'; | ||
this.header = {}; | ||
this.fn = function (data) { | ||
return data; | ||
this.filter = { | ||
before: function before() { | ||
return false; | ||
}, | ||
after: function after() { | ||
return false; | ||
} | ||
}; | ||
this.exception = []; | ||
this[config] = { | ||
@@ -59,5 +65,8 @@ headers: { | ||
value: function value(url) { | ||
var _this = this; | ||
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
this.filter.before && this.filter.before(); | ||
return (0, _isomorphicFetch2.default)('' + this.prefix + url, _extends({}, this[config], { headers: _extends({}, this[config].headers, this.header, header) }, option)).then(function (resp) { | ||
@@ -74,4 +83,15 @@ if (resp.status >= 400) { | ||
} | ||
}).then(this.fn).then(function (data) { | ||
return data; | ||
}).then(function (_ref) { | ||
var status = _ref.status, | ||
code = _ref.code, | ||
data = _ref.data, | ||
message = _ref.message; | ||
_this.filter.after && _this.filter.after({ status: status, code: code, data: data, message: message }); | ||
if (status === false) { | ||
if (_this.exception.indexOf(code) > -1) { | ||
throw Error(code); | ||
} | ||
} | ||
return { status: status, data: data, message: message }; | ||
}); | ||
@@ -81,13 +101,25 @@ } | ||
key: 'setup', | ||
value: function setup(_ref) { | ||
var prefix = _ref.prefix, | ||
_ref$header = _ref.header, | ||
header = _ref$header === undefined ? {} : _ref$header, | ||
fn = _ref.fn; | ||
value: function setup(_ref2) { | ||
var _ref2$prefix = _ref2.prefix, | ||
prefix = _ref2$prefix === undefined ? "" : _ref2$prefix, | ||
_ref2$header = _ref2.header, | ||
header = _ref2$header === undefined ? {} : _ref2$header, | ||
_ref2$filter = _ref2.filter, | ||
filter = _ref2$filter === undefined ? this.filter : _ref2$filter, | ||
_ref2$exception = _ref2.exception, | ||
exception = _ref2$exception === undefined ? [] : _ref2$exception; | ||
this.prefix = prefix; | ||
this.header = header; | ||
this.fn = fn; | ||
this.filter = filter; | ||
this.exception = exception; | ||
} | ||
}, { | ||
key: 'setHeader', | ||
value: function setHeader() { | ||
var header = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
this.header = _extends({}, this.header, header); | ||
} | ||
}, { | ||
key: 'get', | ||
@@ -121,2 +153,9 @@ value: function get(url, param) { | ||
}, { | ||
key: 'options', | ||
value: function options(url, param) { | ||
var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
return this[http](url, { method: 'OPTIONS' }, header); | ||
} | ||
}, { | ||
key: 'option', | ||
@@ -127,4 +166,13 @@ value: function option(url) { | ||
console.error("WARNING: 在isomorphic-fetch-http 1.0.0版本及以上版本,option方法已经由json方法代替,option方法将在1.1.0版本中去除"); | ||
return this[http](url, { method: 'POST', body: JSON.stringify(param) }, _extends({}, header, { "Content-Type": "application/json" })); | ||
} | ||
}, { | ||
key: 'json', | ||
value: function json(url) { | ||
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
var header = arguments[2]; | ||
return this[http](url, { method: 'POST', body: JSON.stringify(param) }, _extends({}, header, { "Content-Type": "application/json" })); | ||
} | ||
}]); | ||
@@ -131,0 +179,0 @@ |
@@ -22,4 +22,4 @@ var path = require('path'); | ||
proxy: { | ||
'/api': { | ||
target: 'http://127.0.0.1:9001', | ||
'/19634': { | ||
target: 'http://rapapi.org/mockjsData/', | ||
changeOrigin: true | ||
@@ -26,0 +26,0 @@ } |
23563
14.77%450
12.5%94
20.51%