{"version":3,"file":"suspense.mjs","sources":["../../../src/react/suspense.ts"],"sourcesContent":["import {\n  ObservableQuery,\n  ObservableQueryOptions,\n  ObservableQueryResult,\n} from '../vanilla/observableQuery'\nimport { isNumber } from '../vanilla/utils'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\n\nexport const suspenseOptions: Partial<ObservableQueryOptions> = {\n  suspense: true,\n  enabled: true,\n  throwOnError: (_error, queryInfo) => queryInfo.state.data === undefined,\n}\n\nexport const ensureStaleTime = (\n  defaultedOptions: ObservableQueryOptions<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 (!isNumber(defaultedOptions.staleTime)) {\n      defaultedOptions.staleTime = 1000\n    }\n  }\n}\n\nexport const willFetch = (result: ObservableQueryResult<any, any>) =>\n  result.isLoading && result.isFetching\n\nexport const shouldSuspend = (\n  defaultedOptions: ObservableQueryOptions<any, any, any> | undefined,\n  result: ObservableQueryResult<any, any>\n) => defaultedOptions?.suspense && willFetch(result)\n\nexport const fetchOptimistic = (\n  defaultedOptions: ObservableQueryOptions<any, any, any, any>,\n  obsQuery: ObservableQuery<any, any, any, any, any>,\n  errorResetBoundary: QueryErrorResetBoundaryValue\n) => {\n  return obsQuery.fetchOptimistic(defaultedOptions).catch(() => {\n    errorResetBoundary.clearReset()\n  })\n}\n"],"names":["suspenseOptions","suspense","enabled","throwOnError","_error","queryInfo","state","data","undefined","ensureStaleTime","defaultedOptions","isNumber","staleTime","willFetch","result","isLoading","isFetching","shouldSuspend","fetchOptimistic","obsQuery","errorResetBoundary","catch","clearReset"],"mappings":";;AAQO,MAAMA,eAAgD,GAAG;AAC9DC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,OAAO,EAAE,IAAI;EACbC,YAAY,EAAEA,CAACC,MAAM,EAAEC,SAAS,KAAKA,SAAS,CAACC,KAAK,CAACC,IAAI,KAAKC,SAAAA;AAChE,EAAC;AAEYC,MAAAA,eAAe,GAC1BC,gBAAuD,IACpD;EACH,IAAIA,gBAAgB,CAACT,QAAQ,EAAE;AAC7B;AACA;AACA,IAAA,IAAI,CAACU,QAAQ,CAACD,gBAAgB,CAACE,SAAS,CAAC,EAAE;MACzCF,gBAAgB,CAACE,SAAS,GAAG,IAAI,CAAA;AACnC,KAAA;AACF,GAAA;AACF,EAAC;AAEM,MAAMC,SAAS,GAAIC,MAAuC,IAC/DA,MAAM,CAACC,SAAS,IAAID,MAAM,CAACE,WAAU;MAE1BC,aAAa,GAAGA,CAC3BP,gBAAmE,EACnEI,MAAuC,KACpC,CAAAJ,gBAAgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAhBA,gBAAgB,CAAET,QAAQ,KAAIY,SAAS,CAACC,MAAM,EAAC;AAE7C,MAAMI,eAAe,GAAGA,CAC7BR,gBAA4D,EAC5DS,QAAkD,EAClDC,kBAAgD,KAC7C;EACH,OAAOD,QAAQ,CAACD,eAAe,CAACR,gBAAgB,CAAC,CAACW,KAAK,CAAC,MAAM;IAC5DD,kBAAkB,CAACE,UAAU,EAAE,CAAA;AACjC,GAAC,CAAC,CAAA;AACJ;;;;"}