@next-core/brick-kit 2.152.0 → 2.153.0

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.
@@ -14834,7 +14834,8 @@
14834
14834
  transform: (oldData, newData) => newData,
14835
14835
  data: undefined,
14836
14836
  loading: false,
14837
- suspense: false
14837
+ suspense: false,
14838
+ cache: true
14838
14839
  },
14839
14840
  dependencies: undefined
14840
14841
  };
@@ -14907,7 +14908,7 @@
14907
14908
  };
14908
14909
  }
14909
14910
 
14910
- var cache$1 = new Map();
14911
+ var cache = new Map();
14911
14912
  function fetchProviderArgs(_x, _x2) {
14912
14913
  return _fetchProviderArgs.apply(this, arguments);
14913
14914
  }
@@ -14923,33 +14924,57 @@
14923
14924
  args,
14924
14925
  originalArgs
14925
14926
  });
14926
- if (cache$1.has(cacheKey)) return cache$1.get(cacheKey);
14927
+ if (cache.has(cacheKey)) return cache.get(cacheKey);
14927
14928
  var actualArgs = yield getArgsOfCustomApi(provider, [...args, ...originalArgs]);
14928
- cache$1.set(cacheKey, actualArgs);
14929
+ cache.set(cacheKey, actualArgs);
14929
14930
  return actualArgs;
14930
14931
  });
14931
14932
  return _fetchProviderArgs.apply(this, arguments);
14932
14933
  }
14933
14934
 
14934
- var cache = new Map();
14935
- function fetch(_x) {
14936
- return _fetch.apply(this, arguments);
14935
+ var cacheMap = new Map();
14936
+
14937
+ function isObj(v) {
14938
+ return typeof v === "object" && v !== null && !Array.isArray(v);
14937
14939
  }
14938
14940
 
14939
- function _fetch() {
14940
- _fetch = _asyncToGenerator__default["default"](function* (provider) {
14941
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
14942
- args[_key - 1] = arguments[_key];
14943
- }
14941
+ function buildSortedCacheKey(provider, args) {
14942
+ var sortObj = obj => Object.keys(obj).sort().map(k => ({
14943
+ [k]: obj[k]
14944
+ }));
14944
14945
 
14945
- var cacheKey = JSON.stringify({
14946
+ try {
14947
+ var sortedArgs = isObj(args) ? sortObj(args) : args.map(arg => sortObj(arg));
14948
+ return JSON.stringify({
14949
+ provider,
14950
+ args: sortedArgs
14951
+ });
14952
+ } catch (e) {
14953
+ return JSON.stringify({
14946
14954
  provider,
14947
14955
  args
14948
14956
  });
14949
- var promise;
14957
+ }
14958
+ }
14959
+
14960
+ function fetch(_x, _x2) {
14961
+ return _fetch.apply(this, arguments);
14962
+ }
14963
+
14964
+ function _fetch() {
14965
+ _fetch = _asyncToGenerator__default["default"](function* (provider, cache) {
14966
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
14967
+ args[_key - 2] = arguments[_key];
14968
+ }
14969
+
14970
+ var promise; // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14971
+ // @ts-ignore
14972
+
14973
+ var cacheKey = buildSortedCacheKey(provider, ...args);
14974
+ !cache && cacheMap.has(cacheKey) && cacheMap.delete(cacheKey);
14950
14975
 
14951
- if (cache.has(cacheKey)) {
14952
- promise = cache.get(cacheKey);
14976
+ if (cacheMap.has(cacheKey)) {
14977
+ promise = cacheMap.get(cacheKey);
14953
14978
  } else {
14954
14979
  promise = _asyncToGenerator__default["default"](function* () {
14955
14980
  if (!isCustomApiProvider(provider)) {
@@ -14965,7 +14990,7 @@
14965
14990
 
14966
14991
  return CustomApi(...args);
14967
14992
  })();
14968
- cache.set(cacheKey, promise);
14993
+ cache && cacheMap.set(cacheKey, promise);
14969
14994
  }
14970
14995
 
14971
14996
  return promise;
@@ -14973,7 +14998,7 @@
14973
14998
  return _fetch.apply(this, arguments);
14974
14999
  }
14975
15000
 
14976
- var _excluded = ["onError", "transform", "suspense"];
15001
+ var _excluded = ["onError", "transform", "suspense", "cache"];
14977
15002
  function useProvider() {
14978
15003
  var {
14979
15004
  provider,
@@ -14985,7 +15010,8 @@
14985
15010
  var {
14986
15011
  onError,
14987
15012
  transform,
14988
- suspense
15013
+ suspense,
15014
+ cache
14989
15015
  } = customOptions,
14990
15016
  defaults = _objectWithoutProperties__default["default"](customOptions, _excluded);
14991
15017
 
@@ -15007,11 +15033,12 @@
15007
15033
  args[_key - 1] = arguments[_key];
15008
15034
  }
15009
15035
 
15010
- var newRes = yield fetch(provider, ...args);
15036
+ var newRes = yield fetch(provider, cache, ...args);
15011
15037
  response.current = newRes;
15012
15038
  data.current = transform(data.current, newRes);
15013
15039
  } catch (e) {
15014
15040
  error.current = e;
15041
+ data.current = undefined;
15015
15042
  }
15016
15043
 
15017
15044
  if (!suspense) setLoading(false);
@@ -15022,7 +15049,7 @@
15022
15049
  return function (_x) {
15023
15050
  return _ref.apply(this, arguments);
15024
15051
  };
15025
- }(), [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError]);
15052
+ }(), [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError, cache]);
15026
15053
  var makeFetch = React.useCallback( /*#__PURE__*/function () {
15027
15054
  var _ref2 = _asyncToGenerator__default["default"](function* (providerOrBody, args) {
15028
15055
  var providerStr = provider;