All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.cjs.react-utils.usePersistedQuery.usePersistedQuery.js.map Maven / Gradle / Ivy

Go to download

A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.

There is a newer version: 4.12.3
Show newest version
{"version":3,"file":"usePersistedQuery.js","names":["_react","require","_reactQuery","_ramda","_constants","_general","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","localStorageQueryCache","set","key","data","cache","getAll","newCache","modifiedAt","Date","now","setToLocalStorage","QUERY_CACHE_NAME_SPACE","getFromLocalStorage","get","isOutdated","localCache","staleTime","isNil","usePersistedQuery","queryKey","fetch","options","queryResult","useQuery","queryFn","useEffect","isSuccess","isFreshLoading","isLoading","getCache","_default","exports"],"sources":["../../../../src/react-utils/usePersistedQuery/usePersistedQuery.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { isNil } from \"ramda\";\nimport { QUERY_CACHE_NAME_SPACE } from \"react-utils/constants\";\nimport { getFromLocalStorage, setToLocalStorage } from \"utils/general\";\n\nconst localStorageQueryCache = {\n  set: (key, data) => {\n    const cache = localStorageQueryCache.getAll();\n    const newCache = { ...cache, [key]: { data, modifiedAt: Date.now() } };\n    setToLocalStorage(QUERY_CACHE_NAME_SPACE, newCache);\n  },\n  getAll: () => {\n    const cache = getFromLocalStorage(QUERY_CACHE_NAME_SPACE);\n    if (!cache) return {};\n\n    return cache;\n  },\n  get: key => localStorageQueryCache.getAll()[key],\n};\n\nconst isOutdated = (localCache, staleTime) => {\n  if (isNil(localCache)) return true;\n\n  if (isNil(staleTime)) return false;\n\n  return localCache.modifiedAt <= Date.now() - staleTime;\n};\n\nconst usePersistedQuery = (queryKey, fetch, options) => {\n  const queryResult = useQuery({\n    queryKey,\n    queryFn: fetch,\n    ...options,\n  });\n  const localCache = localStorageQueryCache.get(queryKey);\n\n  useEffect(() => {\n    if (!queryResult.isSuccess) return;\n    localStorageQueryCache.set(queryKey, queryResult.data);\n  }, [queryKey, queryResult.data, queryResult.isSuccess]);\n\n  if (isOutdated(localCache, options?.staleTime)) {\n    return { ...queryResult, isFreshLoading: queryResult.isLoading };\n  }\n\n  return {\n    ...queryResult,\n    data: queryResult.data || localCache.data,\n    isFreshLoading: false,\n  };\n};\n\nusePersistedQuery.getCache = localStorageQueryCache.get;\n\nexport default usePersistedQuery;\n"],"mappings":"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","ignoreList":[]}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy