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 };
