UNPKG

@tanstack/react-query

Version:

Hooks for managing, caching and syncing asynchronous and remote data in React

1 lines 3.49 kB
{"version":3,"file":"suspense.mjs","sources":["../../src/suspense.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions } from '@tanstack/query-core'\nimport type { QueryObserver } from '@tanstack/query-core'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\nimport type { QueryObserverResult } from '@tanstack/query-core'\nimport type { QueryKey } from '@tanstack/query-core'\n\nexport const ensureStaleTime = (\n defaultedOptions: DefaultedQueryObserverOptions<any, any, any, any, any>,\n) => {\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000\n }\n }\n}\n\nexport const willFetch = (\n result: QueryObserverResult<any, any>,\n isRestoring: boolean,\n) => result.isLoading && result.isFetching && !isRestoring\n\nexport const shouldSuspend = (\n defaultedOptions:\n | DefaultedQueryObserverOptions<any, any, any, any, any>\n | undefined,\n result: QueryObserverResult<any, any>,\n isRestoring: boolean,\n) => defaultedOptions?.suspense && willFetch(result, isRestoring)\n\nexport const fetchOptimistic = <\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n defaultedOptions: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) =>\n observer\n .fetchOptimistic(defaultedOptions)\n .then(({ data }) => {\n defaultedOptions.onSuccess?.(data as TData)\n defaultedOptions.onSettled?.(data, null)\n })\n .catch((error) => {\n errorResetBoundary.clearReset()\n defaultedOptions.onError?.(error)\n defaultedOptions.onSettled?.(undefined, error)\n })\n"],"names":["ensureStaleTime","defaultedOptions","suspense","staleTime","willFetch","result","isRestoring","isLoading","isFetching","shouldSuspend","fetchOptimistic","observer","errorResetBoundary","then","data","onSuccess","onSettled","catch","error","clearReset","onError","undefined"],"mappings":"AAMaA,MAAAA,eAAe,GAC1BC,gBAD6B,IAE1B;EACH,IAAIA,gBAAgB,CAACC,QAArB,EAA+B;AAC7B;AACA;AACA,IAAA,IAAI,OAAOD,gBAAgB,CAACE,SAAxB,KAAsC,QAA1C,EAAoD;MAClDF,gBAAgB,CAACE,SAAjB,GAA6B,IAA7B,CAAA;AACD,KAAA;AACF,GAAA;AACF,EAVM;MAYMC,SAAS,GAAG,CACvBC,MADuB,EAEvBC,WAFuB,KAGpBD,MAAM,CAACE,SAAP,IAAoBF,MAAM,CAACG,UAA3B,IAAyC,CAACF,YAHxC;AAKA,MAAMG,aAAa,GAAG,CAC3BR,gBAD2B,EAI3BI,MAJ2B,EAK3BC,WAL2B,KAMxB,CAAAL,gBAAgB,IAAhB,IAAA,GAAA,KAAA,CAAA,GAAAA,gBAAgB,CAAEC,QAAlB,KAA8BE,SAAS,CAACC,MAAD,EAASC,WAAT,EANrC;MAQMI,eAAe,GAAG,CAO7BT,gBAP6B,EAc7BU,QAd6B,EAe7BC,kBAf6B,KAiB7BD,QAAQ,CACLD,eADH,CACmBT,gBADnB,CAEGY,CAAAA,IAFH,CAEQ,CAAC;AAAEC,EAAAA,IAAAA;AAAF,CAAD,KAAc;AAClBb,EAAAA,gBAAgB,CAACc,SAAjB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAd,gBAAgB,CAACc,SAAjB,CAA6BD,IAA7B,CAAA,CAAA;EACAb,gBAAgB,CAACe,SAAjB,IAAAf,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAgB,CAACe,SAAjB,CAA6BF,IAA7B,EAAmC,IAAnC,CAAA,CAAA;AACD,CALH,CAMGG,CAAAA,KANH,CAMUC,KAAD,IAAW;AAChBN,EAAAA,kBAAkB,CAACO,UAAnB,EAAA,CAAA;AACAlB,EAAAA,gBAAgB,CAACmB,OAAjB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAnB,gBAAgB,CAACmB,OAAjB,CAA2BF,KAA3B,CAAA,CAAA;EACAjB,gBAAgB,CAACe,SAAjB,IAAAf,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAgB,CAACe,SAAjB,CAA6BK,SAA7B,EAAwCH,KAAxC,CAAA,CAAA;AACD,CAVH;;;;"}