@angular/fire
Version:
The official library for Firebase and Angular
342 lines (331 loc) • 12.9 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs'), require('rxjs/operators'), require('@angular/core'), require('@angular/fire'), require('firebase/storage')) :
typeof define === 'function' && define.amd ? define('@angular/fire/storage', ['exports', 'rxjs', 'rxjs/operators', '@angular/core', '@angular/fire', 'firebase/storage'], factory) :
(global = global || self, factory((global.angular = global.angular || {}, global.angular.fire = global.angular.fire || {}, global.angular.fire.storage = {}), global.rxjs, global.rxjs.operators, global.ng.core, global.angular.fire));
}(this, (function (exports, rxjs, operators, i0, i1) { 'use strict';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} task
* @return {?}
*/
function fromTask(task) {
return new rxjs.Observable(( /**
* @param {?} subscriber
* @return {?}
*/function (/**
* @param {?} subscriber
* @return {?}
*/ subscriber) {
/** @type {?} */
var progress = ( /**
* @param {?} snap
* @return {?}
*/function (snap) { return subscriber.next(snap); });
/** @type {?} */
var error = ( /**
* @param {?} e
* @return {?}
*/function (/**
* @param {?} e
* @return {?}
*/ e) { return subscriber.error(e); });
/** @type {?} */
var complete = ( /**
* @return {?}
*/function () { return subscriber.complete(); });
task.on('state_changed', progress, error, complete);
return ( /**
* @return {?}
*/function () { return task.cancel(); });
}));
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function AngularFireUploadTask() { }
if (false) {
/** @type {?} */
AngularFireUploadTask.prototype.task;
/**
* @return {?}
*/
AngularFireUploadTask.prototype.snapshotChanges = function () { };
/**
* @return {?}
*/
AngularFireUploadTask.prototype.percentageChanges = function () { };
/**
* @return {?}
*/
AngularFireUploadTask.prototype.pause = function () { };
/**
* @return {?}
*/
AngularFireUploadTask.prototype.cancel = function () { };
/**
* @return {?}
*/
AngularFireUploadTask.prototype.resume = function () { };
/**
* @param {?=} onFulfilled
* @param {?=} onRejected
* @return {?}
*/
AngularFireUploadTask.prototype.then = function (onFulfilled, onRejected) { };
/**
* @param {?} onRejected
* @return {?}
*/
AngularFireUploadTask.prototype.catch = function (onRejected) { };
}
/**
* Create an AngularFireUploadTask from a regular UploadTask from the Storage SDK.
* This method creates an observable of the upload and returns on object that provides
* multiple methods for controlling and monitoring the file upload.
* @param {?} task
* @return {?}
*/
function createUploadTask(task) {
/** @type {?} */
var inner$ = fromTask(task);
return {
task: task,
then: task.then.bind(task),
catch: task.catch.bind(task),
pause: task.pause.bind(task),
cancel: task.cancel.bind(task),
resume: task.resume.bind(task),
snapshotChanges: ( /**
* @return {?}
*/function () { return inner$; }),
percentageChanges: ( /**
* @return {?}
*/function () { return inner$.pipe(operators.map(( /**
* @param {?} s
* @return {?}
*/function (/**
* @param {?} s
* @return {?}
*/ s) { return s.bytesTransferred / s.totalBytes * 100; }))); })
};
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function AngularFireStorageReference() { }
if (false) {
/**
* @return {?}
*/
AngularFireStorageReference.prototype.getDownloadURL = function () { };
/**
* @return {?}
*/
AngularFireStorageReference.prototype.getMetadata = function () { };
/**
* @return {?}
*/
AngularFireStorageReference.prototype.delete = function () { };
/**
* @param {?} path
* @return {?}
*/
AngularFireStorageReference.prototype.child = function (path) { };
/**
* @param {?} meta
* @return {?}
*/
AngularFireStorageReference.prototype.updateMetadata = function (meta) { };
/**
* @param {?} data
* @param {?=} metadata
* @return {?}
*/
AngularFireStorageReference.prototype.put = function (data, metadata) { };
/**
* @param {?} data
* @param {?=} format
* @param {?=} metadata
* @return {?}
*/
AngularFireStorageReference.prototype.putString = function (data, format, metadata) { };
/**
* @return {?}
*/
AngularFireStorageReference.prototype.listAll = function () { };
}
/**
* Create an AngularFire wrapped Storage Reference. This object
* creates observable methods from promise based methods.
* @param {?} ref
* @param {?} schedulers
* @param {?} keepUnstableUntilFirst
* @return {?}
*/
function createStorageRef(ref, schedulers, keepUnstableUntilFirst) {
return {
getDownloadURL: ( /**
* @return {?}
*/function () { return rxjs.of(undefined).pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @return {?}
*/function () { return ref.getDownloadURL(); })), keepUnstableUntilFirst); }),
getMetadata: ( /**
* @return {?}
*/function () { return rxjs.of(undefined).pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @return {?}
*/function () { return ref.getMetadata(); })), keepUnstableUntilFirst); }),
delete: ( /**
* @return {?}
*/function () { return rxjs.from(ref.delete()); }),
child: ( /**
* @param {?} path
* @return {?}
*/function (path) { return createStorageRef(ref.child(path), schedulers, keepUnstableUntilFirst); }),
updateMetadata: ( /**
* @param {?} meta
* @return {?}
*/function (meta) { return rxjs.from(ref.updateMetadata(meta)); }),
put: ( /**
* @param {?} data
* @param {?=} metadata
* @return {?}
*/function (data, metadata) {
/** @type {?} */
var task = ref.put(data, metadata);
return createUploadTask(task);
}),
putString: ( /**
* @param {?} data
* @param {?=} format
* @param {?=} metadata
* @return {?}
*/function (data, format, metadata) {
/** @type {?} */
var task = ref.putString(data, format, metadata);
return createUploadTask(task);
}),
listAll: ( /**
* @return {?}
*/function () { return rxjs.from(ref.listAll()); })
};
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var BUCKET = new i0.InjectionToken('angularfire2.storageBucket');
/**
* AngularFireStorage Service
*
* This service is the main entry point for this feature module. It provides
* an API for uploading and downloading binary files from Cloud Storage for
* Firebase.
*/
var AngularFireStorage = /** @class */ (function () {
/**
* @param {?} options
* @param {?} nameOrConfig
* @param {?} storageBucket
* @param {?} platformId
* @param {?} zone
*/
function AngularFireStorage(options, nameOrConfig, storageBucket,
// tslint:disable-next-line:ban-types
platformId, zone) {
this.schedulers = new i1.ɵAngularFireSchedulers(zone);
this.keepUnstableUntilFirst = i1.ɵkeepUnstableUntilFirstFactory(this.schedulers);
this.storage = zone.runOutsideAngular(( /**
* @return {?}
*/function () {
/** @type {?} */
var app = i1.ɵfirebaseAppFactory(options, zone, nameOrConfig);
return app.storage(storageBucket || undefined);
}));
}
/**
* @param {?} path
* @return {?}
*/
AngularFireStorage.prototype.ref = function (path) {
return createStorageRef(this.storage.ref(path), this.schedulers, this.keepUnstableUntilFirst);
};
/**
* @param {?} path
* @param {?} data
* @param {?=} metadata
* @return {?}
*/
AngularFireStorage.prototype.upload = function (path, data, metadata) {
/** @type {?} */
var storageRef = this.storage.ref(path);
/** @type {?} */
var ref = createStorageRef(storageRef, this.schedulers, this.keepUnstableUntilFirst);
return ref.put(data, metadata);
};
return AngularFireStorage;
}());
AngularFireStorage.decorators = [
{ type: i0.Injectable, args: [{
providedIn: 'any'
},] }
];
/** @nocollapse */
AngularFireStorage.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: i0.Inject, args: [i1.FIREBASE_OPTIONS,] }] },
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i1.FIREBASE_APP_NAME,] }] },
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [BUCKET,] }] },
{ type: Object, decorators: [{ type: i0.Inject, args: [i0.PLATFORM_ID,] }] },
{ type: i0.NgZone }
]; };
/** @nocollapse */ AngularFireStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function AngularFireStorage_Factory() { return new AngularFireStorage(i0.ɵɵinject(i1.FIREBASE_OPTIONS), i0.ɵɵinject(i1.FIREBASE_APP_NAME, 8), i0.ɵɵinject(BUCKET, 8), i0.ɵɵinject(i0.PLATFORM_ID), i0.ɵɵinject(i0.NgZone)); }, token: AngularFireStorage, providedIn: "any" });
if (false) {
/** @type {?} */
AngularFireStorage.prototype.storage;
/** @type {?} */
AngularFireStorage.prototype.keepUnstableUntilFirst;
/** @type {?} */
AngularFireStorage.prototype.schedulers;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var AngularFireStorageModule = /** @class */ (function () {
function AngularFireStorageModule() {
}
return AngularFireStorageModule;
}());
AngularFireStorageModule.decorators = [
{ type: i0.NgModule, args: [{
providers: [AngularFireStorage]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
exports.AngularFireStorage = AngularFireStorage;
exports.AngularFireStorageModule = AngularFireStorageModule;
exports.BUCKET = BUCKET;
exports.createStorageRef = createStorageRef;
exports.createUploadTask = createUploadTask;
exports.fromTask = fromTask;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=angular-fire-storage.umd.js.map