init method

Dio init()

Implementation

Dio init() {
  var dio = Dio();
  dio.options.baseUrl = baseURL;
  dio.options.connectTimeout = connectTimeout ?? 120.seconds;
  dio.options.receiveTimeout = receiveTimeout ?? 120.seconds;
  dio.options.headers = headers;
  if (useCache) {
    if (!kIsWeb) {
      dio.interceptors.add(cacheInterceptor(
          maxStale: maxStaleCache, hitCacheOnErrorExcept: hitCacheOnErrorExcept));
    }
  }
  if (showLogging) {
    dio.interceptors.add(PrettyDioLogger(
        requestHeader: true,
        requestBody: true,
        responseBody: true,
        responseHeader: false,
        error: true,
        compact: true,
        maxWidth: 90,
        enabled: kDebugMode,
        request: true,
        filter: (options, args) {
          if (handleFilterLog != null) {
            handleFilterLog!(options, args);
          }
          // don't print responses with unit8 list data
          return !args.isResponse || !args.hasUint8ListData;
        }));
  }
  dio.interceptors.add(ApiInterceptors(
      handleOnRequest: handleOnRequest ?? (value) {},
      handleResponse: handleOnResponse ?? (value) {},
      showLogging: showLogging,
      handleOnError: handleOnError ?? (_, __) {},
      handleWhenUnauthorized: handleWhenUnauthorized ?? () {}));
  return dio;
}