reactjrx 2.1.2 → 2.2.0

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.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * What `useLiveQuery$` and `useLiveQueries$` lock, so that no default of the
3
+ * `QueryClient` keeps a live query from reopening its stream: its data is
4
+ * stale as soon as no stream backs it, and every mount fetches, which joins a
5
+ * running stream or reopens a stopped one.
6
+ */
7
+ export declare const lockedLiveQueryOptions: {
8
+ readonly staleTime: 0;
9
+ readonly refetchOnMount: "always";
10
+ };
11
+ export type LockedLiveQueryOption = keyof typeof lockedLiveQueryOptions;
@@ -0,0 +1,12 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ import { LockedLiveQueryOption } from './lockedLiveQueryOptions';
3
+ import { QueriesOptions$, QueriesResults$ } from './useQueries$';
4
+ /**
5
+ * `useQueries$` for streams that stay open. Like `useLiveQuery$`, it locks
6
+ * each query's `staleTime` to 0 and `refetchOnMount` to `"always"`.
7
+ */
8
+ export declare function useLiveQueries$<T extends Array<any>, TCombinedResult = QueriesResults$<T>>({ queries, ...options }: {
9
+ queries: readonly [...QueriesOptions$<T, [], [], LockedLiveQueryOption>];
10
+ combine?: (result: QueriesResults$<T>) => TCombinedResult;
11
+ subscribed?: boolean;
12
+ }, queryClient?: QueryClient): TCombinedResult;
@@ -0,0 +1,15 @@
1
+ import { DefaultError, QueryClient, QueryKey } from '@tanstack/react-query';
2
+ import { LockedLiveQueryOption } from './lockedLiveQueryOptions';
3
+ import { UseQuery$Options } from './useQuery$';
4
+ /**
5
+ * The options of `useLiveQuery$`: those of `useQuery$`, without the ones it
6
+ * locks.
7
+ */
8
+ export type UseLiveQuery$Options<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<UseQuery$Options<TQueryFnData, TError, TData, TQueryKey>, LockedLiveQueryOption>;
9
+ /**
10
+ * `useQuery$` for a stream that stays open, such as a live database query or
11
+ * a socket. It locks `staleTime` to 0 and `refetchOnMount` to `"always"`, so
12
+ * whatever the `QueryClient`'s defaults, the query reopens its stream
13
+ * whenever a component needs it again.
14
+ */
15
+ export declare function useLiveQuery$<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseLiveQuery$Options<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): import('@tanstack/react-query').UseQueryResult<TData, TError>;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,14 +1,14 @@
1
1
  import { DefaultError, QueriesPlaceholderDataFunction, QueryClient, QueryKey, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
2
  import { ObservableQueryFn } from './createObservableQueryFn';
3
3
  type MAXIMUM_DEPTH = 20;
4
- type UseQuery$OptionsForUseQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn" | "placeholderData"> & {
4
+ type UseQuery$OptionsForUseQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TOmitted extends PropertyKey = never> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn" | "placeholderData" | TOmitted> & {
5
5
  queryFn?: ObservableQueryFn<TQueryFnData, TQueryKey>;
6
6
  placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
7
7
  };
8
- type GetUseQuery$Options<T> = T extends {
8
+ type GetUseQuery$Options<T, TOmitted extends PropertyKey> = T extends {
9
9
  queryFn?: ObservableQueryFn<infer TQueryFnData, infer TQueryKey>;
10
10
  select?: (data: any) => infer TData;
11
- } ? UseQuery$OptionsForUseQueries<TQueryFnData, DefaultError, unknown extends TData ? TQueryFnData : TData, TQueryKey extends QueryKey ? TQueryKey : QueryKey> : UseQuery$OptionsForUseQueries;
11
+ } ? UseQuery$OptionsForUseQueries<TQueryFnData, DefaultError, unknown extends TData ? TQueryFnData : TData, TQueryKey extends QueryKey ? TQueryKey : QueryKey, TOmitted> : UseQuery$OptionsForUseQueries<unknown, DefaultError, unknown, QueryKey, TOmitted>;
12
12
  type GetUseQuery$Result<T> = T extends {
13
13
  queryFn?: ObservableQueryFn<infer TQueryFnData, any>;
14
14
  select?: (data: any) => infer TData;
@@ -17,16 +17,17 @@ type GetUseQuery$Result<T> = T extends {
17
17
  * Mirrors TanStack's `QueriesOptions`, but each query takes an Observable-based
18
18
  * `queryFn` (see {@link ObservableQueryFn}) instead of a Promise-based one. The
19
19
  * recursion preserves per-element tuple inference at the call site.
20
+ * `TOmitted` leaves options out of every query.
20
21
  */
21
- export type QueriesOptions$<T extends Array<any>, TResults extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth["length"] extends MAXIMUM_DEPTH ? Array<UseQuery$OptionsForUseQueries> : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetUseQuery$Options<Head>] : T extends [infer Head, ...infer Tails] ? QueriesOptions$<[
22
+ export type QueriesOptions$<T extends Array<any>, TResults extends Array<any> = [], TDepth extends ReadonlyArray<number> = [], TOmitted extends PropertyKey = never> = TDepth["length"] extends MAXIMUM_DEPTH ? Array<UseQuery$OptionsForUseQueries<unknown, DefaultError, unknown, QueryKey, TOmitted>> : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetUseQuery$Options<Head, TOmitted>] : T extends [infer Head, ...infer Tails] ? QueriesOptions$<[
22
23
  ...Tails
23
24
  ], [
24
25
  ...TResults,
25
- GetUseQuery$Options<Head>
26
+ GetUseQuery$Options<Head, TOmitted>
26
27
  ], [
27
28
  ...TDepth,
28
29
  1
29
- ]> : ReadonlyArray<unknown> extends T ? T : Array<UseQuery$OptionsForUseQueries>;
30
+ ], TOmitted> : ReadonlyArray<unknown> extends T ? T : Array<UseQuery$OptionsForUseQueries<unknown, DefaultError, unknown, QueryKey, TOmitted>>;
30
31
  /**
31
32
  * Mirrors TanStack's `QueriesResults`, mapping each Observable-based query
32
33
  * option to its `UseQueryResult`.
@@ -1,5 +1,10 @@
1
1
  import { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/react-query';
2
2
  import { ObservableQueryFn } from './createObservableQueryFn';
3
- export declare function useQuery$<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>({ queryFn, ...options }: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & {
3
+ /**
4
+ * TanStack's `UseQueryOptions`, with an Observable-based `queryFn` (see
5
+ * {@link ObservableQueryFn}).
6
+ */
7
+ export type UseQuery$Options<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & {
4
8
  queryFn: ObservableQueryFn<TQueryFnData, TQueryKey>;
5
- }, queryClient?: QueryClient): import('@tanstack/react-query').UseQueryResult<TData, TError>;
9
+ };
10
+ export declare function useQuery$<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>({ queryFn, ...options }: UseQuery$Options<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): import('@tanstack/react-query').UseQueryResult<TData, TError>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "reactjrx",
3
3
  "private": false,
4
- "version": "2.1.2",
4
+ "version": "2.2.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"