t-comm
Version:
专业、稳定、纯粹的工具库
46 lines (39 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
var _createClass = require('@babel/runtime/helpers/createClass');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_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__default["default"](this, GetDataInterceptor);
}
return _createClass__default["default"](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];
}
}]);
}();
exports.GetDataInterceptor = GetDataInterceptor;