UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

89 lines (82 loc) 4.23 kB
'use strict'; 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); // const DEFAULT_TRUNCATE_SIZE = 1000; // function safeStringify(obj: unknown, truncateSize: number): string { // let s: string; // try { // s = JSON.stringify(obj); // } catch { // s = String(obj); // } // if (s === undefined) s = ''; // if (truncateSize > 0 && s.length > truncateSize) { // s = `${s.slice(0, truncateSize)}...(truncated, total ${s.length})`; // } // return s; // } var AegisReportInterceptor = /*#__PURE__*/function () { function AegisReportInterceptor(options) { _classCallCheck__default["default"](this, AegisReportInterceptor); this.options = options; } return _createClass__default["default"](AegisReportInterceptor, [{ key: "interceptor", value: function interceptor(param) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p; var report = this.options.report; if (typeof report !== 'function') { return [false, param]; } // const truncateSize = this.options.truncateSize ?? DEFAULT_TRUNCATE_SIZE; var startTime = (_a = param.request) === null || _a === void 0 ? void 0 : _a.__aegisStartTime; var duration = typeof startTime === 'number' ? Date.now() - startTime : 0; // 响应 header:getHeader 是单 key 取,本拦截器全量导出要靠 IRawResponse 内部 // 持有的 header 引用。但 IRawResponse 没暴露 header,只能从 getHeader 一个个试 // —— 业务可以自己实现更全的 header 抓取 var headerObj = {}; // 常见 header(与 doRequest 里 makeCaseInsensitiveGetter 构造的 key 对齐) var commonHeaders = ['content-type', 'content-length', 'set-cookie', 'logininfo', 'server', 'date', 'x-request-id', 'x-trace-id', 'x-tip-ret']; for (var _i = 0, _commonHeaders = commonHeaders; _i < _commonHeaders.length; _i++) { var k = _commonHeaders[_i]; try { var v = (_c = (_b = param.response) === null || _b === void 0 ? void 0 : _b.getHeader) === null || _c === void 0 ? void 0 : _c.call(_b, k); if (v !== undefined && v !== null) { headerObj[k] = String(v); } } catch (_q) { // 单个 header 读取失败不影响其它 } } var r = (_e = (_d = param.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.r; var retNum = typeof r === 'number' ? r : r != null ? Number(r) : null; var msg = (_g = (_f = param.response) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.msg; var info = { url: ((_h = param.request) === null || _h === void 0 ? void 0 : _h.url) || '', method: (((_j = param.request) === null || _j === void 0 ? void 0 : _j.method) || 'POST').toString().toUpperCase(), status: (_l = (_k = param.response) === null || _k === void 0 ? void 0 : _k.status) !== null && _l !== void 0 ? _l : 0, ret: Number.isFinite(retNum) ? retNum : null, requestBody: (_m = param.request) === null || _m === void 0 ? void 0 : _m.reqData, responseData: (_o = param.response) === null || _o === void 0 ? void 0 : _o.data, responseHeader: headerObj, duration: duration, ok: !!((_p = param.response) === null || _p === void 0 ? void 0 : _p.ok), isAbort: false, msg: msg ? String(msg) : undefined }; try { report(info); } catch (e) { // 上报回调内部异常吃掉,绝不影响主响应链 // eslint-disable-next-line no-console console.warn('[pmd-api-cocos/network] aegisReport threw:', e); } return [false, param]; } }]); }(); exports.AegisReportInterceptor = AegisReportInterceptor;