@angular/fire
Version:
The official library for Firebase and Angular
85 lines • 8.26 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';
import { createStorageRef } from './ref';
import { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵAngularFireSchedulers, ɵfirebaseAppFactory, ɵkeepUnstableUntilFirstFactory } from '@angular/fire';
import 'firebase/storage';
import * as i0 from "@angular/core";
import * as i1 from "@angular/fire";
/** @type {?} */
export const BUCKET = new 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.
*/
export class AngularFireStorage {
/**
* @param {?} options
* @param {?} nameOrConfig
* @param {?} storageBucket
* @param {?} platformId
* @param {?} zone
*/
constructor(options, nameOrConfig, storageBucket,
// tslint:disable-next-line:ban-types
platformId, zone) {
this.schedulers = new ɵAngularFireSchedulers(zone);
this.keepUnstableUntilFirst = ɵkeepUnstableUntilFirstFactory(this.schedulers);
this.storage = zone.runOutsideAngular((/**
* @return {?}
*/
() => {
/** @type {?} */
const app = ɵfirebaseAppFactory(options, zone, nameOrConfig);
return app.storage(storageBucket || undefined);
}));
}
/**
* @param {?} path
* @return {?}
*/
ref(path) {
return createStorageRef(this.storage.ref(path), this.schedulers, this.keepUnstableUntilFirst);
}
/**
* @param {?} path
* @param {?} data
* @param {?=} metadata
* @return {?}
*/
upload(path, data, metadata) {
/** @type {?} */
const storageRef = this.storage.ref(path);
/** @type {?} */
const ref = createStorageRef(storageRef, this.schedulers, this.keepUnstableUntilFirst);
return ref.put(data, metadata);
}
}
AngularFireStorage.decorators = [
{ type: Injectable, args: [{
providedIn: 'any'
},] }
];
/** @nocollapse */
AngularFireStorage.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [FIREBASE_OPTIONS,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [FIREBASE_APP_NAME,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [BUCKET,] }] },
{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
{ type: 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;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdG9yYWdlL3N0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFekMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFHaEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQiw4QkFBOEIsRUFDL0IsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxrQkFBa0IsQ0FBQzs7OztBQUUxQixNQUFNLE9BQU8sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFTLDRCQUE0QixDQUFDOzs7Ozs7OztBQVk5RSxNQUFNLE9BQU8sa0JBQWtCOzs7Ozs7OztJQU03QixZQUM0QixPQUF3QixFQUNYLFlBQTJELEVBQ3RFLGFBQTRCO0lBQ3hELHFDQUFxQztJQUNoQixVQUFrQixFQUN2QyxJQUFZO1FBRVosSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsR0FBRyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCOzs7UUFBQyxHQUFHLEVBQUU7O2tCQUNuQyxHQUFHLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUM7WUFDNUQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNqRCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDaEcsQ0FBQzs7Ozs7OztJQUVELE1BQU0sQ0FBQyxJQUFZLEVBQUUsSUFBUyxFQUFFLFFBQXlCOztjQUNqRCxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDOztjQUNuQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQ3RGLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzs7O1lBbENGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsS0FBSzthQUNsQjs7Ozs0Q0FRSSxNQUFNLFNBQUMsZ0JBQWdCOzRDQUN2QixRQUFRLFlBQUksTUFBTSxTQUFDLGlCQUFpQjs0Q0FDcEMsUUFBUSxZQUFJLE1BQU0sU0FBQyxNQUFNO1lBRU8sTUFBTSx1QkFBdEMsTUFBTSxTQUFDLFdBQVc7WUF2Q3NCLE1BQU07Ozs7O0lBNkJqRCxxQ0FBeUM7O0lBRXpDLG9EQUFpRjs7SUFDakYsd0NBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTmdab25lLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVN0b3JhZ2VSZWYgfSBmcm9tICcuL3JlZic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBGSVJFQkFTRV9BUFBfTkFNRSxcbiAgRklSRUJBU0VfT1BUSU9OUyxcbiAgRmlyZWJhc2VBcHBDb25maWcsXG4gIEZpcmViYXNlT3B0aW9ucyxcbiAgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsXG4gIMm1ZmlyZWJhc2VBcHBGYWN0b3J5LFxuICDJtWtlZXBVbnN0YWJsZVVudGlsRmlyc3RGYWN0b3J5XG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgVXBsb2FkTWV0YWRhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgc3RvcmFnZSB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgJ2ZpcmViYXNlL3N0b3JhZ2UnO1xuXG5leHBvcnQgY29uc3QgQlVDS0VUID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ2FuZ3VsYXJmaXJlMi5zdG9yYWdlQnVja2V0Jyk7XG5cbi8qKlxuICogQW5ndWxhckZpcmVTdG9yYWdlIFNlcnZpY2VcbiAqXG4gKiBUaGlzIHNlcnZpY2UgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHRoaXMgZmVhdHVyZSBtb2R1bGUuIEl0IHByb3ZpZGVzXG4gKiBhbiBBUEkgZm9yIHVwbG9hZGluZyBhbmQgZG93bmxvYWRpbmcgYmluYXJ5IGZpbGVzIGZyb20gQ2xvdWQgU3RvcmFnZSBmb3JcbiAqIEZpcmViYXNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlU3RvcmFnZSB7XG4gIHB1YmxpYyByZWFkb25seSBzdG9yYWdlOiBzdG9yYWdlLlN0b3JhZ2U7XG5cbiAgcHVibGljIHJlYWRvbmx5IGtlZXBVbnN0YWJsZVVudGlsRmlyc3Q6IDxUPihvYnM6IE9ic2VydmFibGU8VD4pID0+IE9ic2VydmFibGU8VD47XG4gIHB1YmxpYyByZWFkb25seSBzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZJUkVCQVNFX09QVElPTlMpIG9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZJUkVCQVNFX0FQUF9OQU1FKSBuYW1lT3JDb25maWc6IHN0cmluZyB8IEZpcmViYXNlQXBwQ29uZmlnIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJVQ0tFVCkgc3RvcmFnZUJ1Y2tldDogc3RyaW5nIHwgbnVsbCxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnNjaGVkdWxlcnMgPSBuZXcgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMoem9uZSk7XG4gICAgdGhpcy5rZWVwVW5zdGFibGVVbnRpbEZpcnN0ID0gybVrZWVwVW5zdGFibGVVbnRpbEZpcnN0RmFjdG9yeSh0aGlzLnNjaGVkdWxlcnMpO1xuXG4gICAgdGhpcy5zdG9yYWdlID0gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBhcHAgPSDJtWZpcmViYXNlQXBwRmFjdG9yeShvcHRpb25zLCB6b25lLCBuYW1lT3JDb25maWcpO1xuICAgICAgcmV0dXJuIGFwcC5zdG9yYWdlKHN0b3JhZ2VCdWNrZXQgfHwgdW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY3JlYXRlU3RvcmFnZVJlZih0aGlzLnN0b3JhZ2UucmVmKHBhdGgpLCB0aGlzLnNjaGVkdWxlcnMsIHRoaXMua2VlcFVuc3RhYmxlVW50aWxGaXJzdCk7XG4gIH1cblxuICB1cGxvYWQocGF0aDogc3RyaW5nLCBkYXRhOiBhbnksIG1ldGFkYXRhPzogVXBsb2FkTWV0YWRhdGEpIHtcbiAgICBjb25zdCBzdG9yYWdlUmVmID0gdGhpcy5zdG9yYWdlLnJlZihwYXRoKTtcbiAgICBjb25zdCByZWYgPSBjcmVhdGVTdG9yYWdlUmVmKHN0b3JhZ2VSZWYsIHRoaXMuc2NoZWR1bGVycywgdGhpcy5rZWVwVW5zdGFibGVVbnRpbEZpcnN0KTtcbiAgICByZXR1cm4gcmVmLnB1dChkYXRhLCBtZXRhZGF0YSk7XG4gIH1cblxufVxuIl19