123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import urllib from 'urllib';
- import AgentKeepalive from 'agentkeepalive';
- import { getUserAgent } from './common/utils/getUserAgent';
- import initOptions from './common/client/initOptions';
- const HttpsAgentKeepalive = AgentKeepalive.HttpsAgent;
- const globalHttpAgent = new AgentKeepalive();
- const globalHttpsAgent = new HttpsAgentKeepalive();
- class Client {
- public options;
- public urllib;
- public agent;
- public httpsAgent;
- public ctx;
- public userAgent;
- public constructor(options, ctx) {
- if (!(this instanceof Client)) {
- return new Client(options, ctx);
- }
- if (options && options.inited) {
- this.options = options;
- } else {
- this.options = initOptions(options);
- }
- // support custom agent and urllib client
- if (this.options.urllib) {
- this.urllib = this.options.urllib;
- } else {
- this.urllib = urllib;
- this.agent = this.options.agent || globalHttpAgent;
- this.httpsAgent = this.options.httpsAgent || globalHttpsAgent;
- }
- this.ctx = ctx;
- this.userAgent = getUserAgent();
- }
- }
- let client;
- export const setConfig = (options, ctx) => {
- client = new Client(options, ctx);
- };
- export {
- client
- };
|