@firebase/util 1.4.3 → 1.5.0-canary.3198d58dc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1891,6 +1891,171 @@ function getModularInstance(service) {
1891
1891
  }
1892
1892
  }
1893
1893
 
1894
+ /**
1895
+ * @license
1896
+ * Copyright 2022 Google LLC
1897
+ *
1898
+ * Licensed under the Apache License, Version 2.0 (the "License");
1899
+ * you may not use this file except in compliance with the License.
1900
+ * You may obtain a copy of the License at
1901
+ *
1902
+ * http://www.apache.org/licenses/LICENSE-2.0
1903
+ *
1904
+ * Unless required by applicable law or agreed to in writing, software
1905
+ * distributed under the License is distributed on an "AS IS" BASIS,
1906
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1907
+ * See the License for the specific language governing permissions and
1908
+ * limitations under the License.
1909
+ */
1910
+ /**
1911
+ * @internal
1912
+ */
1913
+ function promisifyRequest(request, errorMessage) {
1914
+ return new Promise(function (resolve, reject) {
1915
+ request.onsuccess = function (event) {
1916
+ resolve(event.target.result);
1917
+ };
1918
+ request.onerror = function (event) {
1919
+ var _a;
1920
+ reject(errorMessage + ": " + ((_a = event.target.error) === null || _a === void 0 ? void 0 : _a.message));
1921
+ };
1922
+ });
1923
+ }
1924
+ /**
1925
+ * @internal
1926
+ */
1927
+ var DBWrapper = /** @class */ (function () {
1928
+ function DBWrapper(_db) {
1929
+ this._db = _db;
1930
+ this.objectStoreNames = this._db.objectStoreNames;
1931
+ }
1932
+ DBWrapper.prototype.transaction = function (storeNames, mode) {
1933
+ return new TransactionWrapper(this._db.transaction.call(this._db, storeNames, mode));
1934
+ };
1935
+ DBWrapper.prototype.createObjectStore = function (storeName, options) {
1936
+ return new ObjectStoreWrapper(this._db.createObjectStore(storeName, options));
1937
+ };
1938
+ DBWrapper.prototype.close = function () {
1939
+ this._db.close();
1940
+ };
1941
+ return DBWrapper;
1942
+ }());
1943
+ /**
1944
+ * @internal
1945
+ */
1946
+ var TransactionWrapper = /** @class */ (function () {
1947
+ function TransactionWrapper(_transaction) {
1948
+ var _this = this;
1949
+ this._transaction = _transaction;
1950
+ this.complete = new Promise(function (resolve, reject) {
1951
+ _this._transaction.oncomplete = function () {
1952
+ resolve();
1953
+ };
1954
+ _this._transaction.onerror = function () {
1955
+ reject(_this._transaction.error);
1956
+ };
1957
+ _this._transaction.onabort = function () {
1958
+ reject(_this._transaction.error);
1959
+ };
1960
+ });
1961
+ }
1962
+ TransactionWrapper.prototype.objectStore = function (storeName) {
1963
+ return new ObjectStoreWrapper(this._transaction.objectStore(storeName));
1964
+ };
1965
+ return TransactionWrapper;
1966
+ }());
1967
+ /**
1968
+ * @internal
1969
+ */
1970
+ var ObjectStoreWrapper = /** @class */ (function () {
1971
+ function ObjectStoreWrapper(_store) {
1972
+ this._store = _store;
1973
+ }
1974
+ ObjectStoreWrapper.prototype.index = function (name) {
1975
+ return new IndexWrapper(this._store.index(name));
1976
+ };
1977
+ ObjectStoreWrapper.prototype.createIndex = function (name, keypath, options) {
1978
+ return new IndexWrapper(this._store.createIndex(name, keypath, options));
1979
+ };
1980
+ ObjectStoreWrapper.prototype.get = function (key) {
1981
+ var request = this._store.get(key);
1982
+ return promisifyRequest(request, 'Error reading from IndexedDB');
1983
+ };
1984
+ ObjectStoreWrapper.prototype.put = function (value, key) {
1985
+ var request = this._store.put(value, key);
1986
+ return promisifyRequest(request, 'Error writing to IndexedDB');
1987
+ };
1988
+ ObjectStoreWrapper.prototype.delete = function (key) {
1989
+ var request = this._store.delete(key);
1990
+ return promisifyRequest(request, 'Error deleting from IndexedDB');
1991
+ };
1992
+ ObjectStoreWrapper.prototype.clear = function () {
1993
+ var request = this._store.clear();
1994
+ return promisifyRequest(request, 'Error clearing IndexedDB object store');
1995
+ };
1996
+ return ObjectStoreWrapper;
1997
+ }());
1998
+ /**
1999
+ * @internal
2000
+ */
2001
+ var IndexWrapper = /** @class */ (function () {
2002
+ function IndexWrapper(_index) {
2003
+ this._index = _index;
2004
+ }
2005
+ IndexWrapper.prototype.get = function (key) {
2006
+ var request = this._index.get(key);
2007
+ return promisifyRequest(request, 'Error reading from IndexedDB');
2008
+ };
2009
+ return IndexWrapper;
2010
+ }());
2011
+ /**
2012
+ * @internal
2013
+ */
2014
+ function openDB(dbName, dbVersion, upgradeCallback) {
2015
+ return new Promise(function (resolve, reject) {
2016
+ try {
2017
+ var request_1 = indexedDB.open(dbName, dbVersion);
2018
+ request_1.onsuccess = function (event) {
2019
+ resolve(new DBWrapper(event.target.result));
2020
+ };
2021
+ request_1.onerror = function (event) {
2022
+ var _a;
2023
+ reject("Error opening indexedDB: " + ((_a = event.target.error) === null || _a === void 0 ? void 0 : _a.message));
2024
+ };
2025
+ request_1.onupgradeneeded = function (event) {
2026
+ upgradeCallback(new DBWrapper(request_1.result), event.oldVersion, event.newVersion, new TransactionWrapper(request_1.transaction));
2027
+ };
2028
+ }
2029
+ catch (e) {
2030
+ reject("Error opening indexedDB: " + e.message);
2031
+ }
2032
+ });
2033
+ }
2034
+ /**
2035
+ * @internal
2036
+ */
2037
+ function deleteDB(dbName) {
2038
+ return tslib.__awaiter(this, void 0, void 0, function () {
2039
+ return tslib.__generator(this, function (_a) {
2040
+ return [2 /*return*/, new Promise(function (resolve, reject) {
2041
+ try {
2042
+ var request = indexedDB.deleteDatabase(dbName);
2043
+ request.onsuccess = function () {
2044
+ resolve();
2045
+ };
2046
+ request.onerror = function (event) {
2047
+ var _a;
2048
+ reject("Error deleting indexedDB database \"" + dbName + "\": " + ((_a = event.target.error) === null || _a === void 0 ? void 0 : _a.message));
2049
+ };
2050
+ }
2051
+ catch (e) {
2052
+ reject("Error deleting indexedDB database \"" + dbName + "\": " + e.message);
2053
+ }
2054
+ })];
2055
+ });
2056
+ });
2057
+ }
2058
+
1894
2059
  /**
1895
2060
  * @license
1896
2061
  * Copyright 2017 Google LLC
@@ -1911,6 +2076,7 @@ function getModularInstance(service) {
1911
2076
  CONSTANTS.NODE_CLIENT = true;
1912
2077
 
1913
2078
  exports.CONSTANTS = CONSTANTS;
2079
+ exports.DBWrapper = DBWrapper;
1914
2080
  exports.Deferred = Deferred;
1915
2081
  exports.ErrorFactory = ErrorFactory;
1916
2082
  exports.FirebaseError = FirebaseError;
@@ -1933,6 +2099,7 @@ exports.decode = decode;
1933
2099
  exports.deepCopy = deepCopy;
1934
2100
  exports.deepEqual = deepEqual;
1935
2101
  exports.deepExtend = deepExtend;
2102
+ exports.deleteDB = deleteDB;
1936
2103
  exports.errorPrefix = errorPrefix;
1937
2104
  exports.extractQuerystring = extractQuerystring;
1938
2105
  exports.getGlobal = getGlobal;
@@ -1956,6 +2123,7 @@ exports.isValidTimestamp = isValidTimestamp;
1956
2123
  exports.issuedAtTime = issuedAtTime;
1957
2124
  exports.jsonEval = jsonEval;
1958
2125
  exports.map = map;
2126
+ exports.openDB = openDB;
1959
2127
  exports.ordinal = ordinal;
1960
2128
  exports.querystring = querystring;
1961
2129
  exports.querystringDecode = querystringDecode;