@pyreon/query 0.10.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- import type { VNodeChild, VNodeChildAtom } from '@pyreon/core'
2
- import { onUnmount } from '@pyreon/core'
3
- import type { Signal } from '@pyreon/reactivity'
4
- import { batch, effect, signal } from '@pyreon/reactivity'
1
+ import type { VNodeChild, VNodeChildAtom } from "@pyreon/core"
2
+ import { onUnmount } from "@pyreon/core"
3
+ import type { Signal } from "@pyreon/reactivity"
4
+ import { batch, effect, signal } from "@pyreon/reactivity"
5
5
  import type {
6
6
  DefaultError,
7
7
  InfiniteData,
@@ -10,9 +10,9 @@ import type {
10
10
  QueryKey,
11
11
  QueryObserverOptions,
12
12
  QueryObserverResult,
13
- } from '@tanstack/query-core'
14
- import { InfiniteQueryObserver, QueryObserver } from '@tanstack/query-core'
15
- import { useQueryClient } from './query-client'
13
+ } from "@tanstack/query-core"
14
+ import { InfiniteQueryObserver, QueryObserver } from "@tanstack/query-core"
15
+ import { useQueryClient } from "./query-client"
16
16
 
17
17
  // ─── Types ─────────────────────────────────────────────────────────────────
18
18
 
@@ -26,7 +26,7 @@ export interface UseSuspenseQueryResult<TData, TError = DefaultError> {
26
26
  /** Always TData — never undefined inside a QuerySuspense boundary. */
27
27
  data: Signal<TData>
28
28
  error: Signal<TError | null>
29
- status: Signal<'pending' | 'error' | 'success'>
29
+ status: Signal<"pending" | "error" | "success">
30
30
  isPending: Signal<boolean>
31
31
  isFetching: Signal<boolean>
32
32
  isError: Signal<boolean>
@@ -34,17 +34,12 @@ export interface UseSuspenseQueryResult<TData, TError = DefaultError> {
34
34
  refetch: () => Promise<QueryObserverResult<TData, TError>>
35
35
  }
36
36
 
37
- export interface UseSuspenseInfiniteQueryResult<
38
- TQueryFnData,
39
- TError = DefaultError,
40
- > {
41
- result: Signal<
42
- InfiniteQueryObserverResult<InfiniteData<TQueryFnData>, TError>
43
- >
37
+ export interface UseSuspenseInfiniteQueryResult<TQueryFnData, TError = DefaultError> {
38
+ result: Signal<InfiniteQueryObserverResult<InfiniteData<TQueryFnData>, TError>>
44
39
  /** Always InfiniteData<TQueryFnData> — never undefined inside a QuerySuspense boundary. */
45
40
  data: Signal<InfiniteData<TQueryFnData>>
46
41
  error: Signal<TError | null>
47
- status: Signal<'pending' | 'error' | 'success'>
42
+ status: Signal<"pending" | "error" | "success">
48
43
  isFetching: Signal<boolean>
49
44
  isFetchingNextPage: Signal<boolean>
50
45
  isFetchingPreviousPage: Signal<boolean>
@@ -52,15 +47,9 @@ export interface UseSuspenseInfiniteQueryResult<
52
47
  isSuccess: Signal<boolean>
53
48
  hasNextPage: Signal<boolean>
54
49
  hasPreviousPage: Signal<boolean>
55
- fetchNextPage: () => Promise<
56
- InfiniteQueryObserverResult<InfiniteData<TQueryFnData>, TError>
57
- >
58
- fetchPreviousPage: () => Promise<
59
- InfiniteQueryObserverResult<InfiniteData<TQueryFnData>, TError>
60
- >
61
- refetch: () => Promise<
62
- QueryObserverResult<InfiniteData<TQueryFnData>, TError>
63
- >
50
+ fetchNextPage: () => Promise<InfiniteQueryObserverResult<InfiniteData<TQueryFnData>, TError>>
51
+ fetchPreviousPage: () => Promise<InfiniteQueryObserverResult<InfiniteData<TQueryFnData>, TError>>
52
+ refetch: () => Promise<QueryObserverResult<InfiniteData<TQueryFnData>, TError>>
64
53
  }
65
54
 
66
55
  // ─── QuerySuspense ──────────────────────────────────────────────────────────
@@ -120,15 +109,13 @@ export function QuerySuspense(props: QuerySuspenseProps): VNodeChild {
120
109
  if (queries.some((q) => q.isPending())) {
121
110
  const fb = props.fallback
122
111
  return (
123
- typeof fb === 'function' ? (fb as () => VNodeChildAtom)() : (fb ?? null)
112
+ typeof fb === "function" ? (fb as () => VNodeChildAtom)() : (fb ?? null)
124
113
  ) as VNodeChildAtom
125
114
  }
126
115
 
127
116
  // All success — render children
128
117
  const ch = props.children
129
- return (
130
- typeof ch === 'function' ? (ch as () => VNodeChildAtom)() : ch
131
- ) as VNodeChildAtom
118
+ return (typeof ch === "function" ? (ch as () => VNodeChildAtom)() : ch) as VNodeChildAtom
132
119
  }
133
120
  }
134
121
 
@@ -154,16 +141,13 @@ export function useSuspenseQuery<
154
141
  options: () => QueryObserverOptions<TData, TError, TData, TData, TKey>,
155
142
  ): UseSuspenseQueryResult<TData, TError> {
156
143
  const client = useQueryClient()
157
- const observer = new QueryObserver<TData, TError, TData, TData, TKey>(
158
- client,
159
- options(),
160
- )
144
+ const observer = new QueryObserver<TData, TError, TData, TData, TKey>(client, options())
161
145
  const initial = observer.getCurrentResult()
162
146
 
163
147
  const resultSig = signal<QueryObserverResult<TData, TError>>(initial)
164
148
  const dataSig = signal<TData>(initial.data as TData)
165
149
  const errorSig = signal<TError | null>(initial.error ?? null)
166
- const statusSig = signal<'pending' | 'error' | 'success'>(initial.status)
150
+ const statusSig = signal<"pending" | "error" | "success">(initial.status)
167
151
  const isPending = signal(initial.isPending)
168
152
  const isFetching = signal(initial.isFetching)
169
153
  const isError = signal(initial.isError)