export default class {
  constructor(method, url, headers, xhr) {
    this._xhr = xhr;
    this._url = url;
    this._method = method;
    this._headers = headers;
    this._headers = {
      ...headers,
      'content-type': 'application/json',
      'x-request-id': `${this._method} ${this._url}?${JSON.stringify(headers.body)}`,
    };
    if (typeof this._headers.body.index !== 'undefined') {
      // this should probably be in a response
      this._headers['content-type'] = 'text/event-stream';
    }
  }
  headers() {
    return this._headers;
  }
  getId() {
    return this._headers['x-request-id'];
  }
  abort() {
    this._xhr.abort();
  }
  connection() {
    return this._xhr;
  }
}