From d7f0eaceee795812c24044bd818cf2bb9b5bca9e Mon Sep 17 00:00:00 2001 From: Mertcan Mermerkaya Date: Tue, 8 May 2018 18:10:56 +0100 Subject: [PATCH 1/3] Fix Observer and Messaging types --- packages/firebase/index.d.ts | 39 +++++++++++-------- packages/messaging-types/index.d.ts | 4 +- .../src/controllers/controller-interface.ts | 3 +- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/packages/firebase/index.d.ts b/packages/firebase/index.d.ts index e0f91c95d81..5d335cd9b72 100644 --- a/packages/firebase/index.d.ts +++ b/packages/firebase/index.d.ts @@ -14,6 +14,8 @@ * limitations under the License. */ declare namespace firebase { + type NextFn = (value: T) => void; + type ErrorFn = (error: Error) => void; type CompleteFn = () => void; interface FirebaseError { @@ -23,10 +25,10 @@ declare namespace firebase { stack?: string; } - interface Observer { - complete(): any; - error(error: E): any; - next(value: V | null): any; + interface Observer { + next: NextFn; + error: ErrorFn; + complete: CompleteFn; } var SDK_VERSION: string; @@ -215,14 +217,14 @@ declare namespace firebase.auth { settings: firebase.auth.AuthSettings; onAuthStateChanged( nextOrObserver: - | firebase.Observer + | firebase.Observer | ((a: firebase.User | null) => any), error?: (a: firebase.auth.Error) => any, completed?: firebase.Unsubscribe ): firebase.Unsubscribe; onIdTokenChanged( nextOrObserver: - | firebase.Observer + | firebase.Observer | ((a: firebase.User | null) => any), error?: (a: firebase.auth.Error) => any, completed?: firebase.Unsubscribe @@ -553,17 +555,23 @@ declare namespace firebase.messaging { } interface Messaging { - deleteToken(token: string): Promise | null; - getToken(): Promise | null; + deleteToken(token: string): Promise; + getToken(): Promise; onMessage( - nextOrObserver: firebase.Observer | ((a: Object) => any) + nextOrObserver: firebase.NextFn | firebase.Observer, + error?: firebase.ErrorFn, + completed?: firebase.CompleteFn ): firebase.Unsubscribe; onTokenRefresh( - nextOrObserver: firebase.Observer | ((a: Object) => any) + nextOrObserver: firebase.NextFn | firebase.Observer, + error?: firebase.ErrorFn, + completed?: firebase.CompleteFn ): firebase.Unsubscribe; - requestPermission(): Promise | null; - setBackgroundMessageHandler(callback: (a: Object) => any): any; - useServiceWorker(registration: any): any; + requestPermission(): Promise; + setBackgroundMessageHandler( + callback: (payload: any) => Promise | void + ): void; + useServiceWorker(registration: ServiceWorkerRegistration): void; usePublicVapidKey(b64PublicKey: string): void; } } @@ -662,10 +670,7 @@ declare namespace firebase.storage { catch(onRejected: (a: Error) => any): Promise; on( event: firebase.storage.TaskEvent, - nextOrObserver?: - | firebase.Observer - | null - | ((a: Object) => any), + nextOrObserver?: firebase.Observer | null | ((a: Object) => any), error?: ((a: Error) => any) | null, complete?: (firebase.Unsubscribe) | null ): Function; diff --git a/packages/messaging-types/index.d.ts b/packages/messaging-types/index.d.ts index dbe567102de..34b09a62083 100644 --- a/packages/messaging-types/index.d.ts +++ b/packages/messaging-types/index.d.ts @@ -38,7 +38,9 @@ export class FirebaseMessaging { completed?: CompleteFn ): Unsubscribe; requestPermission(): Promise; - setBackgroundMessageHandler(callback: (a: any) => Promise): void; + setBackgroundMessageHandler( + callback: (payload: any) => Promise | void + ): void; useServiceWorker(registration: ServiceWorkerRegistration): void; usePublicVapidKey(b64PublicKey: string): void; } diff --git a/packages/messaging/src/controllers/controller-interface.ts b/packages/messaging/src/controllers/controller-interface.ts index 077318e6f0d..66cb3317582 100644 --- a/packages/messaging/src/controllers/controller-interface.ts +++ b/packages/messaging/src/controllers/controller-interface.ts @@ -33,7 +33,8 @@ import { IIDModel } from '../models/iid-model'; import { TokenDetailsModel } from '../models/token-details-model'; import { VapidDetailsModel } from '../models/vapid-details-model'; -export type BgMessageHandler = (input: MessagePayload) => Promise; +// tslint:disable-next-line no-any User can return any type of promise. +export type BgMessageHandler = (payload: MessagePayload) => Promise | void; const SENDER_ID_OPTION_NAME = 'messagingSenderId'; // Database cache should be invalidated once a week. From 45758e6f95c3ae9f4713fe0c717b3347f3921989 Mon Sep 17 00:00:00 2001 From: Mertcan Mermerkaya Date: Tue, 8 May 2018 18:44:03 +0100 Subject: [PATCH 2/3] [AUTOMATED]: Prettier Code Styling --- packages/firestore/test/util/node_persistence.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firestore/test/util/node_persistence.ts b/packages/firestore/test/util/node_persistence.ts index d576b82be3a..ac91b597d86 100644 --- a/packages/firestore/test/util/node_persistence.ts +++ b/packages/firestore/test/util/node_persistence.ts @@ -39,4 +39,4 @@ if (process.env.USE_MOCK_PERSISTENCE === 'YES') { globalAny.window = Object.assign(globalAny.window || {}, { indexedDB: globalAny.indexedDB }); -} \ No newline at end of file +} From 8f57b8d7e2cbf1439adbbaf22c2025c1cbd475a4 Mon Sep 17 00:00:00 2001 From: Mertcan Mermerkaya Date: Tue, 8 May 2018 19:06:45 +0100 Subject: [PATCH 3/3] Add second generic with Error as default --- packages/firebase/index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/firebase/index.d.ts b/packages/firebase/index.d.ts index 5d335cd9b72..b551d344acc 100644 --- a/packages/firebase/index.d.ts +++ b/packages/firebase/index.d.ts @@ -15,7 +15,7 @@ */ declare namespace firebase { type NextFn = (value: T) => void; - type ErrorFn = (error: Error) => void; + type ErrorFn = (error: E) => void; type CompleteFn = () => void; interface FirebaseError { @@ -25,9 +25,9 @@ declare namespace firebase { stack?: string; } - interface Observer { + interface Observer { next: NextFn; - error: ErrorFn; + error: ErrorFn; complete: CompleteFn; }