1
+ /* @flow */
1
2
2
3
import { NativeModules , NativeEventEmitter } from 'react-native' ;
3
4
const FirestackStorage = NativeModules . FirestackStorage ;
@@ -13,7 +14,7 @@ class StorageRef extends ReferenceBase {
13
14
this . storage = storage ;
14
15
}
15
16
16
- downloadUrl ( ) {
17
+ downloadUrl ( ) : Promise < Object > {
17
18
const path = this . pathToString ( ) ;
18
19
return promisify ( 'downloadUrl' , FirestackStorage ) ( this . storage . storageUrl , path ) ;
19
20
}
@@ -23,7 +24,7 @@ class StorageRef extends ReferenceBase {
23
24
* @param {String } downloadPath Where to store the file
24
25
* @return {Promise }
25
26
*/
26
- download ( downloadPath , cb ) {
27
+ download ( downloadPath : string , cb : ( evt : Object ) = > Object ) : Promise < Object > {
27
28
let callback = cb ;
28
29
if ( ! callback || typeof callback !== 'function' ) {
29
30
callback = ( evt ) => { } ;
@@ -38,7 +39,7 @@ class StorageRef extends ReferenceBase {
38
39
return promisify ( 'downloadFile' , FirestackStorage ) ( this . storage . storageUrl , path , downloadPath )
39
40
. then ( ( res ) => {
40
41
console . log ( 'res --->' , res ) ;
41
- listeners . forEach ( this . storage . _removeListener ) ;
42
+ listeners . forEach ( listener => listener . remove ( ) ) ;
42
43
return res ;
43
44
} )
44
45
. catch ( err => {
@@ -47,8 +48,11 @@ class StorageRef extends ReferenceBase {
47
48
}
48
49
}
49
50
51
+ type StorageOptionsType = {
52
+ storageBucket ?: ?string ,
53
+ } ;
50
54
export default class Storage extends Base {
51
- constructor ( firestack , options = { } ) {
55
+ constructor ( firestack : Object , options : StorageOptionsType = { } ) {
52
56
super ( firestack , options ) ;
53
57
54
58
if ( this . options . storageBucket ) {
@@ -58,8 +62,8 @@ export default class Storage extends Base {
58
62
this . refs = { } ;
59
63
}
60
64
61
- ref ( ...path ) {
62
- const key = this . _pathKey ( path ) ;
65
+ ref ( ...path : Array < string > ) : StorageRef {
66
+ const key = this . _pathKey ( ... path ) ;
63
67
if ( ! this . refs [ key ] ) {
64
68
const ref = new StorageRef ( this , path ) ;
65
69
this . refs [ key ] = ref ;
@@ -74,10 +78,10 @@ export default class Storage extends Base {
74
78
* @param {object } metadata An object containing metadata
75
79
* @return {Promise }
76
80
*/
77
- uploadFile ( name , filepath , metadata = { } , cb ) {
81
+ uploadFile ( name : string , filepath : string , metadata : Object = { } , cb : ( evt : Object ) = > Object ) : Promise < Object > {
78
82
let callback = cb ;
79
83
if ( ! callback || typeof callback !== 'function' ) {
80
- callback = ( evt ) => { }
84
+ callback = ( evt : Object ) => ( { } ) ;
81
85
}
82
86
83
87
filepath = filepath . replace ( "file://" , "" ) ;
@@ -88,29 +92,26 @@ export default class Storage extends Base {
88
92
listeners . push ( this . _addListener ( 'upload_resumed' , callback ) ) ;
89
93
return promisify ( 'uploadFile' , FirestackStorage ) ( this . storageUrl , name , filepath , metadata )
90
94
. then ( ( res ) => {
91
- listeners . forEach ( this . _removeListener ) ;
95
+ listeners . forEach ( listener => listener . remove ( ) ) ;
92
96
return res ;
93
97
} ) ;
94
98
}
95
99
96
- getRealPathFromURI ( uri ) {
100
+ getRealPathFromURI ( uri : string ) : Promise < string > {
97
101
return promisify ( 'getRealPathFromURI ', FirestackStorage ) ( uri ) ;
98
102
}
99
103
100
- _addListener ( evt , cb ) {
101
- return FirestackStorageEvt . addListener ( evt , cb ) ;
104
+ _addListener ( evt : string , cb : ( evt : Object ) => Object ) : { remove : ( ) => void } {
105
+ let listener = FirestackStorageEvt . addListener ( evt , cb ) ;
106
+ return listener ;
102
107
}
103
108
104
- _removeListener ( evt ) {
105
- return FirestackStorageEvt . removeListener ( evt ) ;
106
- }
107
-
108
- setStorageUrl ( url ) {
109
+ setStorageUrl ( url : string ) : void {
109
110
// return promisify('setStorageUrl', FirestackStorage)(url);
110
111
this . storageUrl = `gs://${ url } ` ;
111
112
}
112
113
113
- _pathKey ( ...path ) {
114
+ _pathKey ( ...path : Array < string > ) : string {
114
115
return path . join ( '-' ) ;
115
116
}
116
117
@@ -126,7 +127,7 @@ export default class Storage extends Base {
126
127
'FILETYPE_DIRECTORY' : FirestackStorage . FILETYPE_DIRECTORY
127
128
} ;
128
129
129
- get namespace ( ) {
130
+ get namespace ( ) : string {
130
131
return 'firestack :storage '
131
132
}
132
133
}
0 commit comments