t-comm
Version:
专业、稳定、纯粹的工具库
37 lines (34 loc) • 1.51 kB
JavaScript
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
import _createClass from '@babel/runtime/helpers/createClass';
/**
* 剥一层嵌套,把 response.data 直接当作返回值交给业务层
*
* - 当业务 extra.remainData = true 时不剥(保留整个 param)
* - 同时把 shouldAbort 标志设为 `r !== 0`(让后续 decorator 按错误处理)
*
* 注意:应当放在响应拦截器链的 **最后一个**。
*
* 参考 pmd-npm/packages/business/src/network/interceptor/response/common/getDataInterceptor.ts
*/
var GetDataInterceptor = /*#__PURE__*/function () {
function GetDataInterceptor() {
_classCallCheck(this, GetDataInterceptor);
}
return _createClass(GetDataInterceptor, [{
key: "interceptor",
value: function interceptor(param) {
var _a, _b, _c, _d, _e;
var remainData = (_b = (_a = param.request) === null || _a === void 0 ? void 0 : _a.extra) === null || _b === void 0 ? void 0 : _b.remainData;
var r = +((_d = (_c = param.response) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.r);
var abort = Number.isFinite(r) ? r !== 0 : false;
if (!remainData) {
// 把 data 提出来放在 param.data,方便后面的 engine 直接 resolve data
param.data = (_e = param.response) === null || _e === void 0 ? void 0 : _e.data;
} else {
param.data = param;
}
return [abort, param];
}
}]);
}();
export { GetDataInterceptor };