MCPcopy Create free account
hub / github.com/TanStack/query / createResult

Method createResult

packages/query-core/src/queryObserver.ts:451–620  ·  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

449 }
450
451 protected createResult(
452 query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
453 options: QueryObserverOptions<
454 TQueryFnData,
455 TError,
456 TData,
457 TQueryData,
458 TQueryKey
459 >,
460 ): QueryObserverResult<TData, TError> {
461 const prevQuery = this.#currentQuery
462 const prevOptions = this.options
463 const prevResult = this.#currentResult as
464 | QueryObserverResult<TData, TError>
465 | undefined
466 const prevResultState = this.#currentResultState
467 const prevResultOptions = this.#currentResultOptions
468 const queryChange = query !== prevQuery
469 const queryInitialState = queryChange
470 ? query.state
471 : this.#currentQueryInitialState
472
473 const { state } = query
474 let newState = { ...state }
475 let isPlaceholderData = false
476 let data: TData | undefined
477
478 // Optimistically set result in fetching state if needed
479 if (options._optimisticResults) {
480 const mounted = this.hasListeners()
481
482 const fetchOnMount = !mounted && shouldFetchOnMount(query, options)
483
484 const fetchOptionally =
485 mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)
486
487 if (fetchOnMount || fetchOptionally) {
488 newState = {
489 ...newState,
490 ...fetchState(state.data, query.options),
491 }
492 }
493 if (options._optimisticResults === 'isRestoring') {
494 newState.fetchStatus = 'idle'
495 }
496 }
497
498 let { error, errorUpdatedAt, status } = newState
499
500 // Per default, use query data
501 data = newState.data as unknown as TData
502 let skipSelect = false
503
504 // use placeholderData if needed
505 if (
506 options.placeholderData !== undefined &&
507 data === undefined &&
508 status === 'pending'

Callers 3

getOptimisticResultMethod · 0.95
fetchOptimisticMethod · 0.95
updateResultMethod · 0.95

Calls 8

fetchStateFunction · 0.90
replaceDataFunction · 0.90
resolveQueryBooleanFunction · 0.90
shouldFetchOnMountFunction · 0.85
shouldFetchOptionallyFunction · 0.85
isStaleFunction · 0.85
hasListenersMethod · 0.80
isFetchedMethod · 0.80

Tested by

no test coverage detected