Skip to content

Commit 79b887d

Browse files
committed
fix: interop types
1 parent c6d8f8b commit 79b887d

File tree

3 files changed

+25
-27
lines changed

3 files changed

+25
-27
lines changed

packages/firebase_database/firebase_database_web/lib/src/interop/database.dart

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ class Database
7878
/// can be used for reading or writing data to that database location.
7979
///
8080
/// See: <https://firebase.google.com/docs/reference/js/firebase.database.Reference>.
81-
class DatabaseReference<T extends database_interop.ReferenceJsImpl>
82-
extends Query<T> {
81+
class DatabaseReference extends Query<database_interop.ReferenceJsImpl> {
8382
static final _expando = Expando<DatabaseReference>();
8483

8584
/// The last part of the current path.
@@ -204,11 +203,9 @@ class DatabaseReference<T extends database_interop.ReferenceJsImpl>
204203
applyLocally: applyLocally.toJS),
205204
)
206205
.toDart;
207-
final castedJsTransaction =
208-
jsTransactionResult as database_interop.TransactionResultJsImpl;
209206
return Transaction(
210-
committed: (castedJsTransaction.committed).toDart,
211-
snapshot: DataSnapshot._fromJsObject(castedJsTransaction.snapshot),
207+
committed: (jsTransactionResult.committed).toDart,
208+
snapshot: DataSnapshot._fromJsObject(jsTransactionResult.snapshot),
212209
);
213210
} catch (e, s) {
214211
throw convertFirebaseDatabaseException(e, s);
@@ -317,8 +314,7 @@ class Query<T extends database_interop.QueryJsImpl> extends JsObjectWrapper<T> {
317314
final jsSnapshotPromise = database_interop.get(jsObject);
318315
final snapshot = await jsSnapshotPromise.toDart;
319316

320-
return DataSnapshot.getInstance(
321-
snapshot as database_interop.DataSnapshotJsImpl);
317+
return DataSnapshot.getInstance(snapshot);
322318
}
323319

324320
/// Returns a Query with the ending point [value]. The ending point
@@ -674,18 +670,18 @@ class OnDisconnect
674670
/// [Future] property.
675671
///
676672
/// See: <https://firebase.google.com/docs/reference/js/firebase.database.ThenableReference>.
677-
class ThenableReference
678-
extends DatabaseReference<database_interop.ThenableReferenceJsImpl> {
679-
late final Future<DatabaseReference> _future = jsObject
680-
.then(((database_interop.ReferenceJsImpl reference) {
681-
DatabaseReference.getInstance(reference);
682-
}).toJS)
683-
.toDart
684-
.then((value) => value as DatabaseReference);
673+
class ThenableReference extends DatabaseReference {
674+
late final Future<DatabaseReference> _future =
675+
(jsObject as database_interop.ThenableReferenceJsImpl)
676+
.then(((database_interop.ReferenceJsImpl reference) {
677+
DatabaseReference.getInstance(reference);
678+
}).toJS)
679+
.toDart
680+
.then((value) => value as DatabaseReference);
685681

686682
/// Creates a new ThenableReference from a [jsObject].
687683
ThenableReference.fromJsObject(
688-
super.jsObject,
684+
database_interop.ThenableReferenceJsImpl super.jsObject,
689685
) : super._fromJsObject();
690686

691687
/// A Future property.

packages/firebase_database/firebase_database_web/lib/src/interop/database_interop.dart

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -183,16 +183,16 @@ external JSAny serverTimestamp();
183183

184184
@JS()
185185
@staticInterop
186-
external JSPromise<ReferenceJsImpl> set(ReferenceJsImpl ref, JSAny? value);
186+
external JSPromise set(ReferenceJsImpl ref, JSAny? value);
187187

188188
@JS()
189189
@staticInterop
190-
external JSPromise<ReferenceJsImpl> setPriority(
190+
external JSPromise setPriority(
191191
ReferenceJsImpl ref, /* JSString | JSNumber | null */ JSAny? priority);
192192

193193
@JS()
194194
@staticInterop
195-
external JSPromise<ReferenceJsImpl> setWithPriority(ReferenceJsImpl ref, JSAny? value,
195+
external JSPromise setWithPriority(ReferenceJsImpl ref, JSAny? value,
196196
/* JSString | JSNumber | null */ JSAny? priority);
197197

198198
@JS()
@@ -231,33 +231,34 @@ extension type QueryConstraintJsImpl._(JSObject _) implements JSObject {
231231
}
232232

233233
extension type OnDisconnectJsImpl._(JSObject _) implements JSObject {
234-
external JSPromise<ReferenceJsImpl> cancel([
234+
external JSPromise cancel([
235235
JSFunction onComplete,
236236
//void Function(JSAny) onComplete
237237
]);
238238

239-
external JSPromise<ReferenceJsImpl> remove([
239+
external JSPromise remove([
240240
JSFunction onComplete,
241241
//void Function(JSAny) onComplete
242242
]);
243243

244-
external JSPromise<ReferenceJsImpl> set(
244+
external JSPromise set(
245245
JSAny? value, [
246246
JSFunction onComplete,
247247
//void Function(JSAny) onComplete
248248
]);
249249

250-
external JSPromise<ReferenceJsImpl> setWithPriority(
250+
external JSPromise setWithPriority(
251251
JSAny? value,
252252
JSAny? priority,
253253
);
254254

255-
external JSPromise<ReferenceJsImpl> update(
255+
external JSPromise update(
256256
JSAny? values,
257257
);
258258
}
259259

260-
extension type ThenableReferenceJsImpl._(JSObject _) implements JSObject {
260+
extension type ThenableReferenceJsImpl._(JSObject _)
261+
implements JSObject, ReferenceJsImpl {
261262
external JSPromise then([JSFunction? onResolve, JSFunction? onReject]);
262263
}
263264

packages/firebase_database/firebase_database_web/lib/src/interop/reference_interop.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ extension type TransactionResultJsImpl._(JSObject _) implements JSObject {
1010
external DataSnapshotJsImpl get snapshot;
1111
}
1212

13-
extension type ReferenceJsImpl._(JSObject _) implements JSObject {
13+
extension type ReferenceJsImpl._(JSObject _)
14+
implements JSObject, QueryJsImpl {
1415
external JSString? get key;
1516

1617
external ReferenceJsImpl? get parent;

0 commit comments

Comments
 (0)