Skip to content

Commit e2283b1

Browse files
committed
feat(storage): wrap reference methods
1 parent 2a0a93a commit e2283b1

File tree

6 files changed

+40
-39
lines changed

6 files changed

+40
-39
lines changed

src/storage/observable/fromRef.ts

-11
This file was deleted.

src/storage/public_api.ts

-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@ export * from './ref';
22
export * from './storage';
33
export * from './task';
44
export * from './observable/fromTask';
5-
export * from './observable/fromRef';
65
export * from './storage.module';

src/storage/put.ts

-15
This file was deleted.

src/storage/ref.ts

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { storage } from 'firebase/app';
2-
import { createPut } from './put';
2+
import { createUploadTask } from './task';
33
import { Observable } from 'rxjs/Observable';
44
import { from } from 'rxjs/observable/from';
5-
import { getDownloadURL, getMetadata } from './observable/fromRef';
65

76
/**
87
* Create an AngularFire wrapped Storage Reference. This object
@@ -11,10 +10,20 @@ import { getDownloadURL, getMetadata } from './observable/fromRef';
1110
*/
1211
export function createStorageRef(ref: storage.Reference) {
1312
return {
14-
getDownloadURL() { return getDownloadURL(ref); },
15-
getMetadata() { return getMetadata(ref); },
13+
getDownloadURL() { return from(ref.getDownloadURL()); },
14+
getMetadata() { return from(ref.getMetadata()) },
15+
delete() { return from(ref.delete()); },
16+
child(path: string) { return createStorageRef(ref.child(path)); },
17+
updateMetatdata(meta: storage.SettableMetadata) {
18+
return from(ref.updateMetadata(meta));
19+
},
1620
put(data: any, metadata?: storage.UploadMetadata) {
17-
return createPut(ref)(data, metadata);
21+
const task = ref.put(data, metadata);
22+
return createUploadTask(task);
23+
},
24+
putString(data: string, format?: storage.StringFormat, metadata?: storage.UploadMetadata) {
25+
const task = ref.putString(data, format, metadata);
26+
return createUploadTask(task);
1827
}
1928
}
2029
}

src/storage/storage.spec.ts

+25-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import * as firebase from 'firebase/app';
22
import { Observable } from 'rxjs/Observable'
3-
import { Subject } from 'rxjs/Subject'
3+
import { forkJoin } from 'rxjs/observable/forkJoin';
44
import { TestBed, inject } from '@angular/core/testing';
55
import { FirebaseApp, FirebaseAppConfig, AngularFireModule } from 'angularfire2';
6-
import { AngularFireStorageModule, AngularFireStorage, AngularFireUploadTask, AngularFireStorageRef } from 'angularfire2/storage';
6+
import { AngularFireStorageModule, AngularFireStorage } from 'angularfire2/storage';
77
import { COMMON_CONFIG } from './test-config';
88

99
console.log(AngularFireStorageModule);
@@ -37,18 +37,36 @@ fdescribe('AngularFireStorage', () => {
3737
expect(afStorage.storage).toBeDefined();
3838
});
3939

40-
describe('AngularFireUploadTask', () => {
40+
describe('upload task', () => {
4141

42-
it('should upload a file', (done) => {
42+
it('should upload and delete a file', (done) => {
4343
const data = { angular: "fire" };
4444
const blob = new Blob([JSON.stringify(data)], { type : 'application/json' });
45-
const task = afStorage.upload('af.json', blob);
45+
const ref = afStorage.ref('af.json');
46+
const task = ref.put(blob);
4647
const sub = task.snapshotChanges()
4748
.subscribe(
48-
snap => { console.log(snap); expect(snap).toBeDefined() },
49+
snap => { expect(snap).toBeDefined() },
4950
e => { done.fail(); },
50-
done);
51+
() => {
52+
ref.delete().subscribe(done, done.fail);
53+
});
54+
});
55+
56+
});
5157

58+
describe('reference', () => {
59+
60+
it('it should upload, download, and delete', (done) => {
61+
const data = { angular: "fire" };
62+
const blob = new Blob([JSON.stringify(data)], { type : 'application/json' });
63+
const ref = afStorage.ref('af.json');
64+
const task = ref.put(blob);
65+
const sub = forkJoin(task.snapshotChanges())
66+
.mergeMap(() => ref.getDownloadURL())
67+
.do(url => expect(url).toBeDefined())
68+
.mergeMap(url => ref.delete())
69+
.subscribe(done, done.fail);
5270
});
5371

5472
});

tools/build.js

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const GLOBALS = {
2323
'rxjs/operator/merge': 'Rx.Observable.prototype',
2424
'rxjs/operator/map': 'Rx.Observable.prototype',
2525
'rxjs/observable/of': 'Rx.Observable',
26+
'rxjs/observable/forkJoin': 'Rx.Observable',
2627
'rxjs/operator/auditTime': 'Rx.Observable.prototype',
2728
'rxjs/operator/switchMap': 'Rx.Observable.prototype',
2829
'rxjs/operator/do': 'Rx.Observable.prototype',

0 commit comments

Comments
 (0)