UNPKG

5.62 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/Proxy.js"],"names":["Proxy","props","stats","Object","assign","key","getKey","uri","getUri","tags","ipv","ip","ee","EventEmitter","getState","provider","proxy","host","port","user","password","auth","username","httpsAgent","httpAgent","emit","on","status","err","time","fatal"],"mappings":"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","sourcesContent":["import avg from '@lskjs/utils/avg';\nimport inc from '@lskjs/utils/inc';\nimport EventEmitter from 'events';\nimport pick from 'lodash/pick';\n\nimport { createKey } from './utils/createKey';\nimport { createUri } from './utils/createUri';\nimport { getIpv } from './utils/getIpv';\nimport { getProxyAgent } from './utils/getProxyAgent';\n\nexport class Proxy {\n constructor(props = {}) {\n Object.assign(this, props);\n if (!this.key) this.key = this.getKey();\n if (!this.uri) this.uri = this.getUri();\n if (!this.tags?.ipv && this.ip) {\n if (!this.tags) this.tags = {};\n this.tags.ipv = getIpv(this.ip);\n }\n this.ee = new EventEmitter();\n }\n getState() {\n // const ipv = getIpv(ip);\n return {\n // TODO: migrate provider to tags\n // TODO: think abount ip placement\n ...pick(this, ['type', 'host', 'port', 'user', 'password', 'provider', 'ip', 'tests', 'targets']), // , 'uri', 'key'\n tags: {\n ...this.tags,\n },\n key: this.getKey(),\n uri: this.getUri(),\n };\n }\n toObject() {\n return this.getState();\n }\n toJSON() {\n return this.getState();\n }\n getJson() {\n return this.getState();\n }\n getUrl() {\n return this.getUri();\n }\n getUri() {\n if (this.provider === 'localhost') return null;\n if (this.uri) return this.uri;\n return createUri(this);\n }\n getKey() {\n if (this.provider === 'localhost') return 'localhost';\n return createKey(this);\n }\n getOptions() {\n inc(this.stats, 'get');\n const proxy = {\n host: this.host,\n port: this.port,\n };\n if (this.user && this.password) {\n proxy.auth = {\n username: this.user,\n password: this.password,\n };\n }\n return proxy;\n }\n getAgent() {\n inc(this.stats, 'get');\n if (this.provider === 'localhost') return null;\n return getProxyAgent(this);\n }\n getProviderOptions() {\n inc(this.stats, 'get');\n // lib\n if (this.provider === 'localhost') return {};\n const httpsAgent = getProxyAgent(this);\n return {\n httpsAgent,\n httpAgent: httpsAgent,\n };\n }\n emit(...args) {\n this.ee.emit(...args);\n }\n on(...args) {\n this.ee.on(...args);\n }\n stats = {};\n feedback(props = {}) {\n const { status = 'unknown', err, time, fatal } = props;\n inc(this.stats, 'count');\n inc(this.stats, 'time', time);\n avg(this.stats, `statuses.${status}`, time);\n if (fatal) inc(this.stats, 'fatal');\n if (err) avg(this.stats, `errors.${err}`, time);\n this.emit('feedback', props, this);\n }\n}\n\nexport default Proxy;\n"],"file":"Proxy.js"}
\No newline at end of file