Skip to content

Commit

Permalink
fix httpClientFactory on wasm
Browse files Browse the repository at this point in the history
  • Loading branch information
alextekartik committed Sep 15, 2024
1 parent 1e11304 commit 15a8a3a
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 15 deletions.
6 changes: 6 additions & 0 deletions app_http/dart_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
platforms:
- vm
- chrome
compilers:
- dart2js
- dart2wasm
18 changes: 5 additions & 13 deletions app_http/lib/src/app_http_universal.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
import 'package:tekartik_app_http/app_http.dart';
import 'package:tekartik_common_utils/env_utils.dart';
import 'package:tekartik_http/http.dart';

HttpClientFactory? _httpClientFactoryUniversal;
import 'platform/platform.dart' show httpClientFactoryUniversal;

/// The convenient client factory
HttpClientFactory get httpClientFactoryUniversal =>
_httpClientFactoryUniversal ??= () {
if (isRunningAsJavascript) {
return httpClientFactoryBrowser;
} else {
return httpClientFactoryIo;
}
}();
export 'platform/platform.dart' show httpClientFactoryUniversal;

// Compat
// Compat, prefer using httpClientFactoryUniversal
// @Deprecated('Use httpClientFactoryUniversal')
HttpClientFactory get httpClientFactory => httpClientFactoryUniversal;
3 changes: 3 additions & 0 deletions app_http/lib/src/platform/platform.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export 'platform_none.dart'
if (dart.library.io) 'platform_io.dart'
if (dart.library.js_interop) 'platform_web.dart';
4 changes: 4 additions & 0 deletions app_http/lib/src/platform/platform_io.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import 'package:tekartik_http/http.dart';
import 'package:tekartik_http_io/http_client_io.dart';

HttpClientFactory get httpClientFactoryUniversal => httpClientFactoryIo;
4 changes: 4 additions & 0 deletions app_http/lib/src/platform/platform_none.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import 'package:tekartik_http/http.dart';

HttpClientFactory get httpClientFactoryUniversal =>
throw UnsupportedError('HttpClientFactoryUniversal.none');
4 changes: 4 additions & 0 deletions app_http/lib/src/platform/platform_web.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import 'package:tekartik_http/http.dart';
import 'package:tekartik_http_browser/http_client_browser.dart';

HttpClientFactory get httpClientFactoryUniversal => httpClientFactoryBrowser;
8 changes: 6 additions & 2 deletions app_http/test/app_http_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@ var simleJsonUrl =
'https://firebasestorage.googleapis.com/v0/b/tekartik-free-dev.appspot.com/o/test%2Fexpected%2Ftest.json?alt=media';
void main() {
group('app_http', () {
test('compat', () {
expect(httpClientFactory, httpClientFactoryUniversal);
});
test('simple', () async {
// If this fails, it is because the file has been removed from firebase storage
var response =
await httpClientFactory.newClient().get(Uri.parse(simleJsonUrl));
var response = await httpClientFactoryUniversal
.newClient()
.get(Uri.parse(simleJsonUrl));
print(response.body);
expect(response.statusCode, httpStatusCodeOk);
});
Expand Down

0 comments on commit 15a8a3a

Please sign in to comment.