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

Method createResult

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

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