Skip to content

Commit 253dc67

Browse files
committed
Fix infinite recursion in FirebaseStorageError message getter
1 parent 633463e commit 253dc67

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

.changeset/long-forks-bow.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'firebase': patch
3+
'@firebase/storage': patch
4+
---
5+
6+
Fix infinite recursion in FirebaseStorageError message getter

packages/storage/src/implementation/error.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,15 @@ export class FirebaseStorageError extends FirebaseError {
2727
*/
2828
customData: { serverResponse: string | null } = { serverResponse: null };
2929

30+
private readonly _baseMessage: string;
3031
/**
3132
* @param code - A StorageErrorCode string to be prefixed with 'storage/' and
3233
* added to the end of the message.
3334
* @param message - Error message.
3435
*/
3536
constructor(code: StorageErrorCode, message: string) {
36-
super(
37-
prependCode(code),
38-
`Firebase Storage: ${message} (${prependCode(code)})`
39-
);
37+
super(prependCode(code), '' /* unused error message */);
38+
this._baseMessage = `Firebase Storage: ${message} (${prependCode(code)})`;
4039
// Without this, `instanceof FirebaseStorageError`, in tests for example,
4140
// returns false.
4241
Object.setPrototypeOf(this, FirebaseStorageError.prototype);
@@ -54,9 +53,9 @@ export class FirebaseStorageError extends FirebaseError {
5453
*/
5554
get message(): string {
5655
if (this.customData.serverResponse) {
57-
return `${this.message}\n${this.customData.serverResponse}`;
56+
return `${this._baseMessage}\n${this.customData.serverResponse}`;
5857
} else {
59-
return this.message;
58+
return this._baseMessage;
6059
}
6160
}
6261

0 commit comments

Comments
 (0)