From 36050f98f4aba35042570c2c618a8b74199896c5 Mon Sep 17 00:00:00 2001 From: Feiyang1 Date: Tue, 20 Oct 2020 12:15:34 -0700 Subject: [PATCH 1/4] push should return a ThenableReference --- packages/database-types/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/database-types/index.d.ts b/packages/database-types/index.d.ts index 15538ce1213..8218694cd7f 100644 --- a/packages/database-types/index.d.ts +++ b/packages/database-types/index.d.ts @@ -108,7 +108,7 @@ export interface Reference extends Query { key: string | null; onDisconnect(): OnDisconnect; parent: Reference | null; - push(value?: any, onComplete?: (a: Error | null) => any): Reference; + push(value?: any, onComplete?: (a: Error | null) => any): ThenableReference; remove(onComplete?: (a: Error | null) => any): Promise; root: Reference; set(value: any, onComplete?: (a: Error | null) => any): Promise; From 6a10d6bbc0d8048f1cb3cbae6a6327945895cb4f Mon Sep 17 00:00:00 2001 From: Feiyang1 Date: Tue, 20 Oct 2020 14:28:10 -0700 Subject: [PATCH 2/4] make thenable only implement then & catch --- packages/database-types/index.d.ts | 4 +++- packages/firebase/index.d.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/database-types/index.d.ts b/packages/database-types/index.d.ts index 8218694cd7f..fa377fb241d 100644 --- a/packages/database-types/index.d.ts +++ b/packages/database-types/index.d.ts @@ -134,7 +134,9 @@ export interface ServerValue { increment(delta: number): Object; } -export interface ThenableReference extends Reference, Promise {} +export interface ThenableReference + extends Reference, + Pick, 'then' | 'catch'> {} export function enableLogging( logger?: boolean | ((a: string) => any), diff --git a/packages/firebase/index.d.ts b/packages/firebase/index.d.ts index 695121e7224..c71dd617717 100644 --- a/packages/firebase/index.d.ts +++ b/packages/firebase/index.d.ts @@ -6902,7 +6902,7 @@ declare namespace firebase.database { interface ThenableReference extends firebase.database.Reference, - Promise {} + Pick, 'then' | 'catch'> {} /** * Logs debugging information to the console. From 353d5d3f0422b05ddca9916e1410383f92de8ef5 Mon Sep 17 00:00:00 2001 From: Feiyang Date: Tue, 20 Oct 2020 14:30:44 -0700 Subject: [PATCH 3/4] Create tame-knives-change.md --- .changeset/tame-knives-change.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/tame-knives-change.md diff --git a/.changeset/tame-knives-change.md b/.changeset/tame-knives-change.md new file mode 100644 index 00000000000..1c58edc646c --- /dev/null +++ b/.changeset/tame-knives-change.md @@ -0,0 +1,7 @@ +--- +"@firebase/database-types": patch +"@firebase/database": patch +"firebase": patch +--- + +Updated `ThenableReference` to only implement `then` and `catch` to match the implementation. From cc6f2bfb2e66ac2b83310bffcb3b44b17b9409ef Mon Sep 17 00:00:00 2001 From: Feiyang Date: Tue, 20 Oct 2020 15:15:05 -0700 Subject: [PATCH 4/4] Update .changeset/tame-knives-change.md Co-authored-by: Sebastian Schmidt --- .changeset/tame-knives-change.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/tame-knives-change.md b/.changeset/tame-knives-change.md index 1c58edc646c..d2d813fb735 100644 --- a/.changeset/tame-knives-change.md +++ b/.changeset/tame-knives-change.md @@ -4,4 +4,4 @@ "firebase": patch --- -Updated `ThenableReference` to only implement `then` and `catch` to match the implementation. +Updated the type definition for `ThenableReference` to only implement `then` and `catch`, which matches the implementation.