AppClient constructor

AppClient({
  1. bool isAuthorizationCustom = false,
  2. String? token,
  3. String? baseUrl,
  4. bool enableErrorHandler = true,
  5. BaseOptions? options,
  6. List<Interceptor>? customInterceptors,
  7. Duration? connectTimeout,
  8. Duration? receiveTimeout,
  9. bool httpShouldUsePipelining = false,
})

Implementation

factory AppClient({
  bool isAuthorizationCustom = false,
  String? token,
  String? baseUrl,
  bool enableErrorHandler = true,
  BaseOptions? options,
  List<Interceptor>? customInterceptors,
  Duration? connectTimeout,
  Duration? receiveTimeout,
  bool httpShouldUsePipelining = false,
}) {
  _enableErrorHandler = enableErrorHandler;

  if (baseUrl != _instance?.options.baseUrl) {
    _instance = AppClient._(
      baseUrl: baseUrl ?? appBaseUrl,
      options: options,
      customInterceptors: customInterceptors,
      connectTimeout: connectTimeout,
      receiveTimeout: receiveTimeout,
    );
  } else {
    _instance ??= AppClient._(
      baseUrl: baseUrl ?? appBaseUrl,
      options: options,
      customInterceptors: customInterceptors,
      connectTimeout: connectTimeout,
      receiveTimeout: receiveTimeout,
    );
  }
  if (Platform.isIOS) {
    _instance!.httpClientAdapter = NativeAdapter();
  }
  if (options != null) _instance!.options = options;
  _instance!.options.baseUrl = baseUrl ?? appBaseUrl;
  // if (Platform.isIOS) {
  //   _instance!.httpClientAdapter = NativeAdapter(
  //     createCupertinoConfiguration: () =>
  //         URLSessionConfiguration.ephemeralSessionConfiguration()
  //           ..httpShouldUsePipelining = httpShouldUsePipelining
  //           ..allowsCellularAccess = false
  //           ..allowsConstrainedNetworkAccess = false
  //           ..allowsExpensiveNetworkAccess = false,
  //   );
  // }
  (_instance!.transformer as BackgroundTransformer).jsonDecodeCallback =
      parseJson;
  if ((token == null || token.isEmpty)) {
    _instance!.options.headers.remove(r'Authorization');
  } else {
    _instance!.options.headers.addAll({
      r'Authorization': isAuthorizationCustom ? token : ('Bearer $token')
    });
  }
  // _instance!.options.headers.addAll(appHeaders);
  return _instance!;
}