1+ import { NativeModules , NativeEventEmitter } from 'react-native' ;
2+
3+ import { promisify , noop } from '../utils' ;
4+ import { Base , ReferenceBase } from './base' ;
15
2- import { NativeModules , NativeEventEmitter } from 'react-native' ;
36const FirestackStorage = NativeModules . FirestackStorage ;
47const FirestackStorageEvt = new NativeEventEmitter ( FirestackStorage ) ;
58
6- import promisify from '../utils/promisify'
7- import { Base , ReferenceBase } from './base'
8-
99class StorageRef extends ReferenceBase {
1010 constructor ( storage , path ) {
1111 super ( storage . firestack , path ) ;
@@ -21,34 +21,32 @@ class StorageRef extends ReferenceBase {
2121 /**
2222 * Downloads a reference to the device
2323 * @param {String } downloadPath Where to store the file
24+ * @param listener
2425 * @return {Promise }
2526 */
26- download ( downloadPath , cb ) {
27- let callback = cb ;
28- if ( ! callback || typeof callback !== 'function' ) {
29- callback = ( evt ) => { } ;
30- }
31-
32- const listeners = [ ] ;
33- listeners . push ( this . storage . _addListener ( 'download_progress' , callback ) ) ;
34- listeners . push ( this . storage . _addListener ( 'download_paused' , callback ) ) ;
35- listeners . push ( this . storage . _addListener ( 'download_resumed' , callback ) ) ;
36-
27+ download ( downloadPath : string , listener : Function = noop ) {
3728 const path = this . pathToString ( ) ;
29+ const listeners = [
30+ this . storage . _addListener ( 'download_progress' , listener ) ,
31+ this . storage . _addListener ( 'download_paused' , listener ) ,
32+ this . storage . _addListener ( 'download_resumed' , listener ) ,
33+ ] ;
34+
3835 return promisify ( 'downloadFile' , FirestackStorage ) ( this . storage . storageUrl , path , downloadPath )
3936 . then ( ( res ) => {
4037 console . log ( 'res --->' , res ) ;
4138 listeners . forEach ( this . storage . _removeListener ) ;
4239 return res ;
4340 } )
44- . catch ( err => {
45- console . log ( 'Got an error ->' , err ) ;
46- } )
41+ . catch ( ( downloadError ) => {
42+ console . log ( 'Got an error ->' , downloadError ) ;
43+ return Promise . reject ( downloadError ) ;
44+ } ) ;
4745 }
4846}
4947
5048export default class Storage extends Base {
51- constructor ( firestack , options = { } ) {
49+ constructor ( firestack , options = { } ) {
5250 super ( firestack , options ) ;
5351
5452 if ( this . options . storageBucket ) {
@@ -70,23 +68,20 @@ export default class Storage extends Base {
7068 /**
7169 * Upload a filepath
7270 * @param {string } name The destination for the file
73- * @param {string } filepath The local path of the file
71+ * @param {string } filePath The local path of the file
7472 * @param {object } metadata An object containing metadata
73+ * @param listener
7574 * @return {Promise }
7675 */
77- uploadFile ( name , filepath , metadata = { } , cb ) {
78- let callback = cb ;
79- if ( ! callback || typeof callback !== 'function' ) {
80- callback = ( evt ) => { }
81- }
82-
83- filepath = filepath . replace ( "file://" , "" ) ;
84-
85- const listeners = [ ] ;
86- listeners . push ( this . _addListener ( 'upload_progress' , callback ) ) ;
87- listeners . push ( this . _addListener ( 'upload_paused' , callback ) ) ;
88- listeners . push ( this . _addListener ( 'upload_resumed' , callback ) ) ;
89- return promisify ( 'uploadFile' , FirestackStorage ) ( this . storageUrl , name , filepath , metadata )
76+ uploadFile ( name : string , filePath : string , metadata : Object = { } , listener : Function = noop ) {
77+ const _filePath = filePath . replace ( 'file://' , '' ) ;
78+ const listeners = [
79+ this . _addListener ( 'upload_paused' , listener ) ,
80+ this . _addListener ( 'upload_resumed' , listener ) ,
81+ this . _addListener ( 'upload_progress' , listener ) ,
82+ ] ;
83+
84+ return promisify ( 'uploadFile' , FirestackStorage ) ( this . storageUrl , name , _filePath , metadata )
9085 . then ( ( res ) => {
9186 listeners . forEach ( this . _removeListener ) ;
9287 return res ;
@@ -115,19 +110,19 @@ export default class Storage extends Base {
115110 }
116111
117112 static constants = {
118- ' MAIN_BUNDLE_PATH' : FirestackStorage . MAIN_BUNDLE_PATH ,
119- ' CACHES_DIRECTORY_PATH' : FirestackStorage . CACHES_DIRECTORY_PATH ,
120- ' DOCUMENT_DIRECTORY_PATH' : FirestackStorage . DOCUMENT_DIRECTORY_PATH ,
121- ' EXTERNAL_DIRECTORY_PATH' : FirestackStorage . EXTERNAL_DIRECTORY_PATH ,
122- ' EXTERNAL_STORAGE_DIRECTORY_PATH' : FirestackStorage . EXTERNAL_STORAGE_DIRECTORY_PATH ,
123- ' TEMP_DIRECTORY_PATH' : FirestackStorage . TEMP_DIRECTORY_PATH ,
124- ' LIBRARY_DIRECTORY_PATH' : FirestackStorage . LIBRARY_DIRECTORY_PATH ,
125- ' FILETYPE_REGULAR' : FirestackStorage . FILETYPE_REGULAR ,
126- ' FILETYPE_DIRECTORY' : FirestackStorage . FILETYPE_DIRECTORY
113+ MAIN_BUNDLE_PATH : FirestackStorage . MAIN_BUNDLE_PATH ,
114+ CACHES_DIRECTORY_PATH : FirestackStorage . CACHES_DIRECTORY_PATH ,
115+ DOCUMENT_DIRECTORY_PATH : FirestackStorage . DOCUMENT_DIRECTORY_PATH ,
116+ EXTERNAL_DIRECTORY_PATH : FirestackStorage . EXTERNAL_DIRECTORY_PATH ,
117+ EXTERNAL_STORAGE_DIRECTORY_PATH : FirestackStorage . EXTERNAL_STORAGE_DIRECTORY_PATH ,
118+ TEMP_DIRECTORY_PATH : FirestackStorage . TEMP_DIRECTORY_PATH ,
119+ LIBRARY_DIRECTORY_PATH : FirestackStorage . LIBRARY_DIRECTORY_PATH ,
120+ FILETYPE_REGULAR : FirestackStorage . FILETYPE_REGULAR ,
121+ FILETYPE_DIRECTORY : FirestackStorage . FILETYPE_DIRECTORY ,
127122 } ;
128123
129124 get namespace ( ) {
130- return 'firestack:storage'
125+ return 'firestack:storage' ;
131126 }
132127}
133128
0 commit comments