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