UNPKG

9.04 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/createFeedback.js"],"names":["getTimeout","time","isLowerEqual","str","str2","toLowerCase","logKeys","args","map","p1","p2","trim","filter","Boolean","createFeedback","props","log","stats","tx","apm","labels","options","proxy","tries","maxTries","startedAt","Date","now","logPrefix","driver","timeout","method","url","prefix","trace","postfix","provider","getUri","join","startTransaction","customContext","setCustomContext","proxyLabels","addLabels","success","size","feedback","status","info","trigger","event","result","end","err","console","error","initErr","fatal","errCode","Err","getCode","subcode","message","getMessage","captureError","code","data","errSubcode","errMessage","err3"],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport Err from '@lskjs/err';\nimport omitNull from '@lskjs/utils/omitNull';\n\nimport { getProxyLabels } from './getProxyLabels';\n// import { getErrCode } from './isNetworkError';\n\nconst getTimeout = (time) => (time ? `${time}ms` : '???ms');\nconst isLowerEqual = (str = '', str2 = '') => str && str.toLowerCase() === str2;\n\nconst logKeys = (...args) => args.map(([p1, p2]) => (p2 ? `[${p1}] ${p2}`.trim() : null)).filter(Boolean);\n\nexport const createFeedback = (props = {}, { log, stats, tx, apm, labels } = {}) => {\n // console.log('[createFeedback]', { log: !!log, stats: !!stats, apm: !!apm });\n const { options = {}, proxy, tries, maxTries, startedAt = Date.now(), logPrefix = [] } = props;\n const { driver, timeout, method, url } = options;\n const prefix = [\n ...logPrefix,\n ['R', tries > 1 ? `${tries}/${maxTries}` : null],\n ['method', !isLowerEqual(method, 'get') ? method : null],\n ['url', url],\n ];\n const trace = [\n ['driver', driver !== 'axios' ? driver : null],\n ['timeout', timeout],\n ];\n const postfix = [\n ['proxy', [proxy ? proxy.provider : null, proxy ? proxy.getUri() : 'localhost'].filter(Boolean).join(' ')],\n ];\n if (!tx && apm) tx = apm.startTransaction('request');\n const customContext = {\n tries,\n maxTries,\n method,\n url,\n };\n if (tx) {\n tx.setCustomContext(customContext);\n const proxyLabels = getProxyLabels(proxy);\n tx.addLabels({\n ...(labels || {}),\n ...proxyLabels,\n });\n }\n if (log) log.trace(...logKeys(...prefix, ...trace, ...postfix));\n return {\n success({ size } = {}) {\n try {\n const time = Date.now() - startedAt;\n if (proxy && proxy.feedback) proxy.feedback({ status: 'success', time, size });\n if (log) log.info('[success]', ...logKeys(...prefix, ['time', getTimeout(time)], ...postfix));\n if (stats) stats.trigger({ event: 'success', startedAt });\n if (tx) {\n tx.addLabels(omitNull({ time, size }));\n tx.result = 'success';\n tx.end();\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('[createFeedback] success.err ', err);\n }\n },\n error(initErr, { fatal, size } = {}) {\n try {\n const time = Date.now() - startedAt;\n const errCode = Err.getCode(initErr);\n const subcode = initErr?.subcode;\n const message = Err.getMessage(initErr);\n if (proxy && proxy.feedback) {\n proxy.feedback({ status: 'error', err: errCode, time, fatal, size });\n }\n if (log) log.error(...logKeys(...prefix, ['err', errCode], ['time', getTimeout(time)], ...postfix));\n if (stats) stats.trigger({ event: 'error', startedAt });\n if (apm) apm.captureError({ code: errCode, subcode, message, data: initErr.data }); // TODO: подумать про await§\n if (tx) {\n tx.setCustomContext({ ...customContext, errCode, errSubcode: subcode, errMessage: message });\n tx.addLabels(omitNull({ time, size }));\n tx.result = errCode;\n tx.end();\n }\n } catch (err3) {\n // eslint-disable-next-line no-console\n console.log('[createFeedback] error.err ', err3);\n }\n },\n };\n};\n\nexport default createFeedback;\n"],"file":"createFeedback.js"}
\No newline at end of file