reactjrx 1.135.6 → 1.139.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.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/queries/QueryClientProvider$.d.ts +3 -4
- package/dist/lib/queries/useConcatMutation$.d.ts +6 -6
- package/dist/lib/queries/useMutation$.d.ts +9 -9
- package/dist/lib/queries/useQuery$.d.ts +2 -3
- package/dist/lib/queries/useSwitchMutation$.d.ts +5 -6
- package/dist/lib/state/persistence/helpers.d.ts +2 -3
- package/dist/lib/state/persistence/persistSignals.d.ts +1 -2
- package/dist/lib/state/react/SignalContextProvider.d.ts +4 -5
- package/dist/lib/state/react/useSignalValue.d.ts +22 -3
- package/dist/lib/state/react/useSignalValue.test.d.ts +1 -0
- package/dist/lib/utils/react/useLiveRef.d.ts +1 -2
- package/package.json +12 -11
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefaultError, QueryClient, UseMutationOptions, UseMutationResult
|
|
1
|
+
import { DefaultError, QueryClient, UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
|
|
2
2
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
3
|
export type UseMutation$Options<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown> = Omit<UseMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationFn"> & {
|
|
4
4
|
mutationFn: ((variables: TVariables) => Observable<TData>) | Observable<TData>;
|
|
@@ -13,14 +13,14 @@ export declare function useMutation$<TData = unknown, TError = DefaultError, TVa
|
|
|
13
13
|
isPending: false;
|
|
14
14
|
isSuccess: false;
|
|
15
15
|
status: "idle";
|
|
16
|
-
mutate: UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
16
|
+
mutate: import('@tanstack/react-query').UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
17
17
|
reset: () => void;
|
|
18
18
|
context: TOnMutateResult | undefined;
|
|
19
19
|
failureCount: number;
|
|
20
20
|
failureReason: TError | null;
|
|
21
21
|
isPaused: boolean;
|
|
22
22
|
submittedAt: number;
|
|
23
|
-
mutateAsync: UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
23
|
+
mutateAsync: import('@tanstack/react-query').UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
24
24
|
} | {
|
|
25
25
|
state$: BehaviorSubject<Pick<UseMutationResult<TData, TError, TVariables, TOnMutateResult>, "status" | "isPending" | "isError" | "isSuccess" | "isIdle">>;
|
|
26
26
|
data: undefined;
|
|
@@ -31,14 +31,14 @@ export declare function useMutation$<TData = unknown, TError = DefaultError, TVa
|
|
|
31
31
|
isPending: true;
|
|
32
32
|
isSuccess: false;
|
|
33
33
|
status: "pending";
|
|
34
|
-
mutate: UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
34
|
+
mutate: import('@tanstack/react-query').UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
35
35
|
reset: () => void;
|
|
36
36
|
context: TOnMutateResult | undefined;
|
|
37
37
|
failureCount: number;
|
|
38
38
|
failureReason: TError | null;
|
|
39
39
|
isPaused: boolean;
|
|
40
40
|
submittedAt: number;
|
|
41
|
-
mutateAsync: UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
41
|
+
mutateAsync: import('@tanstack/react-query').UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
42
42
|
} | {
|
|
43
43
|
state$: BehaviorSubject<Pick<UseMutationResult<TData, TError, TVariables, TOnMutateResult>, "status" | "isPending" | "isError" | "isSuccess" | "isIdle">>;
|
|
44
44
|
data: undefined;
|
|
@@ -49,14 +49,14 @@ export declare function useMutation$<TData = unknown, TError = DefaultError, TVa
|
|
|
49
49
|
isPending: false;
|
|
50
50
|
isSuccess: false;
|
|
51
51
|
status: "error";
|
|
52
|
-
mutate: UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
52
|
+
mutate: import('@tanstack/react-query').UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
53
53
|
reset: () => void;
|
|
54
54
|
context: TOnMutateResult | undefined;
|
|
55
55
|
failureCount: number;
|
|
56
56
|
failureReason: TError | null;
|
|
57
57
|
isPaused: boolean;
|
|
58
58
|
submittedAt: number;
|
|
59
|
-
mutateAsync: UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
59
|
+
mutateAsync: import('@tanstack/react-query').UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
60
60
|
} | {
|
|
61
61
|
state$: BehaviorSubject<Pick<UseMutationResult<TData, TError, TVariables, TOnMutateResult>, "status" | "isPending" | "isError" | "isSuccess" | "isIdle">>;
|
|
62
62
|
data: TData;
|
|
@@ -67,12 +67,12 @@ export declare function useMutation$<TData = unknown, TError = DefaultError, TVa
|
|
|
67
67
|
isPending: false;
|
|
68
68
|
isSuccess: true;
|
|
69
69
|
status: "success";
|
|
70
|
-
mutate: UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
70
|
+
mutate: import('@tanstack/react-query').UseMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
71
71
|
reset: () => void;
|
|
72
72
|
context: TOnMutateResult | undefined;
|
|
73
73
|
failureCount: number;
|
|
74
74
|
failureReason: TError | null;
|
|
75
75
|
isPaused: boolean;
|
|
76
76
|
submittedAt: number;
|
|
77
|
-
mutateAsync: UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
77
|
+
mutateAsync: import('@tanstack/react-query').UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
78
78
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { DefaultError, QueryClient, QueryFunctionContext, QueryKey, skipToken, UseQueryOptions
|
|
1
|
+
import { DefaultError, QueryClient, QueryFunctionContext, QueryKey, skipToken, UseQueryOptions } from '@tanstack/react-query';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { NoInfer } from '@tanstack/query-core';
|
|
4
3
|
export declare function useQuery$<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>({ queryFn, ...options }: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & {
|
|
5
4
|
queryFn: ((context: QueryFunctionContext<TQueryKey>) => Observable<TQueryFnData>) | typeof skipToken | Observable<TQueryFnData>;
|
|
6
|
-
}, queryClient?: QueryClient): UseQueryResult<NoInfer<TData>, TError>;
|
|
5
|
+
}, queryClient?: QueryClient): import('@tanstack/react-query').UseQueryResult<NoInfer<TData>, TError>;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { DefaultError, QueryClient
|
|
1
|
+
import { DefaultError, QueryClient } from '@tanstack/react-query';
|
|
2
2
|
import { UseMutation$Options } from './useMutation$';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
3
|
export declare class SwitchMutationCancelError extends Error {
|
|
5
4
|
constructor(message?: string);
|
|
6
5
|
}
|
|
7
6
|
export declare function useSwitchMutation$<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown>({ mutationFn, onMutate, onError, onSettled, ...options }: UseMutation$Options<TData | null, TError, TVariables, TOnMutateResult>, queryClient?: QueryClient): {
|
|
8
7
|
mutate: (variables: TVariables) => void;
|
|
9
8
|
mutateAsync: (variables: TVariables) => Promise<TData | null>;
|
|
10
|
-
state$: BehaviorSubject<Pick<
|
|
9
|
+
state$: import('rxjs').BehaviorSubject<Pick<import('@tanstack/react-query').UseMutationResult<TData | null, TError, {
|
|
11
10
|
variables: TVariables;
|
|
12
11
|
abort: AbortSignal;
|
|
13
12
|
}, TOnMutateResult>, "status" | "isPending" | "isError" | "isSuccess" | "isIdle">>;
|
|
@@ -28,7 +27,7 @@ export declare function useSwitchMutation$<TData = unknown, TError = DefaultErro
|
|
|
28
27
|
} | {
|
|
29
28
|
mutate: (variables: TVariables) => void;
|
|
30
29
|
mutateAsync: (variables: TVariables) => Promise<TData | null>;
|
|
31
|
-
state$: BehaviorSubject<Pick<
|
|
30
|
+
state$: import('rxjs').BehaviorSubject<Pick<import('@tanstack/react-query').UseMutationResult<TData | null, TError, {
|
|
32
31
|
variables: TVariables;
|
|
33
32
|
abort: AbortSignal;
|
|
34
33
|
}, TOnMutateResult>, "status" | "isPending" | "isError" | "isSuccess" | "isIdle">>;
|
|
@@ -52,7 +51,7 @@ export declare function useSwitchMutation$<TData = unknown, TError = DefaultErro
|
|
|
52
51
|
} | {
|
|
53
52
|
mutate: (variables: TVariables) => void;
|
|
54
53
|
mutateAsync: (variables: TVariables) => Promise<TData | null>;
|
|
55
|
-
state$: BehaviorSubject<Pick<
|
|
54
|
+
state$: import('rxjs').BehaviorSubject<Pick<import('@tanstack/react-query').UseMutationResult<TData | null, TError, {
|
|
56
55
|
variables: TVariables;
|
|
57
56
|
abort: AbortSignal;
|
|
58
57
|
}, TOnMutateResult>, "status" | "isPending" | "isError" | "isSuccess" | "isIdle">>;
|
|
@@ -76,7 +75,7 @@ export declare function useSwitchMutation$<TData = unknown, TError = DefaultErro
|
|
|
76
75
|
} | {
|
|
77
76
|
mutate: (variables: TVariables) => void;
|
|
78
77
|
mutateAsync: (variables: TVariables) => Promise<TData | null>;
|
|
79
|
-
state$: BehaviorSubject<Pick<
|
|
78
|
+
state$: import('rxjs').BehaviorSubject<Pick<import('@tanstack/react-query').UseMutationResult<TData | null, TError, {
|
|
80
79
|
variables: TVariables;
|
|
81
80
|
abort: AbortSignal;
|
|
82
81
|
}, TOnMutateResult>, "status" | "isPending" | "isError" | "isSuccess" | "isIdle">>;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Adapter } from './adapters/Adapter';
|
|
2
2
|
import { PersistenceEntry, SignalPersistenceConfig } from './types';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
3
|
export declare const getNormalizedPersistanceValue: (unknownValue: unknown) => PersistenceEntry | undefined;
|
|
5
4
|
export declare const persistValue: ({ adapter, config, }: {
|
|
6
5
|
adapter: Adapter;
|
|
7
6
|
config: SignalPersistenceConfig<any>;
|
|
8
|
-
}) => Observable<unknown>;
|
|
7
|
+
}) => import('rxjs').Observable<unknown>;
|
|
9
8
|
export declare function hydrateValueToSignal({ adapter, config, }: {
|
|
10
9
|
adapter: Adapter;
|
|
11
10
|
config: SignalPersistenceConfig<any>;
|
|
12
|
-
}): Observable<unknown>;
|
|
11
|
+
}): import('rxjs').Observable<unknown>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Signal } from '../Signal';
|
|
2
2
|
import { Adapter } from './adapters/Adapter';
|
|
3
3
|
import { SignalPersistenceConfig } from './types';
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
5
4
|
export declare function persistSignals({ entries, onHydrated, adapter, }: {
|
|
6
5
|
entries: Array<SignalPersistenceConfig<Signal<any, string>>>;
|
|
7
6
|
/**
|
|
@@ -14,7 +13,7 @@ export declare function persistSignals({ entries, onHydrated, adapter, }: {
|
|
|
14
13
|
* need to change adapter during runtime.
|
|
15
14
|
*/
|
|
16
15
|
adapter: Adapter;
|
|
17
|
-
}): Observable<{
|
|
16
|
+
}): import('rxjs').Observable<{
|
|
18
17
|
type: "hydrated";
|
|
19
18
|
} | {
|
|
20
19
|
type: "persisted";
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { VirtualSignal
|
|
1
|
+
import { VirtualSignal } from '../Signal';
|
|
2
2
|
import { SignalContext } from '../SignalContext';
|
|
3
|
-
import { Context, MemoExoticComponent } from 'react';
|
|
4
3
|
export type SignalContextType = SignalContext;
|
|
5
|
-
export declare const SignalReactContext: Context<SignalContext>;
|
|
6
|
-
export declare const SignalContextProvider: MemoExoticComponent<({ children }: {
|
|
4
|
+
export declare const SignalReactContext: import('react').Context<SignalContext>;
|
|
5
|
+
export declare const SignalContextProvider: import('react').MemoExoticComponent<({ children }: {
|
|
7
6
|
children: React.ReactNode;
|
|
8
7
|
}) => import("react/jsx-runtime").JSX.Element>;
|
|
9
8
|
export declare const useSignalContext: () => SignalContext;
|
|
10
|
-
export declare const useMakeOrRetrieveSignal: (virtualSignal?: VirtualSignal<unknown>) => Signal<unknown, undefined> | undefined;
|
|
9
|
+
export declare const useMakeOrRetrieveSignal: (virtualSignal?: VirtualSignal<unknown>) => import('../Signal').Signal<unknown, undefined> | undefined;
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { Signal, VirtualSignal } from '../Signal';
|
|
2
|
+
export type EqualityFn<T> = (a: T, b: T) => boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Subscribe to a signal's current value, with optional projection and equality.
|
|
5
|
+
*
|
|
6
|
+
* - On every render the returned value is `selector(signal.value)` (or
|
|
7
|
+
* `signal.value` when no selector is provided), recomputed only when the
|
|
8
|
+
* signal value, the selector identity, or the signal itself has changed.
|
|
9
|
+
* - The component re-renders whenever the signal emits a value that the
|
|
10
|
+
* `equalityFn` considers different from the previous one.
|
|
11
|
+
* - The hook caches its last result. When the new selector output is
|
|
12
|
+
* considered equal to the previous one (per `equalityFn`), the previous
|
|
13
|
+
* reference is returned, so downstream `useEffect`/`useMemo` dependencies
|
|
14
|
+
* stay stable.
|
|
15
|
+
*
|
|
16
|
+
* @param signal The signal (or `VirtualSignal` resolved through context) to read.
|
|
17
|
+
* @param selector Optional projection of the signal value.
|
|
18
|
+
* @param equalityFn Optional equality function. Defaults to `Object.is`.
|
|
19
|
+
* Pass `isShallowEqual` (or any custom comparator) to opt into reference
|
|
20
|
+
* stability for derived objects.
|
|
21
|
+
*/
|
|
2
22
|
export declare function useSignalValue<T>(signal: VirtualSignal<T>): T;
|
|
3
|
-
export declare function useSignalValue<T, SelectValue>(signal: VirtualSignal<T>, selector: (value: T) => SelectValue): SelectValue;
|
|
23
|
+
export declare function useSignalValue<T, SelectValue>(signal: VirtualSignal<T>, selector: (value: T) => SelectValue, equalityFn?: EqualityFn<SelectValue>): SelectValue;
|
|
4
24
|
export declare function useSignalValue<T>(signal: Signal<T>): T;
|
|
5
|
-
export declare function useSignalValue<T, SelectValue>(signal: Signal<T>, selector: (value: T) => SelectValue): SelectValue;
|
|
6
|
-
export declare function useSignalValue<T, SelectValue>(signal: Signal<T>, selector: (value: T) => SelectValue): SelectValue | undefined;
|
|
25
|
+
export declare function useSignalValue<T, SelectValue>(signal: Signal<T>, selector: (value: T) => SelectValue, equalityFn?: EqualityFn<SelectValue>): SelectValue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const useLiveRef: <T>(value: T) => RefObject<T>;
|
|
1
|
+
export declare const useLiveRef: <T>(value: T) => import('react').RefObject<T>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reactjrx",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.139.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -39,28 +39,29 @@
|
|
|
39
39
|
"rxjs": "*"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@biomejs/biome": "2.
|
|
42
|
+
"@biomejs/biome": "2.4.15",
|
|
43
|
+
"@rolldown/plugin-babel": "^0.2.3",
|
|
43
44
|
"@tanstack/react-query-persist-client": "^5.96.2",
|
|
44
45
|
"@testing-library/jest-dom": "^6.2.0",
|
|
45
46
|
"@testing-library/react": "^16.1.0",
|
|
46
|
-
"@types/node": "^
|
|
47
|
+
"@types/node": "^25.9.1",
|
|
47
48
|
"@types/react": "^19.0.2",
|
|
48
49
|
"@types/react-dom": "^19.0.2",
|
|
49
|
-
"@vitejs/plugin-react": "^
|
|
50
|
+
"@vitejs/plugin-react": "^6.0.2",
|
|
50
51
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
51
52
|
"husky": "^9.1.7",
|
|
52
|
-
"jsdom": "^
|
|
53
|
-
"lint-staged": "^
|
|
53
|
+
"jsdom": "^29.1.1",
|
|
54
|
+
"lint-staged": "^17.0.5",
|
|
54
55
|
"react": "^19.0.0",
|
|
55
56
|
"react-dom": "^19.0.0",
|
|
56
|
-
"rollup-plugin-node-externals": "^
|
|
57
|
+
"rollup-plugin-node-externals": "^9.0.1",
|
|
57
58
|
"rxjs": "^7.8.0",
|
|
58
|
-
"semantic-release": "^
|
|
59
|
+
"semantic-release": "^25.0.3",
|
|
59
60
|
"terser": "^5.46.0",
|
|
60
|
-
"typescript": "^
|
|
61
|
-
"vite": "^
|
|
61
|
+
"typescript": "^6.0.2",
|
|
62
|
+
"vite": "^8.0.14",
|
|
62
63
|
"vite-plugin-babel": "^1.4.1",
|
|
63
|
-
"vite-plugin-dts": "^
|
|
64
|
+
"vite-plugin-dts": "^5.0.1",
|
|
64
65
|
"vitest": "^4.0.17"
|
|
65
66
|
},
|
|
66
67
|
"repository": {
|