123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398 |
- import firebase from '@firebase/app-compat';
- import { _getChild, uploadBytesResumable, _dataFromString, _UploadTask, _FbsBlob, StringFormat, listAll, list, getMetadata, updateMetadata, getDownloadURL, deleteObject, _invalidRootOperation, _invalidArgument, ref, _Location, connectStorageEmulator, _TaskState, _TaskEvent } from '@firebase/storage';
- import { Component } from '@firebase/component';
-
-
- class UploadTaskSnapshotCompat {
- constructor(_delegate, task, ref) {
- this._delegate = _delegate;
- this.task = task;
- this.ref = ref;
- }
- get bytesTransferred() {
- return this._delegate.bytesTransferred;
- }
- get metadata() {
- return this._delegate.metadata;
- }
- get state() {
- return this._delegate.state;
- }
- get totalBytes() {
- return this._delegate.totalBytes;
- }
- }
-
-
- class UploadTaskCompat {
- constructor(_delegate, _ref) {
- this._delegate = _delegate;
- this._ref = _ref;
- this.cancel = this._delegate.cancel.bind(this._delegate);
- this.catch = this._delegate.catch.bind(this._delegate);
- this.pause = this._delegate.pause.bind(this._delegate);
- this.resume = this._delegate.resume.bind(this._delegate);
- }
- get snapshot() {
- return new UploadTaskSnapshotCompat(this._delegate.snapshot, this, this._ref);
- }
- then(onFulfilled, onRejected) {
- return this._delegate.then(snapshot => {
- if (onFulfilled) {
- return onFulfilled(new UploadTaskSnapshotCompat(snapshot, this, this._ref));
- }
- }, onRejected);
- }
- on(type, nextOrObserver, error, completed) {
- let wrappedNextOrObserver = undefined;
- if (!!nextOrObserver) {
- if (typeof nextOrObserver === 'function') {
- wrappedNextOrObserver = (taskSnapshot) => nextOrObserver(new UploadTaskSnapshotCompat(taskSnapshot, this, this._ref));
- }
- else {
- wrappedNextOrObserver = {
- next: !!nextOrObserver.next
- ? (taskSnapshot) => nextOrObserver.next(new UploadTaskSnapshotCompat(taskSnapshot, this, this._ref))
- : undefined,
- complete: nextOrObserver.complete || undefined,
- error: nextOrObserver.error || undefined
- };
- }
- }
- return this._delegate.on(type, wrappedNextOrObserver, error || undefined, completed || undefined);
- }
- }
-
- class ListResultCompat {
- constructor(_delegate, _service) {
- this._delegate = _delegate;
- this._service = _service;
- }
- get prefixes() {
- return this._delegate.prefixes.map(ref => new ReferenceCompat(ref, this._service));
- }
- get items() {
- return this._delegate.items.map(ref => new ReferenceCompat(ref, this._service));
- }
- get nextPageToken() {
- return this._delegate.nextPageToken || null;
- }
- }
-
-
- class ReferenceCompat {
- constructor(_delegate, storage) {
- this._delegate = _delegate;
- this.storage = storage;
- }
- get name() {
- return this._delegate.name;
- }
- get bucket() {
- return this._delegate.bucket;
- }
- get fullPath() {
- return this._delegate.fullPath;
- }
- toString() {
- return this._delegate.toString();
- }
-
-
- child(childPath) {
- const reference = _getChild(this._delegate, childPath);
- return new ReferenceCompat(reference, this.storage);
- }
- get root() {
- return new ReferenceCompat(this._delegate.root, this.storage);
- }
-
-
- get parent() {
- const reference = this._delegate.parent;
- if (reference == null) {
- return null;
- }
- return new ReferenceCompat(reference, this.storage);
- }
-
-
- put(data, metadata) {
- this._throwIfRoot('put');
- return new UploadTaskCompat(uploadBytesResumable(this._delegate, data, metadata), this);
- }
-
-
- putString(value, format = StringFormat.RAW, metadata) {
- this._throwIfRoot('putString');
- const data = _dataFromString(format, value);
- const metadataClone = Object.assign({}, metadata);
- if (metadataClone['contentType'] == null && data.contentType != null) {
- metadataClone['contentType'] = data.contentType;
- }
- return new UploadTaskCompat(new _UploadTask(this._delegate, new _FbsBlob(data.data, true), metadataClone), this);
- }
-
-
- listAll() {
- return listAll(this._delegate).then(r => new ListResultCompat(r, this.storage));
- }
-
-
- list(options) {
- return list(this._delegate, options || undefined).then(r => new ListResultCompat(r, this.storage));
- }
-
-
- getMetadata() {
- return getMetadata(this._delegate);
- }
-
-
- updateMetadata(metadata) {
- return updateMetadata(this._delegate, metadata);
- }
-
-
- getDownloadURL() {
- return getDownloadURL(this._delegate);
- }
-
-
- delete() {
- this._throwIfRoot('delete');
- return deleteObject(this._delegate);
- }
- _throwIfRoot(name) {
- if (this._delegate._location.path === '') {
- throw _invalidRootOperation(name);
- }
- }
- }
-
-
-
- class StorageServiceCompat {
- constructor(app, _delegate) {
- this.app = app;
- this._delegate = _delegate;
- }
- get maxOperationRetryTime() {
- return this._delegate.maxOperationRetryTime;
- }
- get maxUploadRetryTime() {
- return this._delegate.maxUploadRetryTime;
- }
-
-
- ref(path) {
- if (isUrl(path)) {
- throw _invalidArgument('ref() expected a child path but got a URL, use refFromURL instead.');
- }
- return new ReferenceCompat(ref(this._delegate, path), this);
- }
-
-
- refFromURL(url) {
- if (!isUrl(url)) {
- throw _invalidArgument('refFromURL() expected a full URL but got a child path, use ref() instead.');
- }
- try {
- _Location.makeFromUrl(url, this._delegate.host);
- }
- catch (e) {
- throw _invalidArgument('refFromUrl() expected a valid full URL but got an invalid one.');
- }
- return new ReferenceCompat(ref(this._delegate, url), this);
- }
- setMaxUploadRetryTime(time) {
- this._delegate.maxUploadRetryTime = time;
- }
- setMaxOperationRetryTime(time) {
- this._delegate.maxOperationRetryTime = time;
- }
- useEmulator(host, port, options = {}) {
- connectStorageEmulator(this._delegate, host, port, options);
- }
- }
- function isUrl(path) {
- return /^[A-Za-z]+:\/\//.test(path);
- }
-
- const name = "@firebase/storage-compat";
- const version = "0.2.1";
-
-
-
- const STORAGE_TYPE = 'storage-compat';
- function factory(container, { instanceIdentifier: url }) {
-
- const app = container.getProvider('app-compat').getImmediate();
- const storageExp = container
- .getProvider('storage')
- .getImmediate({ identifier: url });
- const storageServiceCompat = new StorageServiceCompat(app, storageExp);
- return storageServiceCompat;
- }
- function registerStorage(instance) {
- const namespaceExports = {
-
- TaskState: _TaskState,
- TaskEvent: _TaskEvent,
- StringFormat,
- Storage: StorageServiceCompat,
- Reference: ReferenceCompat
- };
- instance.INTERNAL.registerComponent(new Component(STORAGE_TYPE, factory, "PUBLIC" )
- .setServiceProps(namespaceExports)
- .setMultipleInstances(true));
- instance.registerVersion(name, version);
- }
- registerStorage(firebase);
-
- export { registerStorage };
|