UNPKG

10.2 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/ProxyTests.js"],"names":["getId","proxy","test","id","filter","Boolean","join","ProxyTests","config","concurrency","process","env","PREFETCH","cacheTimeout","cache","results","proxyStats","updatedAt","req","request","props","app","module","apm","stats","log","createChild","name","labels","proxyTest","res","proxyKey","key","startedAt","Date","status","errCode","Err","getCode","time","now","expired","expiredAt","Object","keys","map","getCache","updateCache","testId","force","tests","execTest","setCache","proxyList","proxyKeys","startTimer","Bluebird","runTest","stopTimer","Module"],"mappings":"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","sourcesContent":["import Err from '@lskjs/err';\nimport Module from '@lskjs/module';\nimport tryJSONparse from '@lskjs/utils/tryJSONparse';\nimport Bluebird from 'bluebird';\nimport find from 'lodash/find';\nimport flatten from 'lodash/flatten';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport isFunction from 'lodash/isFunction';\nimport pick from 'lodash/pick';\nimport shuffle from 'lodash/shuffle';\n\nimport { createRequest } from './createRequest';\n\nconst getId = ({ proxy, test }) => [get(proxy, 'key'), test.id].filter(Boolean).join('_');\n\nexport class ProxyTests extends Module {\n config = {\n concurrency: tryJSONparse(process.env.PREFETCH) || 50,\n cacheTimeout: 15 * 60 * 1000,\n };\n cache = {\n results: {},\n proxyStats: {},\n updatedAt: null,\n };\n request(req, { request, ...props } = {}) {\n if (isFunction(req)) {\n return req({\n request,\n ...props,\n });\n }\n return request({\n ...req,\n ...props,\n });\n }\n async execTest({ id, proxy, test = {} } = {}) {\n const apm = await this.app.module('apm');\n const stats = await this.app.module('stats');\n const log = await this.log.createChild({ name: `${test.id}` });\n const request = createRequest({\n apm,\n labels: {\n proxyTest: test.id,\n },\n stats,\n log,\n });\n // console.log({ proxy });\n const res = {\n id: getId({ proxy, test }),\n proxy,\n proxyKey: proxy?.key || '?',\n test,\n };\n const startedAt = new Date();\n try {\n await this.request(test.req, { proxy, request });\n res.status = 'success';\n } catch (err) {\n res.status = 'error';\n res.errCode = Err.getCode(err);\n // res.err = err; // NOTE: вырубил, чтобы не переполнять память\n }\n res.time = Date.now() - startedAt;\n res.updatedAt = Date.now();\n const expired = test.expired || 5 * 60 * 1000;\n res.expiredAt = Date.now() + expired;\n // const ok = test.validate ? await test.validate(res2) : true;\n return res;\n }\n getCache(id) {\n if (!this.cache.results[id]) return null;\n if (this.cache.results[id].expiredAt < Date.now()) {\n delete this.cache.results[id];\n return null;\n }\n return this.cache.results[id];\n }\n setCache(res) {\n let { id } = res;\n if (!id) id = getId(res);\n if (!id) throw new Err('!id', { res });\n this.cache.results[id] = res;\n this.cache.updatedAt = Date.now();\n this.cache.proxyStats = groupBy(this.cache.results, 'proxy.key');\n }\n updateCache() {\n Object.keys(this.cache.results).map((id) => this.getCache(id));\n }\n\n getResults() {\n this.updateCache();\n return this.cache.results;\n }\n async runTest({ proxy, testId, test, force = false, ...props } = {}) {\n if (!test && testId) {\n // eslint-disable-next-line no-param-reassign\n test = find(this.tests, { id: testId });\n }\n const id = getId({ proxy, test });\n let res = this.getCache(id);\n if (res && !force) return res;\n res = await this.execTest({ id, proxy, test, ...props });\n // this.log.trace('[runTest]', res)\n this.setCache(res);\n return res;\n }\n getProxyStats(proxyList) {\n if (!proxyList) return this.cache.proxyStats;\n const proxyKeys = proxyList.map((proxy) => proxy.key);\n return pick(this.cache.proxyStats, proxyKeys);\n }\n async runTests(proxyList, { force = false } = {}) {\n const { concurrency } = this.config;\n const stats = await this.app.module('stats');\n stats.startTimer();\n // this.log.trace('[runTests] start');\n const res = await Bluebird.map(\n shuffle(proxyList),\n (proxy) =>\n Bluebird.map(shuffle(this.tests), (test) => this.runTest({ proxy, test, force }), {\n concurrency: 1,\n }),\n { concurrency },\n );\n stats.stopTimer();\n // this.log.debug('[runTests]', res);\n return flatten(res);\n }\n}\n\nexport default ProxyTests;\n"],"file":"ProxyTests.js"}
\No newline at end of file