constructor()

in lib/roa.js [109:148]


  constructor(config) {
    assert(config, 'must pass "config"');
    assert(config.endpoint, 'must pass "config.endpoint"');
    if (!config.endpoint.startsWith('https://') &&
      !config.endpoint.startsWith('http://')) {
      throw new Error(`"config.endpoint" must starts with 'https://' or 'http://'.`);
    }
    assert(config.apiVersion, 'must pass "config.apiVersion"');
    if (config.credentialsProvider) {
      if (typeof config.credentialsProvider.getCredentials !== 'function') {
        throw new Error(`must pass "config.credentialsProvider" with function "getCredentials()"`);
      }
      this.credentialsProvider = config.credentialsProvider;
    } else {
      assert(config.accessKeyId, 'must pass "config.accessKeyId"');
      assert(config.accessKeySecret, 'must pass "config.accessKeySecret"');
      this.accessKeyId = config.accessKeyId;
      this.accessKeySecret = config.accessKeySecret;
      this.securityToken = config.securityToken;
      this.credentialsProvider = {
        getCredentials: async () => {
          return {
            accessKeyId: config.accessKeyId,
            accessKeySecret: config.accessKeySecret,
            securityToken: config.securityToken,
          };
        }
      };
    }

    this.endpoint = config.endpoint;
    this.apiVersion = config.apiVersion;
    this.host = url.parse(this.endpoint).hostname;
    this.opts = config.opts;
    var httpModule = this.endpoint.startsWith('https://') ? require('https') : require('http');
    this.keepAliveAgent = new httpModule.Agent({
      keepAlive: true,
      keepAliveMsecs: 3000
    });
  }