Skip to content

Commit f9ca819

Browse files
fix(app-check, web): More explicit interop types (#17810)
1 parent 795567a commit f9ca819

File tree

4 files changed

+21
-32
lines changed

4 files changed

+21
-32
lines changed

packages/firebase_app_check/firebase_app_check_web/lib/firebase_app_check_web.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ class FirebaseAppCheckWeb extends FirebaseAppCheckPlatform {
157157
@override
158158
Future<String?> getToken(bool forceRefresh) async {
159159
return convertWebExceptions<Future<String?>>(() async {
160-
app_check_interop.AppCheckTokenResult result =
160+
app_check_interop.AppCheckTokenResultJsImpl result =
161161
await _delegate!.getToken(forceRefresh);
162162
return result.token.toDart;
163163
});
@@ -166,7 +166,7 @@ class FirebaseAppCheckWeb extends FirebaseAppCheckPlatform {
166166
@override
167167
Future<String> getLimitedUseToken() async {
168168
return convertWebExceptions<Future<String>>(() async {
169-
app_check_interop.AppCheckTokenResult result =
169+
app_check_interop.AppCheckTokenResultJsImpl result =
170170
await _delegate!.getLimitedUseToken();
171171
return result.token.toDart;
172172
});

packages/firebase_app_check/firebase_app_check_web/lib/src/interop/app_check.dart

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,20 @@ class AppCheck extends JsObjectWrapper<app_check_interop.AppCheckJsImpl> {
5858
isTokenAutoRefreshEnabled.toJS,
5959
);
6060

61-
Future<app_check_interop.AppCheckTokenResult> getToken(bool? forceRefresh) =>
62-
app_check_interop.getToken(jsObject, forceRefresh?.toJS).toDart.then(
63-
(value) => value! as app_check_interop.AppCheckTokenResult,
64-
);
61+
Future<app_check_interop.AppCheckTokenResultJsImpl> getToken(
62+
bool? forceRefresh,
63+
) =>
64+
app_check_interop.getToken(jsObject, forceRefresh?.toJS).toDart;
6565

66-
Future<app_check_interop.AppCheckTokenResult> getLimitedUseToken() =>
67-
app_check_interop.getLimitedUseToken(jsObject).toDart.then(
68-
(value) => value! as app_check_interop.AppCheckTokenResult,
69-
);
66+
Future<app_check_interop.AppCheckTokenResultJsImpl> getLimitedUseToken() =>
67+
app_check_interop.getLimitedUseToken(jsObject).toDart;
7068

7169
JSFunction? _idTokenChangedUnsubscribe;
7270

73-
StreamController<app_check_interop.AppCheckTokenResult>?
71+
StreamController<app_check_interop.AppCheckTokenResultJsImpl>?
7472
get idTokenChangedController => _idTokenChangedController;
7573

76-
StreamController<app_check_interop.AppCheckTokenResult>?
74+
StreamController<app_check_interop.AppCheckTokenResultJsImpl>?
7775
// ignore: close_sinks
7876
_idTokenChangedController;
7977

@@ -92,11 +90,14 @@ class AppCheck extends JsObjectWrapper<app_check_interop.AppCheckJsImpl> {
9290
return 'no-op';
9391
}
9492

95-
Stream<app_check_interop.AppCheckTokenResult> onTokenChanged(String appName) {
93+
Stream<app_check_interop.AppCheckTokenResultJsImpl> onTokenChanged(
94+
String appName,
95+
) {
9696
final appCheckWindowsKey = _appCheckWindowsKey(appName);
9797
unsubscribeWindowsListener(appCheckWindowsKey);
9898
if (_idTokenChangedController == null) {
99-
final nextWrapper = ((app_check_interop.AppCheckTokenResult result) {
99+
final nextWrapper =
100+
((app_check_interop.AppCheckTokenResultJsImpl result) {
100101
_idTokenChangedController!.add(result);
101102
}).toJS;
102103

@@ -119,8 +120,8 @@ class AppCheck extends JsObjectWrapper<app_check_interop.AppCheckJsImpl> {
119120
removeWindowsListener(appCheckWindowsKey);
120121
}
121122

122-
_idTokenChangedController =
123-
StreamController<app_check_interop.AppCheckTokenResult>.broadcast(
123+
_idTokenChangedController = StreamController<
124+
app_check_interop.AppCheckTokenResultJsImpl>.broadcast(
124125
onListen: startListen,
125126
onCancel: stopListen,
126127
sync: true,

packages/firebase_app_check/firebase_app_check_web/lib/src/interop/app_check_interop.dart

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ external AppCheckJsImpl initializeAppCheck(
2121

2222
@JS()
2323
@staticInterop
24-
external JSPromise /* AppCheckTokenResult */ getToken(
24+
external JSPromise<AppCheckTokenResultJsImpl> getToken(
2525
AppCheckJsImpl? appCheck,
2626
JSBoolean? forceRefresh,
2727
);
2828

2929
@JS()
3030
@staticInterop
31-
external JSPromise /* AppCheckTokenResult */ getLimitedUseToken(
31+
external JSPromise<AppCheckTokenResultJsImpl> getLimitedUseToken(
3232
AppCheckJsImpl? appCheck,
3333
);
3434

@@ -64,11 +64,7 @@ class ReCaptchaEnterpriseProvider implements ReCaptchaProvider {
6464
external factory ReCaptchaEnterpriseProvider(JSString recaptchaKey);
6565
}
6666

67-
@JS()
68-
@staticInterop
69-
abstract class AppCheckTokenResult {}
70-
71-
extension AppCheckTokenResultJsImplX on AppCheckTokenResult {
67+
extension type AppCheckTokenResultJsImpl._(JSObject _) implements JSObject {
7268
external JSString get token;
7369
}
7470

@@ -88,10 +84,6 @@ extension AppCheckOptionsJsImplX on AppCheckOptions {
8884
external ReCaptchaProvider get provider;
8985
}
9086

91-
@JS('AppCheck')
92-
@staticInterop
93-
abstract class AppCheckJsImpl {}
94-
95-
extension AppCheckJsImplX on AppCheckJsImpl {
87+
extension type AppCheckJsImpl._(JSObject _) implements JSObject {
9688
external AppJsImpl get app;
9789
}

tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ void main() {
4444
// Needs a debug token pasted in the Firebase console to work so we catch the exception.
4545
expect(exception, isA<FirebaseException>());
4646
}
47-
// This will fail until this is resolved: https://github.com/dart-lang/sdk/issues/52572
4847
},
49-
skip: kIsWeb,
5048
);
5149

5250
test(
@@ -73,9 +71,7 @@ void main() {
7371
// Needs a debug token pasted in the Firebase console to work so we catch the exception.
7472
expect(exception, isA<FirebaseException>());
7573
}
76-
// This will fail until this is resolved: https://github.com/dart-lang/sdk/issues/52572
7774
},
78-
skip: kIsWeb,
7975
);
8076

8177
test(

0 commit comments

Comments
 (0)