Skip to content

Commit 7b38889

Browse files
committed
cleanup storage / listeners
1 parent eadb563 commit 7b38889

File tree

1 file changed

+38
-43
lines changed

1 file changed

+38
-43
lines changed

lib/modules/storage.js

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
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';
36
const FirestackStorage = NativeModules.FirestackStorage;
47
const FirestackStorageEvt = new NativeEventEmitter(FirestackStorage);
58

6-
import promisify from '../utils/promisify'
7-
import { Base, ReferenceBase } from './base'
8-
99
class 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

5048
export 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

Comments
 (0)