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

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


/**
 * 请求工厂的抽象工厂类
 */
export abstract class BaseRequestFactory {
  requestInterceptors: IInterceptor[] = [];
  responseInterceptors: IInterceptor[] = [];
  errorInterceptors: IInterceptor[] = [];

  /**
   * 创建一个实例，用于一次执行请求发送
   * @param param 请求参数
   */
  abstract create(param: IBaseRequestParam): BaseRequest;
}
