kui-utils 0.0.34 → 0.0.36

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.
package/cjs/index.js CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var _ = require('lodash');
7
7
  var reactRouterDom = require('react-router-dom');
8
+ var to = require('await-to-js');
8
9
  var mobx = require('mobx');
9
10
  var luxon = require('luxon');
10
11
 
@@ -30,6 +31,7 @@ function _interopNamespace(e) {
30
31
 
31
32
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
33
  var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
34
+ var to__default = /*#__PURE__*/_interopDefaultLegacy(to);
33
35
 
34
36
  function setRef(ref, value) {
35
37
  if (typeof ref === "function") {
@@ -2049,6 +2051,30 @@ var updateQueryParams = function (newLink, withBase) {
2049
2051
  window.history.pushState({ route: route }, "", route);
2050
2052
  };
2051
2053
 
2054
+ var longPolling = function (callback, errorHandler, stopCondition, delay) { return __awaiter(void 0, void 0, void 0, function () {
2055
+ var _a, err, res;
2056
+ return __generator(this, function (_b) {
2057
+ switch (_b.label) {
2058
+ case 0: return [4 /*yield*/, to__default["default"](callback())];
2059
+ case 1:
2060
+ _a = _b.sent(), err = _a[0], res = _a[1];
2061
+ if (err) {
2062
+ errorHandler(err);
2063
+ return [2 /*return*/, null];
2064
+ }
2065
+ if (stopCondition(res)) {
2066
+ return [2 /*return*/, res];
2067
+ }
2068
+ return [4 /*yield*/, new Promise(function (resolve) {
2069
+ setTimeout(resolve, delay);
2070
+ })];
2071
+ case 2:
2072
+ _b.sent();
2073
+ return [2 /*return*/, longPolling(callback, errorHandler, stopCondition, delay)];
2074
+ }
2075
+ });
2076
+ }); };
2077
+
2052
2078
  function cleanObjectForIndexDB(value) {
2053
2079
  if (typeof value === "undefined")
2054
2080
  return null;
@@ -2079,7 +2105,7 @@ function cleanObjectForIndexDB(value) {
2079
2105
  return value;
2080
2106
  }
2081
2107
  var transactionQueue = Promise.resolve();
2082
- function addToIndexDBWithQueue(db, storeName, data, loader) {
2108
+ function addToIndexDBWithQueue(db, storeName, data, loader, errorHandler) {
2083
2109
  transactionQueue = transactionQueue
2084
2110
  .then(function () {
2085
2111
  return new Promise(function (resolve, reject) {
@@ -2088,14 +2114,17 @@ function addToIndexDBWithQueue(db, storeName, data, loader) {
2088
2114
  var store = transaction.objectStore(storeName);
2089
2115
  // eslint-disable-next-line no-param-reassign
2090
2116
  data.id = 1;
2091
- var formattedData = cleanObjectForIndexDB(data);
2092
- var request_1 = store.put(formattedData);
2117
+ var formattedData_1 = cleanObjectForIndexDB(data);
2118
+ var request_1 = store.put(formattedData_1);
2093
2119
  request_1.onsuccess = function () {
2094
2120
  resolve(request_1);
2095
2121
  };
2096
- request_1.onerror = function () {
2097
- loader.setError("Не удалось сохранить данные в локальное хранилище");
2098
- reject();
2122
+ request_1.onerror = function (event) {
2123
+ var _a;
2124
+ var error = ((_a = event.target) === null || _a === void 0 ? void 0 : _a.error) || new Error("Unknown IndexedDB error");
2125
+ loader.setError("Не удалось сохранить данные в локальное хранилище", error);
2126
+ errorHandler(error, formattedData_1);
2127
+ reject(error);
2099
2128
  };
2100
2129
  }
2101
2130
  });
@@ -2104,7 +2133,7 @@ function addToIndexDBWithQueue(db, storeName, data, loader) {
2104
2133
  console.error("Ошибка в очереди транзакций:", error);
2105
2134
  });
2106
2135
  }
2107
- var readFromIndexDB = function (db, name, loader) { return __awaiter(void 0, void 0, void 0, function () {
2136
+ var readFromIndexDB = function (db, name, loader, errorHandler) { return __awaiter(void 0, void 0, void 0, function () {
2108
2137
  var transaction, request_2;
2109
2138
  return __generator(this, function (_a) {
2110
2139
  if (db.objectStoreNames.contains(name)) {
@@ -2112,8 +2141,10 @@ var readFromIndexDB = function (db, name, loader) { return __awaiter(void 0, voi
2112
2141
  request_2 = transaction.getAll();
2113
2142
  return [2 /*return*/, new Promise(function (resolve, reject) {
2114
2143
  request_2.onerror = function () {
2144
+ var error = request_2.error;
2145
+ loader.setError("Не удалось прочитать данные с локального хранилища", error);
2146
+ errorHandler(error, request_2);
2115
2147
  reject();
2116
- loader.setError("Не удалось сохранить данные в локальное хранилище");
2117
2148
  };
2118
2149
  request_2.onsuccess = function () {
2119
2150
  var _a;
@@ -2124,9 +2155,10 @@ var readFromIndexDB = function (db, name, loader) { return __awaiter(void 0, voi
2124
2155
  return [2 /*return*/, null];
2125
2156
  });
2126
2157
  }); };
2127
- var initIndexDB = function (dbName, onupgradeneeded, loader, setIndexDB) {
2158
+ var initIndexDB = function (dbName, onupgradeneeded, loader, setIndexDB, errorHandler) {
2128
2159
  var dbRequest = indexedDB.open(dbName, 1);
2129
2160
  dbRequest.onerror = function () {
2161
+ errorHandler(dbRequest.error, "Ошибка при открытии хранилища на устройстве");
2130
2162
  loader.setError("Ошибка при открытии хранилища на устройстве. Данные не будут сохраняться локально");
2131
2163
  };
2132
2164
  dbRequest.onsuccess = function () {
@@ -2140,16 +2172,24 @@ var addIndexDBStore = function (db, name) {
2140
2172
  db.createObjectStore(name, { keyPath: "id" });
2141
2173
  }
2142
2174
  };
2143
- var clearIndexStore = function (db, name) {
2175
+ var clearIndexStore = function (db, name, errorHandler) {
2144
2176
  if (db) {
2145
- var transaction = db.transaction(name, "readwrite");
2146
- var objectStore = transaction.objectStore(name);
2147
- objectStore.clear();
2177
+ var transaction_1 = db.transaction(name, "readwrite");
2178
+ transaction_1.onerror = function () {
2179
+ var error = transaction_1.error;
2180
+ errorHandler(error, "\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438: ".concat(name));
2181
+ };
2182
+ var objectStore = transaction_1.objectStore(name);
2183
+ var objectStoreRequest_1 = objectStore.clear();
2184
+ objectStoreRequest_1.onerror = function () {
2185
+ var error = objectStoreRequest_1.error;
2186
+ errorHandler(error, "\u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0447\u0438\u0441\u0442\u043A\u0438 objectStore: ".concat(name));
2187
+ };
2148
2188
  }
2149
2189
  };
2150
- var clearIndexStores = function (db, stores) {
2190
+ var clearIndexStores = function (db, stores, errorHandler) {
2151
2191
  Array.from(stores).forEach(function (name) {
2152
- clearIndexStore(db, name);
2192
+ clearIndexStore(db, name, errorHandler);
2153
2193
  });
2154
2194
  };
2155
2195
 
@@ -2518,6 +2558,7 @@ exports.getPhoneParamsFromString = getPhoneParamsFromString;
2518
2558
  exports.initIndexDB = initIndexDB;
2519
2559
  exports.innRegExp = innRegExp;
2520
2560
  exports.isValidWithMaskExp = isValidWithMaskExp;
2561
+ exports.longPolling = longPolling;
2521
2562
  exports.mediumPasswordRegExp = mediumPasswordRegExp;
2522
2563
  exports.monthYearRegExp = monthYearRegExp;
2523
2564
  exports.phoneRegExp = phoneRegExp;