MCPcopy Create free account
hub / github.com/SvelteStack/svelte-query / createResult

Method createResult

src/queryCore/core/queryObserver.ts:459–626  ·  view source on GitHub ↗
(
    query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
    options: QueryObserverOptions<
      TQueryFnData,
      TError,
      TData,
      TQueryData,
      TQueryKey
    >
  )

Source from the content-addressed store, hash-verified

457 }
458
459 protected createResult(
460 query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
461 options: QueryObserverOptions<
462 TQueryFnData,
463 TError,
464 TData,
465 TQueryData,
466 TQueryKey
467 >
468 ): QueryObserverResult<TData, TError> {
469 const prevQuery = this.currentQuery
470 const prevOptions = this.options
471 const prevResult = this.currentResult
472 const prevResultState = this.currentResultState
473 const prevResultOptions = this.currentResultOptions
474 const queryChange = query !== prevQuery
475 const queryInitialState = queryChange
476 ? query.state
477 : this.currentQueryInitialState
478 const prevQueryResult = queryChange
479 ? this.currentResult
480 : this.previousQueryResult
481
482 const { state } = query
483 let { dataUpdatedAt, error, errorUpdatedAt, isFetching, status } = state
484 let isPreviousData = false
485 let isPlaceholderData = false
486 let data: TData | undefined
487
488 // Optimistically set result in fetching state if needed
489 // @ts-ignore
490 if (options.optimisticResults) {
491 const mounted = this.hasListeners()
492
493 const fetchOnMount = !mounted && shouldFetchOnMount(query, options)
494
495 const fetchOptionally =
496 mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)
497
498 if (fetchOnMount || fetchOptionally) {
499 isFetching = true
500 if (!dataUpdatedAt) {
501 status = 'loading'
502 }
503 }
504 }
505
506 // Keep previous data if needed
507 if (
508 options.keepPreviousData &&
509 !state.dataUpdateCount &&
510 prevQueryResult?.isSuccess &&
511 status !== 'error'
512 ) {
513 data = prevQueryResult.data
514 dataUpdatedAt = prevQueryResult.dataUpdatedAt
515 status = prevQueryResult.status
516 isPreviousData = true

Callers 3

getOptimisticResultMethod · 0.95
fetchOptimisticMethod · 0.95
updateResultMethod · 0.95

Calls 6

replaceEqualDeepFunction · 0.90
getLoggerFunction · 0.90
shouldFetchOnMountFunction · 0.85
shouldFetchOptionallyFunction · 0.85
isStaleFunction · 0.85
hasListenersMethod · 0.80

Tested by

no test coverage detected