
import { BaseRequest } from '../base/base-request';
import { BaseRequestFactory } from '../base/base-request-factory';

import { WebRequest } from './web-request';

import type { IInterceptor, IBaseRequestParam } from '../types';

/**
 * web端的请求工厂
 */
export default class WebRequestFactory extends BaseRequestFactory {
  requestInterceptors: IInterceptor[] = [];
  responseInterceptors: IInterceptor[] = [];
  errorInterceptors: IInterceptor[] = [];

  create(param: IBaseRequestParam): BaseRequest {
    return new WebRequest({
      requestInterceptors: this.requestInterceptors,
      responseInterceptors: this.responseInterceptors,
      errorInterceptors: this.errorInterceptors,
      extra: param.extra,
    });
  }
}
