UNPKG

11.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/ProxyModule.js"],"names":["isDebug","ProxyModule","Object","keys","config","providers","provider","disabled","items","getActiveProvidersNames","tests","method","args","module","res","log","error","proxyList","getProxyStats","localhost","runProvidersMethod","listOfLists","values","map","a","list","l","slice","rawProxyList","Proxy","proxies","getResults","getAllProxyList","runTests","proxyKey","testId","force","proxy","key","runTest","filter","fetchedAt","proxyStats","p","proxyTests","test","status","testIds","t","id","tagsList","tags","testTags","concat","targets","workers","filteredProxyList","total","length","count","trace","debug","runProxyTests","collectMetrics","call","Module"],"mappings":"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","sourcesContent":["// import { isDev } from '@lskjs/env';\nimport Module from '@lskjs/module';\nimport asyncMapValues from '@lskjs/utils/asyncMapValues';\nimport find from 'lodash/find';\nimport flatten from 'lodash/flatten';\nimport max from 'lodash/max';\nimport pick from 'lodash/pick';\nimport uniq from 'lodash/uniq';\nimport uniqBy from 'lodash/uniqBy';\n\nimport { collectMetrics } from './collectMetrics';\nimport { Proxy } from './Proxy';\nimport { setProxyWorker } from './setProxyWorker';\nimport { filterProxy } from './utils/filterProxy';\n\n// const isDebug = isDev;\nconst isDebug = false;\nexport class ProxyModule extends Module {\n getActiveProvidersNames() {\n return Object.keys(\n this.config.providers || {},\n (provider) => !!this.config.providers[provider] && !this.config.providers[provider].disabled,\n );\n }\n getModules() {\n return {\n ...super.getModules(),\n providers: [\n import('@lskjs/module/asyncModules'),\n { items: pick(this.providers, this.getActiveProvidersNames()), config: this.config.providers },\n ],\n tests: [import('./ProxyTests'), { tests: this.tests, config: this.config.tests }],\n };\n }\n async runProvidersMethod(method, ...args) {\n const providers = await this.module('providers.*');\n return asyncMapValues(providers, async (provider) => {\n try {\n const res = await provider[method](...args);\n return res;\n } catch (err) {\n this.log.error('[provider] err', provider, err);\n return null;\n }\n });\n }\n async getProxyStats(proxyList) {\n const tests = await this.module('tests');\n return tests.getProxyStats(proxyList);\n }\n async getAllProxyList({ localhost = false } = {}) {\n const res = await this.runProvidersMethod('getList');\n let listOfLists = Object.values(res).map((a) => a?.list || []);\n if (isDebug) listOfLists = listOfLists.map((l) => l.slice(0, 2));\n const rawProxyList = uniqBy(flatten(listOfLists), 'key');\n if (localhost) return [new Proxy({ provider: 'localhost' }), ...rawProxyList];\n return rawProxyList;\n }\n async fetchProxyList() {\n const res = await this.runProvidersMethod('fetchList');\n const proxies = flatten(Object.values(res).map((a) => a || []));\n return proxies;\n }\n async getProxyTestsResults() {\n const tests = await this.module('tests');\n return tests.getResults();\n }\n async runProxyTests(proxyList) {\n const tests = await this.module('tests');\n // eslint-disable-next-line no-param-reassign\n if (!proxyList) proxyList = await this.getAllProxyList({ localhost: true });\n return tests.runTests(proxyList);\n }\n async runProxyTest({ proxyKey, testId, force }) {\n const tests = await this.module('tests');\n const proxyList = await this.getAllProxyList();\n const proxy = find(proxyList, { key: proxyKey });\n return tests.runTest({ proxy, testId, force });\n }\n async getList(filter = {}) {\n const res = await this.runProvidersMethod('getList');\n const fetchedAt = max(Object.values(res).map((a) => a?.fetchedAt));\n let proxyList = await this.getAllProxyList();\n const proxyStats = await this.getProxyStats(proxyList);\n proxyList = proxyList.map((p) => {\n // TODO: как-то облагородить\n let proxyTests = proxyStats[p.key] || [];\n proxyTests = proxyTests.filter((test) => test.status === 'success');\n const testIds = proxyTests.map((t) => t?.test?.id);\n const tagsList = proxyTests.map((t) => t?.test?.tags);\n const testTags = uniq([].concat(...tagsList));\n // eslint-disable-next-line no-param-reassign\n p.targets = testTags;\n // eslint-disable-next-line no-param-reassign\n p.tests = testIds;\n return p;\n });\n setProxyWorker(proxyList, this.config.workers);\n // const testedAt = max(Object.values(proxyStats).map((p) => p.updatedAt));\n // console.log({testedAt}, Object.values(proxyStats).map((p) => p.updatedAt))\n\n const filteredProxyList = filterProxy(proxyList, filter);\n return {\n fetchedAt,\n // testedAt,\n total: proxyList.length,\n count: filteredProxyList.length,\n list: filteredProxyList,\n };\n }\n async updateProxyList() {\n // TODO: mutex\n this.log.trace('[updateProxyList] start');\n const res = await this.runProvidersMethod('update');\n this.log.debug('[updateProxyList]', res);\n }\n async updateProxyTests() {\n // TODO: mutex\n this.log.trace('[updateProxyTests] start');\n const res = await this.runProxyTests(); // All proxies\n this.log.debug(\n '[updateProxyTests]',\n res.map(({ id, status }) => `${id}: ${status}`),\n );\n }\n async buyProxies() {\n // TODO: mutex\n this.log.trace('[buyProxies] nothing');\n }\n\n async metrics() {\n return collectMetrics.call(this);\n }\n}\n\nexport default ProxyModule;\n"],"file":"ProxyModule.js"}
\No newline at end of file