Skip to content

Commit 2cb204f

Browse files
committed
chore(): Migrate to js_interop (#6162)
1 parent 7a6fa7e commit 2cb204f

File tree

110 files changed

+787
-1652
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+787
-1652
lines changed

actions/lib/src/node/actions/exec.dart

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33

44
import 'dart:convert';
55
import 'dart:js_interop';
6-
//ignore: deprecated_member_use
7-
import 'dart:js_util';
86

97
@JS()
108
external Exec get exec;
@@ -46,9 +44,14 @@ extension type Exec._(JSObject it) {
4644
ignoreReturnCode: !failOnNonZeroExit,
4745
);
4846
try {
49-
final exitCode = await promiseToFuture<int>(
50-
_exec(commandLine, args.map((arg) => arg.toJS).toList().toJS, options),
51-
);
47+
final jsExitCode =
48+
await _exec(
49+
commandLine,
50+
args.map((arg) => arg.toJS).toList().toJS,
51+
options,
52+
).toDart;
53+
54+
final exitCode = (jsExitCode as JSNumber).toDartInt;
5255
return ExecResult(
5356
exitCode: exitCode,
5457
stdout: stdout.toString(),

actions/lib/src/node/actions/http_request.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
import 'dart:js_interop';
55

6+
import 'package:web/web.dart';
7+
68
@JS()
79
extension type HttpClient._(JSObject it) {
810
external HttpClient([
@@ -18,7 +20,11 @@ extension type HttpClient._(JSObject it) {
1820
String requestUrl, {
1921
Map<String, String> headers = const {},
2022
}) async {
21-
final jsHeaders = headers.jsify() as JSObject;
23+
final jsHeaders = Headers();
24+
for(final entry in headers.entries) {
25+
jsHeaders.append(entry.key, entry.value);
26+
}
27+
2228
final response = await _getJson(requestUrl, jsHeaders).toDart;
2329
final result = response as TypedResponse<JSObject>;
2430
if (result.statusCode != 200) {

actions/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ dependencies:
1818
source_maps: ^0.10.12
1919
stack_trace: ^1.10.0
2020
stream_transform: ^2.1.0
21+
web: ^1.1.1
2122

2223
dev_dependencies:
2324
amplify_lints: ^3.0.0

packages/amplify_core/lib/src/platform/platform.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
export 'platform_stub.dart'
55
if (dart.library.io) 'platform_io.dart'
6-
if (dart.library.html) 'platform_html.dart';
6+
if (dart.library.js_interop) 'platform_html.dart';

packages/amplify_core/lib/src/platform/platform_html.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
//ignore: deprecated_member_use
5-
import 'dart:html';
4+
import 'package:web/web.dart';
65

76
final RegExp _edgeRegex = RegExp(r'Edg/[\d\.]+');
87
final RegExp _operaRegex = RegExp(r'OPR/[\d\.]+');

packages/amplify_core/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ dependencies:
2121
retry: ^3.1.0
2222
stack_trace: ^1.10.0
2323
uuid: ">=3.0.6 <5.0.0"
24+
web: ^1.1.1
2425

2526
dev_dependencies:
2627
amplify_lints: ">=3.1.2 <3.2.0"

packages/analytics/amplify_analytics_pinpoint/lib/src/device_context_info_provider/device_info_provider/device_info_provider.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
export 'device_info_provider_stub.dart'
5-
if (dart.library.html) 'device_info_provider_html.dart'
5+
if (dart.library.js_interop) 'device_info_provider_html.dart'
66
if (dart.library.io) 'device_info_provider_io.dart';

packages/analytics/amplify_analytics_pinpoint/lib/src/flutter_path_provider/flutter_path_provider.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
export 'flutter_path_provider_stub.dart'
5-
if (dart.library.html) 'flutter_path_provider_html.dart'
5+
if (dart.library.js_interop) 'flutter_path_provider_html.dart'
66
if (dart.library.io) 'flutter_path_provider_io.dart';

packages/analytics/amplify_analytics_pinpoint_dart/lib/src/impl/analytics_client/event_client/queued_item_store/dart_queued_item_store.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
export 'dart_queued_item_store.stub.dart'
5-
if (dart.library.html) 'dart_queued_item_store.web.dart'
5+
if (dart.library.js_interop) 'dart_queued_item_store.web.dart'
66
if (dart.library.io) 'dart_queued_item_store.vm.dart';

packages/analytics/amplify_analytics_pinpoint_dart/lib/src/impl/analytics_client/event_client/queued_item_store/index_db/indexed_db_adapter.dart

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
import 'dart:async';
5-
//ignore: deprecated_member_use
6-
import 'dart:js_util';
5+
import 'dart:js_interop';
6+
import 'dart:js_interop_unsafe';
77

88
import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/event_client/queued_item_store/queued_item_store.dart';
99
import 'package:amplify_core/amplify_core.dart';
1010
// ignore: implementation_imports
1111
import 'package:aws_common/src/js/indexed_db.dart';
1212
import 'package:collection/collection.dart';
13+
import 'package:web/web.dart';
1314

1415
// TODO(kylechen): Consider merging/refactoring with existing 'amplify_secure_storage_web - _IndexedDBStorage' class
1516
/// {@template amplify_analytics_pinpoint_dart.indexed_db_adapter}
@@ -39,36 +40,43 @@ class IndexedDbAdapter implements QueuedItemStore {
3940
if (db == null) {
4041
throw const InvalidStateException('IndexedDB is not available');
4142
}
43+
void onUpgradeNeeded(IDBVersionChangeEvent event) {
44+
final database = event.target?.getProperty<IDBDatabase>('result'.toJS);
45+
final objectStoreNames = database?.objectStoreNames;
46+
if (!(objectStoreNames?.contains(storeName) ?? false)) {
47+
database?.createObjectStore(
48+
storeName,
49+
IDBObjectStoreParameters(keyPath: 'id'.toJS, autoIncrement: true),
50+
);
51+
}
52+
}
53+
4254
final openRequest = db.open(databaseName, 1)
43-
..onupgradeneeded = (event) {
44-
final database = event.target.result;
45-
final objectStoreNames = database.objectStoreNames;
46-
if (!objectStoreNames.contains(storeName)) {
47-
database.createObjectStore(
48-
storeName,
49-
keyPath: 'id',
50-
autoIncrement: true,
51-
);
52-
}
53-
};
54-
_database = await openRequest.future;
55+
..onupgradeneeded = onUpgradeNeeded.toJS;
56+
57+
final result = await openRequest.future;
58+
if (result.isA<IDBDatabase>()) {
59+
result as IDBDatabase;
60+
_database = result;
61+
} else {
62+
throw const InvalidStateException('IDBOpenDBRequest failed');
63+
}
5564
}
5665

5766
/// Returns a new [IDBObjectStore] instance after waiting for initialization
5867
/// to complete.
5968
IDBObjectStore _getObjectStore() {
60-
final transaction = _database.transaction(
61-
storeName,
62-
mode: IDBTransactionMode.readwrite,
63-
);
69+
final transaction = _database.transaction(storeName.toJS, 'readwrite');
6470
final store = transaction.objectStore(storeName);
6571
return store;
6672
}
6773

6874
@override
6975
Future<void> addItem(String string) async {
7076
await _databaseOpenEvent;
71-
await _getObjectStore().push({'value': string}).future;
77+
final item = JSObject()..setProperty('value'.toJS, string.toJS);
78+
79+
await _getObjectStore().add(item).future;
7280
}
7381

7482
@override
@@ -77,14 +85,26 @@ class IndexedDbAdapter implements QueuedItemStore {
7785

7886
await _databaseOpenEvent;
7987
final store = _getObjectStore();
80-
final request = store.getAll(null, count);
88+
89+
late IDBRequest request;
90+
if (count == null) {
91+
request = store.getAll();
92+
} else {
93+
request = store.getAll(null, count);
94+
}
8195

8296
await request.future;
97+
final jsResult = request.result;
98+
var result = <JSObject>[];
99+
if (jsResult.isA<JSArray<JSObject>>()) {
100+
jsResult as JSArray<JSObject>;
101+
result = jsResult.toDart;
102+
}
103+
104+
for (final elem in result) {
105+
final id = elem.getProperty<JSNumber>('id'.toJS).toDartInt;
106+
final string = elem.getProperty<JSString>('value'.toJS).toDart;
83107

84-
for (final elem in request.result) {
85-
final value = elem as Object;
86-
final id = getProperty<int>(value, 'id');
87-
final string = getProperty<String>(value, 'value');
88108
readValues.add(QueuedItem(id: id, value: string));
89109
}
90110
return readValues;
@@ -101,10 +121,8 @@ class IndexedDbAdapter implements QueuedItemStore {
101121

102122
final ranges = idsToDelete
103123
.splitBetween((a, b) => b != a + 1)
104-
.map((range) => IDBKeyRange.bound(range.first, range.last));
105-
await Future.wait<void>(
106-
ranges.map((range) => store.deleteByKeyRange(range).future),
107-
);
124+
.map((range) => IDBKeyRange.bound(range.first.toJS, range.last.toJS));
125+
await Future.wait<void>(ranges.map((range) => store.delete(range).future));
108126
}
109127

110128
/// Clear the database.

packages/analytics/amplify_analytics_pinpoint_dart/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ dependencies:
2424
smithy: ">=0.7.5 <0.8.0"
2525
smithy_aws: ">=0.7.5 <0.8.0"
2626
uuid: ">=3.0.6 <5.0.0"
27+
web: ^1.1.1
2728

2829
dev_dependencies:
2930
amplify_lints: ">=3.1.2 <3.2.0"

packages/auth/amplify_auth_cognito/lib/src/auth_plugin_impl.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import 'package:amplify_auth_cognito_dart/amplify_auth_cognito_dart.dart';
1515
import 'package:amplify_auth_cognito_dart/src/credentials/legacy_credential_provider.dart';
1616
// ignore: implementation_imports
1717
import 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform_stub.dart'
18-
if (dart.library.html) 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform_html.dart'
18+
if (dart.library.js_interop) 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform_html.dart'
1919
if (dart.library.ui) 'flows/hosted_ui/hosted_ui_platform_flutter.dart';
2020
// ignore: implementation_imports
2121
import 'package:amplify_auth_cognito_dart/src/model/hosted_ui/oauth_parameters.dart';

packages/auth/amplify_auth_cognito_dart/example/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ dependencies:
1515
example_common:
1616
path: ../../../example_common
1717
qr: ^3.0.1
18+
web: ^1.1.1
1819

1920
dev_dependencies:
2021
amplify_api_dart: any

packages/auth/amplify_auth_cognito_dart/example/web/components/user_component.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
//ignore: deprecated_member_use
5-
import 'dart:html';
6-
74
import 'package:amplify_auth_cognito_dart/amplify_auth_cognito_dart.dart';
85
import 'package:amplify_core/amplify_core.dart';
96
import 'package:cognito_example/common.dart';
107
import 'package:example_common/example_common.dart';
8+
import 'package:web/web.dart';
119

1210
import 'app_component.dart';
1311

packages/auth/amplify_auth_cognito_dart/lib/src/asf/asf_device_info_collector.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import 'dart:async';
66
import 'package:amplify_auth_cognito_dart/src/asf/asf_context_data.dart';
77
import 'package:amplify_auth_cognito_dart/src/asf/asf_device_info_collector.stub.dart'
88
if (dart.library.io) 'package:amplify_auth_cognito_dart/src/asf/asf_device_info_collector.vm.dart'
9-
if (dart.library.js_util) 'package:amplify_auth_cognito_dart/src/asf/asf_device_info_collector.js.dart';
9+
if (dart.library.js_interop) 'package:amplify_auth_cognito_dart/src/asf/asf_device_info_collector.js.dart';
1010
import 'package:amplify_core/amplify_core.dart';
1111
// ignore: implementation_imports
1212
import 'package:amplify_core/src/platform/platform.dart';

packages/auth/amplify_auth_cognito_dart/lib/src/asf/asf_device_info_collector.js.dart

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
// TODO(dnys1): Migrate to `js_interop`.
54
library;
65

76
import 'dart:convert';
7+
import 'dart:js_interop';
88

99
import 'package:amplify_auth_cognito_dart/src/asf/asf_device_info_collector.dart';
1010
import 'package:amplify_auth_cognito_dart/src/asf/package_info.dart';
1111
import 'package:async/async.dart';
1212
import 'package:aws_common/aws_common.dart';
13-
// ignore: implementation_imports
14-
import 'package:aws_common/src/js/common.dart';
15-
//ignore: deprecated_member_use
16-
import 'package:js/js.dart';
1713
import 'package:path/path.dart';
14+
import 'package:web/web.dart';
1815

1916
/// {@template amplify_auth_cognito_dart.asf.asf_device_info_js}
2017
/// The JS/Browser implementation of [NativeASFDeviceInfoCollector].
@@ -65,10 +62,10 @@ final class ASFDeviceInfoPlatform extends NativeASFDeviceInfoCollector {
6562
window.navigator.userAgentData?.platform ?? window.navigator.platform;
6663

6764
@override
68-
Future<int?> get screenHeightPixels async => window.screen.height?.toInt();
65+
Future<int?> get screenHeightPixels async => window.screen.height;
6966

7067
@override
71-
Future<int?> get screenWidthPixels async => window.screen.width?.toInt();
68+
Future<int?> get screenWidthPixels async => window.screen.width;
7269

7370
@override
7471
Future<String?> get thirdPartyDeviceId async => null;
@@ -81,34 +78,11 @@ String get _baseUrl {
8178
return url.join(window.location.origin, basePath);
8279
}
8380

84-
extension on Window {
85-
external _Screen get screen;
86-
external _Navigator get navigator;
87-
}
88-
89-
@JS('Screen')
90-
@staticInterop
91-
class _Screen {}
92-
93-
extension on _Screen {
94-
external double? get width;
95-
external double? get height;
96-
}
97-
98-
@JS('Navigator')
99-
@staticInterop
100-
class _Navigator {}
101-
102-
extension on _Navigator {
103-
external String? get language;
104-
external String? get platform;
81+
extension _PropsNavigator on Navigator {
10582
external _NavigatorUAData? get userAgentData;
10683
}
10784

10885
@JS('NavigatorUAData')
109-
@staticInterop
110-
class _NavigatorUAData {}
111-
112-
extension on _NavigatorUAData {
86+
extension type _NavigatorUAData._(JSObject _) implements JSObject {
11387
external String? get platform;
11488
}

packages/auth/amplify_auth_cognito_dart/lib/src/asf/asf_worker.worker.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
// Generated by worker_bee_builder.
99

1010
export 'asf_worker.worker.vm.dart'
11-
if (dart.library.js) 'asf_worker.worker.js.dart';
11+
if (dart.library.js_interop) 'asf_worker.worker.js.dart';

packages/auth/amplify_auth_cognito_dart/lib/src/auth_plugin_impl.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import 'package:amplify_auth_cognito_dart/src/credentials/device_metadata_reposi
1111
import 'package:amplify_auth_cognito_dart/src/flows/helpers.dart';
1212
import 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform.dart';
1313
import 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/initial_parameters_stub.dart'
14-
if (dart.library.html) 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/initial_parameters_html.dart';
14+
if (dart.library.js_interop) 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/initial_parameters_html.dart';
1515
import 'package:amplify_auth_cognito_dart/src/model/hosted_ui/oauth_parameters.dart';
1616
import 'package:amplify_auth_cognito_dart/src/model/session/cognito_sign_in_details.dart';
1717
import 'package:amplify_auth_cognito_dart/src/model/sign_in_parameters.dart';

packages/auth/amplify_auth_cognito_dart/lib/src/flows/device/confirm_device_worker.worker.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
// Generated by worker_bee_builder.
99

1010
export 'confirm_device_worker.worker.vm.dart'
11-
if (dart.library.js) 'confirm_device_worker.worker.js.dart';
11+
if (dart.library.js_interop) 'confirm_device_worker.worker.js.dart';

packages/auth/amplify_auth_cognito_dart/lib/src/flows/hosted_ui/hosted_ui_platform.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:amplify_auth_cognito_dart/src/credentials/cognito_keys.dart';
88
import 'package:amplify_auth_cognito_dart/src/crypto/oauth.dart';
99
import 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_config.dart';
1010
import 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform_stub.dart'
11-
if (dart.library.html) 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform_html.dart'
11+
if (dart.library.js_interop) 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform_html.dart'
1212
if (dart.library.io) 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform_io.dart';
1313
import 'package:amplify_auth_cognito_dart/src/model/hosted_ui/oauth_parameters.dart';
1414
import 'package:amplify_auth_cognito_dart/src/state/state.dart';

packages/auth/amplify_auth_cognito_dart/lib/src/flows/hosted_ui/hosted_ui_platform_html.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33

44
import 'package:amplify_auth_cognito_dart/amplify_auth_cognito_dart.dart';
55
import 'package:amplify_auth_cognito_dart/src/flows/hosted_ui/hosted_ui_platform.dart';
6-
// ignore: implementation_imports
7-
import 'package:aws_common/src/js/common.dart';
86
import 'package:path/path.dart' show url;
7+
import 'package:web/web.dart';
98

109
/// {@macro amplify_auth_cognito.hosted_ui_platform}
1110
class HostedUiPlatformImpl extends HostedUiPlatform {

packages/auth/amplify_auth_cognito_dart/lib/src/flows/hosted_ui/initial_parameters_html.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
import 'package:amplify_auth_cognito_dart/src/model/hosted_ui/oauth_parameters.dart';
5-
// ignore:implementation_imports
6-
import 'package:aws_common/src/js/common.dart';
5+
import 'package:web/web.dart';
76

87
/// {@macro amplify_auth_cognito.initial_parameters}
98
final OAuthParameters? initialParameters = OAuthParameters.fromUri(

0 commit comments

Comments
 (0)