1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports["default"] = exports.createFeedback = void 0;
|
9 |
|
10 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11 |
|
12 | var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
13 |
|
14 | var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
15 |
|
16 | var _err = _interopRequireDefault(require("@lskjs/err"));
|
17 |
|
18 | var _omitNull = _interopRequireDefault(require("@lskjs/utils/omitNull"));
|
19 |
|
20 | var _getProxyLabels = require("./getProxyLabels");
|
21 |
|
22 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
23 |
|
24 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
25 |
|
26 |
|
27 | var getTimeout = function getTimeout(time) {
|
28 | return time ? "".concat(time, "ms") : '???ms';
|
29 | };
|
30 |
|
31 | var isLowerEqual = function isLowerEqual() {
|
32 | var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
33 | var str2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
34 | return str && str.toLowerCase() === str2;
|
35 | };
|
36 |
|
37 | var logKeys = function logKeys() {
|
38 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
39 | args[_key] = arguments[_key];
|
40 | }
|
41 |
|
42 | return args.map(function (_ref) {
|
43 | var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
44 | p1 = _ref2[0],
|
45 | p2 = _ref2[1];
|
46 |
|
47 | return p2 ? "[".concat(p1, "] ").concat(p2).trim() : null;
|
48 | }).filter(Boolean);
|
49 | };
|
50 |
|
51 | var createFeedback = function createFeedback() {
|
52 | var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
53 |
|
54 | var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
55 | log = _ref3.log,
|
56 | stats = _ref3.stats,
|
57 | tx = _ref3.tx,
|
58 | apm = _ref3.apm,
|
59 | labels = _ref3.labels;
|
60 |
|
61 |
|
62 | var _props$options = props.options,
|
63 | options = _props$options === void 0 ? {} : _props$options,
|
64 | proxy = props.proxy,
|
65 | tries = props.tries,
|
66 | maxTries = props.maxTries,
|
67 | _props$startedAt = props.startedAt,
|
68 | startedAt = _props$startedAt === void 0 ? Date.now() : _props$startedAt,
|
69 | _props$logPrefix = props.logPrefix,
|
70 | logPrefix = _props$logPrefix === void 0 ? [] : _props$logPrefix;
|
71 | var driver = options.driver,
|
72 | timeout = options.timeout,
|
73 | method = options.method,
|
74 | url = options.url;
|
75 | var prefix = [].concat((0, _toConsumableArray2["default"])(logPrefix), [['R', tries > 1 ? "".concat(tries, "/").concat(maxTries) : null], ['method', !isLowerEqual(method, 'get') ? method : null], ['url', url]]);
|
76 | var trace = [['driver', driver !== 'axios' ? driver : null], ['timeout', timeout]];
|
77 | var postfix = [['proxy', [proxy ? proxy.provider : null, proxy ? proxy.getUri() : 'localhost'].filter(Boolean).join(' ')]];
|
78 | if (!tx && apm) tx = apm.startTransaction('request');
|
79 | var customContext = {
|
80 | tries: tries,
|
81 | maxTries: maxTries,
|
82 | method: method,
|
83 | url: url
|
84 | };
|
85 |
|
86 | if (tx) {
|
87 | tx.setCustomContext(customContext);
|
88 | var proxyLabels = (0, _getProxyLabels.getProxyLabels)(proxy);
|
89 | tx.addLabels(_objectSpread(_objectSpread({}, labels || {}), proxyLabels));
|
90 | }
|
91 |
|
92 | if (log) log.trace.apply(log, (0, _toConsumableArray2["default"])(logKeys.apply(void 0, (0, _toConsumableArray2["default"])(prefix).concat(trace, postfix))));
|
93 | return {
|
94 | success: function success() {
|
95 | var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
96 | size = _ref4.size;
|
97 |
|
98 | try {
|
99 | var time = Date.now() - startedAt;
|
100 | if (proxy && proxy.feedback) proxy.feedback({
|
101 | status: 'success',
|
102 | time: time,
|
103 | size: size
|
104 | });
|
105 | if (log) log.info.apply(log, ['[success]'].concat((0, _toConsumableArray2["default"])(logKeys.apply(void 0, (0, _toConsumableArray2["default"])(prefix).concat([['time', getTimeout(time)]], postfix)))));
|
106 | if (stats) stats.trigger({
|
107 | event: 'success',
|
108 | startedAt: startedAt
|
109 | });
|
110 |
|
111 | if (tx) {
|
112 | tx.addLabels((0, _omitNull["default"])({
|
113 | time: time,
|
114 | size: size
|
115 | }));
|
116 | tx.result = 'success';
|
117 | tx.end();
|
118 | }
|
119 | } catch (err) {
|
120 |
|
121 | console.log('[createFeedback] success.err ', err);
|
122 | }
|
123 | },
|
124 | error: function error(initErr) {
|
125 | var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
126 | fatal = _ref5.fatal,
|
127 | size = _ref5.size;
|
128 |
|
129 | try {
|
130 | var time = Date.now() - startedAt;
|
131 |
|
132 | var errCode = _err["default"].getCode(initErr);
|
133 |
|
134 | var subcode = initErr === null || initErr === void 0 ? void 0 : initErr.subcode;
|
135 |
|
136 | var message = _err["default"].getMessage(initErr);
|
137 |
|
138 | if (proxy && proxy.feedback) {
|
139 | proxy.feedback({
|
140 | status: 'error',
|
141 | err: errCode,
|
142 | time: time,
|
143 | fatal: fatal,
|
144 | size: size
|
145 | });
|
146 | }
|
147 |
|
148 | if (log) log.error.apply(log, (0, _toConsumableArray2["default"])(logKeys.apply(void 0, (0, _toConsumableArray2["default"])(prefix).concat([['err', errCode], ['time', getTimeout(time)]], postfix))));
|
149 | if (stats) stats.trigger({
|
150 | event: 'error',
|
151 | startedAt: startedAt
|
152 | });
|
153 | if (apm) apm.captureError({
|
154 | code: errCode,
|
155 | subcode: subcode,
|
156 | message: message,
|
157 | data: initErr.data
|
158 | });
|
159 |
|
160 | if (tx) {
|
161 | tx.setCustomContext(_objectSpread(_objectSpread({}, customContext), {}, {
|
162 | errCode: errCode,
|
163 | errSubcode: subcode,
|
164 | errMessage: message
|
165 | }));
|
166 | tx.addLabels((0, _omitNull["default"])({
|
167 | time: time,
|
168 | size: size
|
169 | }));
|
170 | tx.result = errCode;
|
171 | tx.end();
|
172 | }
|
173 | } catch (err3) {
|
174 |
|
175 | console.log('[createFeedback] error.err ', err3);
|
176 | }
|
177 | }
|
178 | };
|
179 | };
|
180 |
|
181 | exports.createFeedback = createFeedback;
|
182 | var _default = createFeedback;
|
183 | exports["default"] = _default;
|
184 |
|
\ | No newline at end of file |