UNPKG

react-native-firebase-compiled

Version:

A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto

168 lines (135 loc) 5.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.statics = exports.default = exports.NAMESPACE = exports.MODULE_NAME = void 0; var _reactNative = require("react-native"); var _reference = _interopRequireDefault(require("./reference")); var _events = require("../../utils/events"); var _log = require("../../utils/log"); var _utils = require("../../utils"); var _ModuleBase = _interopRequireDefault(require("../../utils/ModuleBase")); var _native = require("../../utils/native"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * * Storage representation wrapper */ const FirebaseStorage = _reactNative.NativeModules.RNFirebaseStorage; const NATIVE_EVENTS = ['storage_event', 'storage_error']; const MODULE_NAME = 'RNFirebaseStorage'; exports.MODULE_NAME = MODULE_NAME; const NAMESPACE = 'storage'; exports.NAMESPACE = NAMESPACE; class Storage extends _ModuleBase.default { /** * * @param app * @param options */ constructor(app) { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, hasMultiAppSupport: true, hasCustomUrlSupport: false, namespace: NAMESPACE }); _events.SharedEventEmitter.addListener((0, _events.getAppEventName)(this, 'storage_event'), this._handleStorageEvent.bind(this)); _events.SharedEventEmitter.addListener((0, _events.getAppEventName)(this, 'storage_error'), this._handleStorageEvent.bind(this)); } /** * Returns a reference for the given path in the default bucket. * @url https://firebase.google.com/docs/reference/js/firebase.storage.Storage#ref * @param path * @returns {StorageReference} */ ref(path) { return new _reference.default(this, path); } /** * Returns a reference for the given absolute URL. * @url https://firebase.google.com/docs/reference/js/firebase.storage.Storage#refFromURL * @param url * @returns {StorageReference} */ refFromURL(url) { // TODO don't think this is correct? return new _reference.default(this, `url::${url}`); } /** * setMaxOperationRetryTime * @url https://firebase.google.com/docs/reference/js/firebase.storage.Storage#setMaxOperationRetryTime * @param time The new maximum operation retry time in milliseconds. */ setMaxOperationRetryTime(time) { (0, _native.getNativeModule)(this).setMaxOperationRetryTime(time); } /** * setMaxUploadRetryTime * @url https://firebase.google.com/docs/reference/js/firebase.storage.Storage#setMaxUploadRetryTime * @param time The new maximum upload retry time in milliseconds. */ setMaxUploadRetryTime(time) { (0, _native.getNativeModule)(this).setMaxUploadRetryTime(time); } /** * setMaxDownloadRetryTime * @url N/A * @param time The new maximum download retry time in milliseconds. */ setMaxDownloadRetryTime(time) { (0, _native.getNativeModule)(this).setMaxDownloadRetryTime(time); } /** * INTERNALS */ _getSubEventName(path, eventName) { return (0, _events.getAppEventName)(this, `${path}-${eventName}`); } _handleStorageEvent(event) { const path = event.path, eventName = event.eventName; const body = event.body || {}; (0, _log.getLogger)(this).debug('_handleStorageEvent: ', path, eventName, body); _events.SharedEventEmitter.emit(this._getSubEventName(path, eventName), body); } _handleStorageError(err) { const path = err.path, eventName = err.eventName; const body = err.body || {}; (0, _log.getLogger)(this).debug('_handleStorageError ->', err); _events.SharedEventEmitter.emit(this._getSubEventName(path, eventName), body); } _addListener(path, eventName, cb) { _events.SharedEventEmitter.addListener(this._getSubEventName(path, eventName), cb); } _removeListener(path, eventName, origCB) { _events.SharedEventEmitter.removeListener(this._getSubEventName(path, eventName), origCB); } } exports.default = Storage; const statics = { TaskEvent: { STATE_CHANGED: 'state_changed' }, TaskState: { RUNNING: 'running', PAUSED: 'paused', SUCCESS: 'success', CANCELLED: 'cancelled', ERROR: 'error' }, Native: FirebaseStorage ? { MAIN_BUNDLE_PATH: (0, _utils.stripTrailingSlash)(FirebaseStorage.MAIN_BUNDLE_PATH), CACHES_DIRECTORY_PATH: (0, _utils.stripTrailingSlash)(FirebaseStorage.CACHES_DIRECTORY_PATH), DOCUMENT_DIRECTORY_PATH: (0, _utils.stripTrailingSlash)(FirebaseStorage.DOCUMENT_DIRECTORY_PATH), EXTERNAL_DIRECTORY_PATH: (0, _utils.stripTrailingSlash)(FirebaseStorage.EXTERNAL_DIRECTORY_PATH), EXTERNAL_STORAGE_DIRECTORY_PATH: (0, _utils.stripTrailingSlash)(FirebaseStorage.EXTERNAL_STORAGE_DIRECTORY_PATH), TEMP_DIRECTORY_PATH: (0, _utils.stripTrailingSlash)(FirebaseStorage.TEMP_DIRECTORY_PATH), LIBRARY_DIRECTORY_PATH: (0, _utils.stripTrailingSlash)(FirebaseStorage.LIBRARY_DIRECTORY_PATH), FILETYPE_REGULAR: (0, _utils.stripTrailingSlash)(FirebaseStorage.FILETYPE_REGULAR), FILETYPE_DIRECTORY: (0, _utils.stripTrailingSlash)(FirebaseStorage.FILETYPE_DIRECTORY) } : {} }; exports.statics = statics;