Skip to content

Commit 116d21b

Browse files
committed
Error => FirebaseStorageError
1 parent 2b2b501 commit 116d21b

File tree

6 files changed

+35
-14
lines changed

6 files changed

+35
-14
lines changed

packages/storage/compat/task.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,17 @@
1818
import { UploadTask } from '../src/task';
1919
import { UploadTaskSnapshotCompat } from './tasksnapshot';
2020
import { TaskEvent } from '../src/implementation/taskenums';
21-
import { ErrorFn, CompleteFn, Unsubscribe, Subscribe } from '@firebase/util';
2221
import * as types from '@firebase/storage-types';
23-
import { StorageObserver } from '../src/implementation/observer';
22+
import {
23+
StorageObserver,
24+
ErrorFn,
25+
CompleteFn,
26+
Subscribe,
27+
Unsubscribe
28+
} from '../src/implementation/observer';
2429
import { UploadTaskSnapshot } from '../src/tasksnapshot';
2530
import { ReferenceCompat } from './reference';
31+
import { FirebaseStorageError } from '../src/implementation/error';
2632

2733
export class UploadTaskCompat implements types.UploadTask {
2834
constructor(
@@ -43,7 +49,7 @@ export class UploadTaskCompat implements types.UploadTask {
4349

4450
then(
4551
onFulfilled?: ((a: UploadTaskSnapshotCompat) => unknown) | null,
46-
onRejected?: ((a: Error) => unknown) | null
52+
onRejected?: ((a: FirebaseStorageError) => unknown) | null
4753
): Promise<unknown> {
4854
return this.delegate.then(snapshot => {
4955
if (onFulfilled) {

packages/storage/src/implementation/error.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ export const Code = {
9797
APP_DELETED: 'app-deleted',
9898
INVALID_ROOT_OPERATION: 'invalid-root-operation',
9999
INVALID_FORMAT: 'invalid-format',
100-
INTERNAL_ERROR: 'internal-error'
100+
INTERNAL_ERROR: 'internal-error',
101+
UNSUPPORTED_ENVIRONMENT: 'unsupported-environment'
101102
};
102103

103104
export function prependCode(code: Code): string {

packages/storage/src/implementation/fs.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* bloats the size of the released binary.
2121
*/
2222
import * as type from './type';
23+
import { Code, FirebaseStorageError } from './error';
2324

2425
function getBlobBuilder(): typeof IBlobBuilder | undefined {
2526
if (typeof BlobBuilder !== 'undefined') {
@@ -49,7 +50,10 @@ export function getBlob(...args: Array<string | Blob | ArrayBuffer>): Blob {
4950
if (type.isNativeBlobDefined()) {
5051
return new Blob(args);
5152
} else {
52-
throw Error("This browser doesn't seem to support creating Blobs");
53+
throw new FirebaseStorageError(
54+
Code.UNSUPPORTED_ENVIRONMENT,
55+
"This browser doesn't seem to support creating Blobs"
56+
);
5357
}
5458
}
5559
}

packages/storage/src/implementation/observer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import * as type from './type';
1818
import { FirebaseStorageError } from './error';
1919

2020
export type NextFn<T> = (value: T) => void;
21-
export type ErrorFn = (error: Error | FirebaseStorageError) => void;
21+
export type ErrorFn = (error: FirebaseStorageError) => void;
2222
export type CompleteFn = () => void;
2323
export type Unsubscribe = () => void;
2424

packages/storage/src/task.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,14 @@ export class UploadTask {
6767
private observers_: Array<StorageObserver<UploadTaskSnapshot>> = [];
6868
private resumable_: boolean;
6969
state_: InternalTaskState;
70-
private error_: Error | null = null;
70+
private error_: FirebaseStorageError | null = null;
7171
private uploadUrl_: string | null = null;
7272
private request_: Request<unknown> | null = null;
7373
private chunkMultiplier_: number = 1;
7474
private errorHandler_: (p1: FirebaseStorageError) => void;
7575
private metadataErrorHandler_: (p1: FirebaseStorageError) => void;
7676
private resolve_: ((p1: UploadTaskSnapshot) => void) | null = null;
77-
private reject_: ((p1: Error) => void) | null = null;
77+
private reject_: ((p1: FirebaseStorageError) => void) | null = null;
7878
private promise_: Promise<UploadTaskSnapshot>;
7979

8080
/**
@@ -599,8 +599,8 @@ export class UploadTask {
599599
break;
600600
case TaskState.CANCELED:
601601
case TaskState.ERROR:
602-
const toCall = this.reject_ as (p1: Error) => void;
603-
fbsAsync(toCall.bind(null, this.error_ as Error))();
602+
const toCall = this.reject_ as (p1: FirebaseStorageError) => void;
603+
fbsAsync(toCall.bind(null, this.error_ as FirebaseStorageError))();
604604
break;
605605
default:
606606
triggered = false;
@@ -630,13 +630,17 @@ export class UploadTask {
630630
case TaskState.CANCELED:
631631
case TaskState.ERROR:
632632
if (observer.error) {
633-
fbsAsync(observer.error.bind(observer, this.error_ as Error))();
633+
fbsAsync(
634+
observer.error.bind(observer, this.error_ as FirebaseStorageError)
635+
)();
634636
}
635637
break;
636638
default:
637639
// TODO(andysoto): assert(false);
638640
if (observer.error) {
639-
fbsAsync(observer.error.bind(observer, this.error_ as Error))();
641+
fbsAsync(
642+
observer.error.bind(observer, this.error_ as FirebaseStorageError)
643+
)();
640644
}
641645
}
642646
}

packages/storage/test/unit/xhrio.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
import * as type from '../../src/implementation/type';
1818
import { ErrorCode, Headers, XhrIo } from '../../src/implementation/xhrio';
19+
import { FirebaseStorageError, Code } from '../../src/implementation/error';
1920

2021
export type SendHook = (
2122
xhrio: TestingXhrIo,
@@ -64,7 +65,8 @@ export class TestingXhrIo implements XhrIo {
6465
headers?: Headers
6566
): Promise<XhrIo> {
6667
if (this.state !== State.START) {
67-
throw new Error("Can't send again");
68+
//TODO: Make a code.
69+
throw new FirebaseStorageError(Code.UNKNOWN, "Can't send again");
6870
}
6971

7072
this.state = State.SENT;
@@ -81,7 +83,11 @@ export class TestingXhrIo implements XhrIo {
8183
headers: { [key: string]: string }
8284
): void {
8385
if (this.state !== State.SENT) {
84-
throw new Error("Can't simulate response before send/more than once");
86+
//TODO: Make a code.
87+
throw new FirebaseStorageError(
88+
Code.UNKNOWN,
89+
"Can't simulate response before send/more than once"
90+
);
8591
}
8692

8793
this.status = status;

0 commit comments

Comments
 (0)