From a7b3a57d706f09f6e1775446d0bc2985b2788824 Mon Sep 17 00:00:00 2001 From: Sam Olsen Date: Thu, 30 Sep 2021 13:44:24 -0700 Subject: [PATCH 1/3] Update user_credential converter function to use .then chaining instead of async/await --- packages/auth-compat/src/user_credential.ts | 35 ++++++++++----------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/packages/auth-compat/src/user_credential.ts b/packages/auth-compat/src/user_credential.ts index 98a2159df8d..8186a5e34a0 100644 --- a/packages/auth-compat/src/user_credential.ts +++ b/packages/auth-compat/src/user_credential.ts @@ -138,31 +138,30 @@ function credentialFromObject( : provider.credentialFromResult(object); } -export async function convertCredential( +export function convertCredential( auth: exp.Auth, credentialPromise: Promise ): Promise { - let credential: exp.UserCredential; - try { - credential = await credentialPromise; - } catch (e) { + return credentialPromise.catch(e => { if (e instanceof FirebaseError) { attachExtraErrorFields(auth, e); } throw e; - } - const { operationType, user } = credential; - - return { - operationType, - credential: credentialFromResponse( - credential as exp.UserCredentialInternal - ), - additionalUserInfo: exp.getAdditionalUserInfo( - credential as exp.UserCredential - ), - user: User.getOrCreate(user) - }; + }).then(credential => { + const operationType = credential.operationType; + const user = credential.user; + + return { + operationType, + credential: credentialFromResponse( + credential as exp.UserCredentialInternal + ), + additionalUserInfo: exp.getAdditionalUserInfo( + credential as exp.UserCredential + ), + user: User.getOrCreate(user) + }; + }); } export async function convertConfirmationResult( From 60b29187d42ba81ae4f0fdca232b29a599b6cfed Mon Sep 17 00:00:00 2001 From: Sam Olsen Date: Thu, 30 Sep 2021 13:44:49 -0700 Subject: [PATCH 2/3] Formatting --- packages/auth-compat/src/user_credential.ts | 52 +++++++++++---------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/packages/auth-compat/src/user_credential.ts b/packages/auth-compat/src/user_credential.ts index 8186a5e34a0..99f3d1f01bb 100644 --- a/packages/auth-compat/src/user_credential.ts +++ b/packages/auth-compat/src/user_credential.ts @@ -31,8 +31,8 @@ function credentialFromResponse( function attachExtraErrorFields(auth: exp.Auth, e: FirebaseError): void { // The response contains all fields from the server which may or may not // actually match the underlying type - const response = ((e.customData as exp.TaggedWithTokenResponse | undefined) - ?._tokenResponse as unknown) as Record; + const response = (e.customData as exp.TaggedWithTokenResponse | undefined) + ?._tokenResponse as unknown as Record; if (e.code === 'auth/multi-factor-auth-required') { const mfaErr = e as compat.MultiFactorError; mfaErr.resolver = new MultiFactorResolver( @@ -54,9 +54,9 @@ function attachExtraErrorFields(auth: exp.Auth, e: FirebaseError): void { function credentialFromObject( object: FirebaseError | exp.UserCredential ): exp.AuthCredential | null { - const { _tokenResponse } = (object instanceof FirebaseError - ? object.customData - : object) as exp.TaggedWithTokenResponse; + const { _tokenResponse } = ( + object instanceof FirebaseError ? object.customData : object + ) as exp.TaggedWithTokenResponse; if (!_tokenResponse) { return null; } @@ -142,26 +142,28 @@ export function convertCredential( auth: exp.Auth, credentialPromise: Promise ): Promise { - return credentialPromise.catch(e => { - if (e instanceof FirebaseError) { - attachExtraErrorFields(auth, e); - } - throw e; - }).then(credential => { - const operationType = credential.operationType; - const user = credential.user; - - return { - operationType, - credential: credentialFromResponse( - credential as exp.UserCredentialInternal - ), - additionalUserInfo: exp.getAdditionalUserInfo( - credential as exp.UserCredential - ), - user: User.getOrCreate(user) - }; - }); + return credentialPromise + .catch(e => { + if (e instanceof FirebaseError) { + attachExtraErrorFields(auth, e); + } + throw e; + }) + .then(credential => { + const operationType = credential.operationType; + const user = credential.user; + + return { + operationType, + credential: credentialFromResponse( + credential as exp.UserCredentialInternal + ), + additionalUserInfo: exp.getAdditionalUserInfo( + credential as exp.UserCredential + ), + user: User.getOrCreate(user) + }; + }); } export async function convertConfirmationResult( From 19cc90722c12a2144a9ee83a645d84429592066f Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 30 Sep 2021 15:21:56 -0700 Subject: [PATCH 3/3] Changeset --- .changeset/tame-owls-deny.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/tame-owls-deny.md diff --git a/.changeset/tame-owls-deny.md b/.changeset/tame-owls-deny.md new file mode 100644 index 00000000000..8c68eae25a2 --- /dev/null +++ b/.changeset/tame-owls-deny.md @@ -0,0 +1,6 @@ +--- +"@firebase/auth-compat": patch +"@firebase/auth": patch +--- + +Bugfix