Skip to content

Commit 3c50cd0

Browse files
committed
refactor: refactored the ht_http_client package to be platform-agnostic.
1 parent 6484a56 commit 3c50cd0

File tree

5 files changed

+20
-8
lines changed

5 files changed

+20
-8
lines changed

lib/src/adapters/http_adapter.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export 'unsupported_adapter.dart'
2+
if (dart.library.html) 'http_adapter_web.dart'
3+
if (dart.library.io) 'http_adapter_io.dart';
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import 'package:dio/dio.dart';
2+
import 'package:dio/io.dart';
3+
4+
/// Returns a [IOHttpClientAdapter] for native platforms.
5+
HttpClientAdapter createAdapter() => IOHttpClientAdapter();
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import 'package:dio/browser.dart';
2+
import 'package:dio/dio.dart';
3+
4+
/// Returns a [BrowserHttpClientAdapter] for web platforms.
5+
HttpClientAdapter createAdapter() => BrowserHttpClientAdapter(withCredentials: true);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import 'package:dio/dio.dart';
2+
3+
/// Throws an [UnsupportedError] because the current platform is not supported.
4+
HttpClientAdapter createAdapter() =>
5+
throw UnsupportedError('Cannot create a client adapter for this platform.');

lib/src/ht_http_client.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
//
22
// ignore_for_file: only_throw_errors
33

4-
import 'package:dio/browser.dart';
54
import 'package:dio/dio.dart';
6-
import 'package:dio/io.dart';
5+
import 'package:ht_http_client/src/adapters/http_adapter.dart';
76
import 'package:ht_http_client/src/interceptors/auth_interceptor.dart';
87
import 'package:ht_http_client/src/interceptors/error_interceptor.dart';
98
import 'package:ht_shared/ht_shared.dart';
@@ -34,7 +33,6 @@ class HtHttpClient {
3433
HtHttpClient({
3534
required String baseUrl,
3635
required TokenProvider tokenProvider,
37-
required bool isWeb,
3836
Dio? dioInstance,
3937
List<Interceptor>? interceptors,
4038
Logger? logger,
@@ -49,11 +47,7 @@ class HtHttpClient {
4947
);
5048

5149
// Set the appropriate HttpClientAdapter
52-
if (isWeb) {
53-
_dio.httpClientAdapter = BrowserHttpClientAdapter(withCredentials: true);
54-
} else {
55-
_dio.httpClientAdapter = IOHttpClientAdapter();
56-
}
50+
_dio.httpClientAdapter = createAdapter();
5751

5852
// Add default interceptors
5953
_dio.interceptors.addAll([

0 commit comments

Comments
 (0)