@pixotope/query 0.5.0 → 0.7.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/.turbo/turbo-build.log +10 -10
- package/.turbo/turbo-check-types.log +1 -1
- package/.turbo/turbo-test.log +9 -7
- package/CHANGELOG.md +14 -0
- package/dist/index.cjs +81 -93
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -88
- package/dist/index.d.ts +42 -88
- package/dist/index.js +81 -93
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/factories.test.ts +65 -0
- package/src/factories.ts +61 -53
- package/src/proxyBinders.ts +3 -1
- package/src/useMutation.test.ts +106 -0
- package/src/useMutation.ts +104 -125
- package/src/useQuery.test.ts +77 -139
- package/src/useQuery.ts +15 -16
- package/src/mock/useQuery.ts +0 -48
package/dist/index.d.cts
CHANGED
|
@@ -4,8 +4,8 @@ import { ZMQClient, TSocketServerCallOptions, ZMQProxyWSClient } from '@pixotope
|
|
|
4
4
|
interface QueryOptions<TData = unknown, TError = unknown, TParams = void, TSelectData = TData, Stateless extends true | undefined = undefined> {
|
|
5
5
|
queryFn: (params: TParams | undefined | void) => Promise<TData>;
|
|
6
6
|
onSuccess?: (data: TData) => Promise<void> | void;
|
|
7
|
-
onError?: (error: TError) => Promise<void> | void;
|
|
8
|
-
onSettled?: (data: TData | undefined, error: TError | undefined) => Promise<void> | void;
|
|
7
|
+
onError?: (error: TQueryError<TError>) => Promise<void> | void;
|
|
8
|
+
onSettled?: (data: TData | undefined, error: TQueryError<TError> | undefined) => Promise<void> | void;
|
|
9
9
|
timeout?: number;
|
|
10
10
|
enabled?: boolean;
|
|
11
11
|
initialData?: TData | Functionize<TData>;
|
|
@@ -22,90 +22,46 @@ type WithData$1<TData> = {
|
|
|
22
22
|
data: TData | undefined;
|
|
23
23
|
};
|
|
24
24
|
type TQueryKey = readonly any[];
|
|
25
|
+
type TQueryError<TError> = TError | Error | null;
|
|
25
26
|
type UseQueryResult<TData = unknown, TError = unknown, TParams = void, TSelectData = TData, Stateless extends true | undefined = undefined> = {
|
|
26
|
-
error: TError
|
|
27
|
+
error: TQueryError<TError>;
|
|
27
28
|
status: QueryStatus;
|
|
28
29
|
refetch: (params: TParams | void | undefined) => Promise<void>;
|
|
29
30
|
reset: () => void;
|
|
30
31
|
} & (Stateless extends true ? {} : WithData$1<TSelectData>);
|
|
31
32
|
declare const useQuery: <TData = unknown, TError = unknown, TParams = void, TSelected = TData, Stateless extends true | undefined = undefined>({ queryFn, ...options }: QueryOptions<TData, TError, TParams, TSelected, Stateless>) => UseQueryResult<TSelected, TError, TParams, TSelected, Stateless>;
|
|
32
33
|
|
|
33
|
-
type MutationFunction<TData = unknown, TParams = unknown> = (params: TParams,
|
|
34
|
-
interface MutationOptions<TData = unknown, TError = unknown, TParams = void> {
|
|
35
|
-
mutationFn: MutationFunction<TData, TParams>;
|
|
34
|
+
type MutationFunction<TData = unknown, TParams = unknown, TMetadata = unknown> = (params: TParams, meta?: TMetadata) => Promise<TData>;
|
|
35
|
+
interface MutationOptions<TData = unknown, TError = unknown, TParams = void, TMetadata = unknown> {
|
|
36
|
+
mutationFn: MutationFunction<TData, TParams, TMetadata>;
|
|
36
37
|
params?: TParams;
|
|
37
|
-
onSuccess?: (data: TData, variables: TParams) => Promise<unknown> | unknown;
|
|
38
|
-
onError?: (error: TError
|
|
39
|
-
onSettled?: (data: TData | undefined, error: TError | null, variables: TParams) => Promise<unknown> | unknown;
|
|
38
|
+
onSuccess?: (data: TData, variables: TParams, meta?: TMetadata) => Promise<unknown> | unknown;
|
|
39
|
+
onError?: (error: TMutationError<TError>, variables: TParams, meta?: TMetadata) => Promise<unknown> | unknown;
|
|
40
|
+
onSettled?: (data: TData | undefined, error: TMutationError<TError> | null, variables: TParams, meta?: TMetadata) => Promise<unknown> | unknown;
|
|
40
41
|
compareOrThrow?: (result: TData | TError) => boolean;
|
|
41
42
|
timeout?: number;
|
|
42
|
-
prepareParams?: (variables: TParams, defaults?: TParams) => TParams;
|
|
43
|
+
prepareParams?: (variables: TParams, defaults?: TParams, meta?: TMetadata) => TParams;
|
|
43
44
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
type TMutationError<TError> = TError | Error | null;
|
|
46
|
+
interface MutateOptions<TData = unknown, TError = unknown, TParams = void, TMetadata = unknown> {
|
|
47
|
+
onSuccess?: (data: TData, variables: TParams, meta?: TMetadata) => void;
|
|
48
|
+
onError?: (error: TMutationError<TError>, variables: TParams, meta?: TMetadata) => void;
|
|
49
|
+
onSettled?: (data: TData | undefined, error: TMutationError<TError> | null, variables: TParams, meta?: TMetadata) => void;
|
|
48
50
|
}
|
|
49
51
|
type MutationStatus = "idle" | "loading" | "success" | "error";
|
|
50
52
|
declare class ComparisonFailError<TPayload = unknown> extends Error {
|
|
51
53
|
readonly payload: TPayload;
|
|
52
54
|
constructor(message: string, payload: TPayload);
|
|
53
55
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* providing extensive API to tap into the status and results of the mutation.
|
|
57
|
-
* @param mutationFn The mutation function to be called when the `mutate` function is called.
|
|
58
|
-
* `useMutation` does not care about what the function does, all it needs it a function that returns
|
|
59
|
-
* a promise.
|
|
60
|
-
* @param options Options to configure the mutation.
|
|
61
|
-
* @returns An object with the following properties:
|
|
62
|
-
* - `mutateAsync`: A function that takes in the variables and returns a promise that resolves to the
|
|
63
|
-
* result of the mutation. This function can be awaited to get the result of the mutation. Callbacks can
|
|
64
|
-
* be passed to this function to be called when the mutation is successful or when it fails. It's good idea
|
|
65
|
-
* to wrap this function in a try/catch block.
|
|
66
|
-
* - `mutate`: A function that takes in the variables and returns nothing. This function does not
|
|
67
|
-
* return a promise. Callbacks can be passed to this function to be called when the mutation is
|
|
68
|
-
* successful or when it fails.
|
|
69
|
-
* - `status`: The status of the mutation. Can be one of `idle`, `loading`, `success` or `error`.
|
|
70
|
-
* - `result`: The result of the mutation. This is undefined until the mutation is successful.
|
|
71
|
-
* - `reset`: A function that resets the mutation to the initial state.
|
|
72
|
-
* - `error`: The error object if the mutation has failed.
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* const mutationRes = useMutation({
|
|
76
|
-
* mutationFn: (variables) => {
|
|
77
|
-
* return ZMQHelper.callSomethingAsync(variables)
|
|
78
|
-
* },
|
|
79
|
-
* onSuccess: (data) => {
|
|
80
|
-
* // do something with the result
|
|
81
|
-
* },
|
|
82
|
-
* onError: (error) => {
|
|
83
|
-
* // do something with the error
|
|
84
|
-
* },
|
|
85
|
-
* onSettled: (data, error) => {
|
|
86
|
-
* // do something when the mutation is done
|
|
87
|
-
* }});
|
|
88
|
-
*
|
|
89
|
-
* // call the mutation
|
|
90
|
-
* const res = await mutationRes.mutateAsync({ foo: "bar" });
|
|
91
|
-
* // OR
|
|
92
|
-
* mutationRes.mutate({ foo: "bar" }, {
|
|
93
|
-
* onSuccess: (data) => {
|
|
94
|
-
* // do something with the result
|
|
95
|
-
* // for example show a toast message
|
|
96
|
-
* // stop local loading state
|
|
97
|
-
* });
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
declare const useMutation: <TData = unknown, TError = unknown, TParams = void>(options: MutationOptions<TData, TError, TParams>) => {
|
|
101
|
-
mutateAsync: (params: TParams, overrideTargetMachine?: string) => Promise<TData>;
|
|
56
|
+
declare const useMutation: <TData = unknown, TError = unknown, TParams = void, TMetadata = unknown>(options: MutationOptions<TData, TError, TParams, TMetadata>) => {
|
|
57
|
+
mutateAsync: (params: TParams, meta?: TMetadata) => Promise<TData>;
|
|
102
58
|
status: MutationStatus;
|
|
103
59
|
result: TData | undefined;
|
|
104
|
-
mutate: (variables: TParams, options?: MutateOptions<TData, TError, TParams> & {
|
|
105
|
-
|
|
60
|
+
mutate: (variables: TParams, options?: MutateOptions<TData, TError, TParams, TMetadata> & {
|
|
61
|
+
meta?: TMetadata;
|
|
106
62
|
}) => void;
|
|
107
63
|
reset: () => void;
|
|
108
|
-
error: TError
|
|
64
|
+
error: TMutationError<TError>;
|
|
109
65
|
};
|
|
110
66
|
|
|
111
67
|
type MutationInfo<TData, TError, TParams> = {
|
|
@@ -114,42 +70,38 @@ type MutationInfo<TData, TError, TParams> = {
|
|
|
114
70
|
params: TParams;
|
|
115
71
|
};
|
|
116
72
|
type FnToParamsBase = Record<string, MutationInfo<unknown, unknown, unknown>>;
|
|
117
|
-
type TPromiseFunction<TResponse, TParams> = (args: Omit<ZMQClient.Call<TResponse, {
|
|
73
|
+
type TPromiseFunction<TResponse, TParams, TExtraParams> = (args: Omit<ZMQClient.Call<TResponse, {
|
|
118
74
|
functionName: string;
|
|
119
75
|
parameters: TParams;
|
|
120
76
|
options?: Omit<TSocketServerCallOptions, "toCallIfNoResponse">;
|
|
121
|
-
}>, "id">
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
mutateAsync: (params: TParams, overrideTargetMachine?: string) => Promise<TData>;
|
|
77
|
+
}>, "id"> & {
|
|
78
|
+
meta?: TExtraParams;
|
|
79
|
+
}) => Promise<TResponse>;
|
|
80
|
+
declare const useCallMutationBase: <TFnToParams extends FnToParamsBase, TData = unknown, TError = unknown, TParams = unknown, TMetadata = unknown>(promiseFunc: TPromiseFunction<TData, TParams, TMetadata>, functionName: keyof TFnToParams, service: (meta?: TMetadata) => string, options?: Omit<MutationOptions<TData, TError, TParams, TMetadata>, "mutationFn">) => {
|
|
81
|
+
mutateAsync: (params: TParams, meta?: TMetadata | undefined) => Promise<TData>;
|
|
127
82
|
status: "idle" | "loading" | "success" | "error";
|
|
128
83
|
result: TData | undefined;
|
|
129
|
-
mutate: (variables: TParams, options?: (MutateOptions<TData, TError, TParams> & {
|
|
130
|
-
|
|
84
|
+
mutate: (variables: TParams, options?: (MutateOptions<TData, TError, TParams, TMetadata> & {
|
|
85
|
+
meta?: TMetadata | undefined;
|
|
131
86
|
}) | undefined) => void;
|
|
132
87
|
reset: () => void;
|
|
133
|
-
error: TError | null;
|
|
88
|
+
error: Error | TError | null;
|
|
134
89
|
};
|
|
135
|
-
declare function buildMutationHook<TFnToParams extends FnToParamsBase>(promiseFunc: TPromiseFunction<unknown, unknown>, genTargetService: (
|
|
136
|
-
|
|
137
|
-
}) => {
|
|
138
|
-
mutateAsync: (params: TFnToParams[TFn]["params"], overrideTargetMachine?: string) => Promise<TFnToParams[TFn]["data"]>;
|
|
90
|
+
declare function buildMutationHook<TFnToParams extends FnToParamsBase, TMetadata = unknown>(promiseFunc: TPromiseFunction<unknown, unknown, unknown>, genTargetService: (meta?: TMetadata) => string): <TFn extends keyof TFnToParams>(func: TFn, options?: Parameters<typeof useCallMutationBase<TFnToParams, TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TMetadata>>[3]) => {
|
|
91
|
+
mutateAsync: (params: TFnToParams[TFn]["params"], meta?: TMetadata | undefined) => Promise<TFnToParams[TFn]["data"]>;
|
|
139
92
|
status: "idle" | "loading" | "success" | "error";
|
|
140
93
|
result: TFnToParams[TFn]["data"] | undefined;
|
|
141
|
-
mutate: (variables: TFnToParams[TFn]["params"], options?: (MutateOptions<TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"]> & {
|
|
142
|
-
|
|
94
|
+
mutate: (variables: TFnToParams[TFn]["params"], options?: (MutateOptions<TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TMetadata> & {
|
|
95
|
+
meta?: TMetadata | undefined;
|
|
143
96
|
}) | undefined) => void;
|
|
144
97
|
reset: () => void;
|
|
145
|
-
error: TFnToParams[TFn]["error"] | null;
|
|
98
|
+
error: Error | TFnToParams[TFn]["error"] | null;
|
|
146
99
|
};
|
|
147
|
-
declare const useCallQueryBase: <TFnToParams extends FnToParamsBase, TData = unknown, TError = unknown, TParams = unknown, TSelect = TData>(promiseFunction: TPromiseFunction<TData, TParams>, functionName: keyof TFnToParams, params: TParams, service: string, options?: Omit<QueryOptions<TData, TError, TParams, TSelect>, "queryFn"> & {
|
|
148
|
-
|
|
149
|
-
customTimeout?: number;
|
|
100
|
+
declare const useCallQueryBase: <TFnToParams extends FnToParamsBase, TData = unknown, TError = unknown, TParams = unknown, TSelect = TData, TMetadata = unknown>(promiseFunction: TPromiseFunction<TData, TParams, TMetadata>, functionName: keyof TFnToParams, params: TParams, service: (meta?: TMetadata) => string, options?: Omit<QueryOptions<TData, TError, TParams, TSelect>, "queryFn"> & {
|
|
101
|
+
meta?: TMetadata;
|
|
150
102
|
}) => UseQueryResult<TSelect, TError, TParams, TSelect, undefined>;
|
|
151
|
-
declare function buildQueryHook<TFnToParams extends FnToParamsBase>(promiseFunction: TPromiseFunction<unknown, unknown>, getTargetService: (
|
|
152
|
-
|
|
103
|
+
declare function buildQueryHook<TFnToParams extends FnToParamsBase, TMetadata = unknown>(promiseFunction: TPromiseFunction<unknown, unknown, unknown>, getTargetService: (meta?: TMetadata) => string): <TFn extends keyof TFnToParams, TSelect = TFnToParams[TFn]["data"]>(func: TFn, params: TFnToParams[TFn]["params"], options?: Parameters<typeof useCallQueryBase<TFnToParams, TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TSelect, TMetadata>>[4] & {
|
|
104
|
+
meta?: TMetadata;
|
|
153
105
|
}) => UseQueryResult<TSelect, TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TSelect, undefined>;
|
|
154
106
|
|
|
155
107
|
/**
|
|
@@ -260,6 +212,8 @@ declare function bindPromiseFunction(clientSocketProxy: ZMQProxyWSClient): (args
|
|
|
260
212
|
functionName: string;
|
|
261
213
|
parameters: unknown;
|
|
262
214
|
options?: Omit<_pixotope_zmq_client.TSocketServerCallOptions, "toCallIfNoResponse">;
|
|
263
|
-
}>, "id">
|
|
215
|
+
}>, "id"> & {
|
|
216
|
+
meta?: unknown;
|
|
217
|
+
}) => Promise<unknown>;
|
|
264
218
|
|
|
265
219
|
export { ComparisonFailError, type Connection, type MessageHandler, type MutateOptions, type MutationFunction, type MutationInfo, type MutationOptions, type QueryOptions, type SubscriptionCoreOptions, type SubscriptionCoreReturnType, type SubscriptionOptions, type TPromiseFunction, type TSubscriptionHandlerFunction, type UseQueryResult, bindClientSocketProxy, bindPromiseFunction, buildMutationHook, buildQueryHook, buildServiceSubscriptionHook, useMutation, useQuery, useSubscription, useSubscriptionCore };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { ZMQClient, TSocketServerCallOptions, ZMQProxyWSClient } from '@pixotope
|
|
|
4
4
|
interface QueryOptions<TData = unknown, TError = unknown, TParams = void, TSelectData = TData, Stateless extends true | undefined = undefined> {
|
|
5
5
|
queryFn: (params: TParams | undefined | void) => Promise<TData>;
|
|
6
6
|
onSuccess?: (data: TData) => Promise<void> | void;
|
|
7
|
-
onError?: (error: TError) => Promise<void> | void;
|
|
8
|
-
onSettled?: (data: TData | undefined, error: TError | undefined) => Promise<void> | void;
|
|
7
|
+
onError?: (error: TQueryError<TError>) => Promise<void> | void;
|
|
8
|
+
onSettled?: (data: TData | undefined, error: TQueryError<TError> | undefined) => Promise<void> | void;
|
|
9
9
|
timeout?: number;
|
|
10
10
|
enabled?: boolean;
|
|
11
11
|
initialData?: TData | Functionize<TData>;
|
|
@@ -22,90 +22,46 @@ type WithData$1<TData> = {
|
|
|
22
22
|
data: TData | undefined;
|
|
23
23
|
};
|
|
24
24
|
type TQueryKey = readonly any[];
|
|
25
|
+
type TQueryError<TError> = TError | Error | null;
|
|
25
26
|
type UseQueryResult<TData = unknown, TError = unknown, TParams = void, TSelectData = TData, Stateless extends true | undefined = undefined> = {
|
|
26
|
-
error: TError
|
|
27
|
+
error: TQueryError<TError>;
|
|
27
28
|
status: QueryStatus;
|
|
28
29
|
refetch: (params: TParams | void | undefined) => Promise<void>;
|
|
29
30
|
reset: () => void;
|
|
30
31
|
} & (Stateless extends true ? {} : WithData$1<TSelectData>);
|
|
31
32
|
declare const useQuery: <TData = unknown, TError = unknown, TParams = void, TSelected = TData, Stateless extends true | undefined = undefined>({ queryFn, ...options }: QueryOptions<TData, TError, TParams, TSelected, Stateless>) => UseQueryResult<TSelected, TError, TParams, TSelected, Stateless>;
|
|
32
33
|
|
|
33
|
-
type MutationFunction<TData = unknown, TParams = unknown> = (params: TParams,
|
|
34
|
-
interface MutationOptions<TData = unknown, TError = unknown, TParams = void> {
|
|
35
|
-
mutationFn: MutationFunction<TData, TParams>;
|
|
34
|
+
type MutationFunction<TData = unknown, TParams = unknown, TMetadata = unknown> = (params: TParams, meta?: TMetadata) => Promise<TData>;
|
|
35
|
+
interface MutationOptions<TData = unknown, TError = unknown, TParams = void, TMetadata = unknown> {
|
|
36
|
+
mutationFn: MutationFunction<TData, TParams, TMetadata>;
|
|
36
37
|
params?: TParams;
|
|
37
|
-
onSuccess?: (data: TData, variables: TParams) => Promise<unknown> | unknown;
|
|
38
|
-
onError?: (error: TError
|
|
39
|
-
onSettled?: (data: TData | undefined, error: TError | null, variables: TParams) => Promise<unknown> | unknown;
|
|
38
|
+
onSuccess?: (data: TData, variables: TParams, meta?: TMetadata) => Promise<unknown> | unknown;
|
|
39
|
+
onError?: (error: TMutationError<TError>, variables: TParams, meta?: TMetadata) => Promise<unknown> | unknown;
|
|
40
|
+
onSettled?: (data: TData | undefined, error: TMutationError<TError> | null, variables: TParams, meta?: TMetadata) => Promise<unknown> | unknown;
|
|
40
41
|
compareOrThrow?: (result: TData | TError) => boolean;
|
|
41
42
|
timeout?: number;
|
|
42
|
-
prepareParams?: (variables: TParams, defaults?: TParams) => TParams;
|
|
43
|
+
prepareParams?: (variables: TParams, defaults?: TParams, meta?: TMetadata) => TParams;
|
|
43
44
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
type TMutationError<TError> = TError | Error | null;
|
|
46
|
+
interface MutateOptions<TData = unknown, TError = unknown, TParams = void, TMetadata = unknown> {
|
|
47
|
+
onSuccess?: (data: TData, variables: TParams, meta?: TMetadata) => void;
|
|
48
|
+
onError?: (error: TMutationError<TError>, variables: TParams, meta?: TMetadata) => void;
|
|
49
|
+
onSettled?: (data: TData | undefined, error: TMutationError<TError> | null, variables: TParams, meta?: TMetadata) => void;
|
|
48
50
|
}
|
|
49
51
|
type MutationStatus = "idle" | "loading" | "success" | "error";
|
|
50
52
|
declare class ComparisonFailError<TPayload = unknown> extends Error {
|
|
51
53
|
readonly payload: TPayload;
|
|
52
54
|
constructor(message: string, payload: TPayload);
|
|
53
55
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* providing extensive API to tap into the status and results of the mutation.
|
|
57
|
-
* @param mutationFn The mutation function to be called when the `mutate` function is called.
|
|
58
|
-
* `useMutation` does not care about what the function does, all it needs it a function that returns
|
|
59
|
-
* a promise.
|
|
60
|
-
* @param options Options to configure the mutation.
|
|
61
|
-
* @returns An object with the following properties:
|
|
62
|
-
* - `mutateAsync`: A function that takes in the variables and returns a promise that resolves to the
|
|
63
|
-
* result of the mutation. This function can be awaited to get the result of the mutation. Callbacks can
|
|
64
|
-
* be passed to this function to be called when the mutation is successful or when it fails. It's good idea
|
|
65
|
-
* to wrap this function in a try/catch block.
|
|
66
|
-
* - `mutate`: A function that takes in the variables and returns nothing. This function does not
|
|
67
|
-
* return a promise. Callbacks can be passed to this function to be called when the mutation is
|
|
68
|
-
* successful or when it fails.
|
|
69
|
-
* - `status`: The status of the mutation. Can be one of `idle`, `loading`, `success` or `error`.
|
|
70
|
-
* - `result`: The result of the mutation. This is undefined until the mutation is successful.
|
|
71
|
-
* - `reset`: A function that resets the mutation to the initial state.
|
|
72
|
-
* - `error`: The error object if the mutation has failed.
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* const mutationRes = useMutation({
|
|
76
|
-
* mutationFn: (variables) => {
|
|
77
|
-
* return ZMQHelper.callSomethingAsync(variables)
|
|
78
|
-
* },
|
|
79
|
-
* onSuccess: (data) => {
|
|
80
|
-
* // do something with the result
|
|
81
|
-
* },
|
|
82
|
-
* onError: (error) => {
|
|
83
|
-
* // do something with the error
|
|
84
|
-
* },
|
|
85
|
-
* onSettled: (data, error) => {
|
|
86
|
-
* // do something when the mutation is done
|
|
87
|
-
* }});
|
|
88
|
-
*
|
|
89
|
-
* // call the mutation
|
|
90
|
-
* const res = await mutationRes.mutateAsync({ foo: "bar" });
|
|
91
|
-
* // OR
|
|
92
|
-
* mutationRes.mutate({ foo: "bar" }, {
|
|
93
|
-
* onSuccess: (data) => {
|
|
94
|
-
* // do something with the result
|
|
95
|
-
* // for example show a toast message
|
|
96
|
-
* // stop local loading state
|
|
97
|
-
* });
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
declare const useMutation: <TData = unknown, TError = unknown, TParams = void>(options: MutationOptions<TData, TError, TParams>) => {
|
|
101
|
-
mutateAsync: (params: TParams, overrideTargetMachine?: string) => Promise<TData>;
|
|
56
|
+
declare const useMutation: <TData = unknown, TError = unknown, TParams = void, TMetadata = unknown>(options: MutationOptions<TData, TError, TParams, TMetadata>) => {
|
|
57
|
+
mutateAsync: (params: TParams, meta?: TMetadata) => Promise<TData>;
|
|
102
58
|
status: MutationStatus;
|
|
103
59
|
result: TData | undefined;
|
|
104
|
-
mutate: (variables: TParams, options?: MutateOptions<TData, TError, TParams> & {
|
|
105
|
-
|
|
60
|
+
mutate: (variables: TParams, options?: MutateOptions<TData, TError, TParams, TMetadata> & {
|
|
61
|
+
meta?: TMetadata;
|
|
106
62
|
}) => void;
|
|
107
63
|
reset: () => void;
|
|
108
|
-
error: TError
|
|
64
|
+
error: TMutationError<TError>;
|
|
109
65
|
};
|
|
110
66
|
|
|
111
67
|
type MutationInfo<TData, TError, TParams> = {
|
|
@@ -114,42 +70,38 @@ type MutationInfo<TData, TError, TParams> = {
|
|
|
114
70
|
params: TParams;
|
|
115
71
|
};
|
|
116
72
|
type FnToParamsBase = Record<string, MutationInfo<unknown, unknown, unknown>>;
|
|
117
|
-
type TPromiseFunction<TResponse, TParams> = (args: Omit<ZMQClient.Call<TResponse, {
|
|
73
|
+
type TPromiseFunction<TResponse, TParams, TExtraParams> = (args: Omit<ZMQClient.Call<TResponse, {
|
|
118
74
|
functionName: string;
|
|
119
75
|
parameters: TParams;
|
|
120
76
|
options?: Omit<TSocketServerCallOptions, "toCallIfNoResponse">;
|
|
121
|
-
}>, "id">
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
mutateAsync: (params: TParams, overrideTargetMachine?: string) => Promise<TData>;
|
|
77
|
+
}>, "id"> & {
|
|
78
|
+
meta?: TExtraParams;
|
|
79
|
+
}) => Promise<TResponse>;
|
|
80
|
+
declare const useCallMutationBase: <TFnToParams extends FnToParamsBase, TData = unknown, TError = unknown, TParams = unknown, TMetadata = unknown>(promiseFunc: TPromiseFunction<TData, TParams, TMetadata>, functionName: keyof TFnToParams, service: (meta?: TMetadata) => string, options?: Omit<MutationOptions<TData, TError, TParams, TMetadata>, "mutationFn">) => {
|
|
81
|
+
mutateAsync: (params: TParams, meta?: TMetadata | undefined) => Promise<TData>;
|
|
127
82
|
status: "idle" | "loading" | "success" | "error";
|
|
128
83
|
result: TData | undefined;
|
|
129
|
-
mutate: (variables: TParams, options?: (MutateOptions<TData, TError, TParams> & {
|
|
130
|
-
|
|
84
|
+
mutate: (variables: TParams, options?: (MutateOptions<TData, TError, TParams, TMetadata> & {
|
|
85
|
+
meta?: TMetadata | undefined;
|
|
131
86
|
}) | undefined) => void;
|
|
132
87
|
reset: () => void;
|
|
133
|
-
error: TError | null;
|
|
88
|
+
error: Error | TError | null;
|
|
134
89
|
};
|
|
135
|
-
declare function buildMutationHook<TFnToParams extends FnToParamsBase>(promiseFunc: TPromiseFunction<unknown, unknown>, genTargetService: (
|
|
136
|
-
|
|
137
|
-
}) => {
|
|
138
|
-
mutateAsync: (params: TFnToParams[TFn]["params"], overrideTargetMachine?: string) => Promise<TFnToParams[TFn]["data"]>;
|
|
90
|
+
declare function buildMutationHook<TFnToParams extends FnToParamsBase, TMetadata = unknown>(promiseFunc: TPromiseFunction<unknown, unknown, unknown>, genTargetService: (meta?: TMetadata) => string): <TFn extends keyof TFnToParams>(func: TFn, options?: Parameters<typeof useCallMutationBase<TFnToParams, TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TMetadata>>[3]) => {
|
|
91
|
+
mutateAsync: (params: TFnToParams[TFn]["params"], meta?: TMetadata | undefined) => Promise<TFnToParams[TFn]["data"]>;
|
|
139
92
|
status: "idle" | "loading" | "success" | "error";
|
|
140
93
|
result: TFnToParams[TFn]["data"] | undefined;
|
|
141
|
-
mutate: (variables: TFnToParams[TFn]["params"], options?: (MutateOptions<TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"]> & {
|
|
142
|
-
|
|
94
|
+
mutate: (variables: TFnToParams[TFn]["params"], options?: (MutateOptions<TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TMetadata> & {
|
|
95
|
+
meta?: TMetadata | undefined;
|
|
143
96
|
}) | undefined) => void;
|
|
144
97
|
reset: () => void;
|
|
145
|
-
error: TFnToParams[TFn]["error"] | null;
|
|
98
|
+
error: Error | TFnToParams[TFn]["error"] | null;
|
|
146
99
|
};
|
|
147
|
-
declare const useCallQueryBase: <TFnToParams extends FnToParamsBase, TData = unknown, TError = unknown, TParams = unknown, TSelect = TData>(promiseFunction: TPromiseFunction<TData, TParams>, functionName: keyof TFnToParams, params: TParams, service: string, options?: Omit<QueryOptions<TData, TError, TParams, TSelect>, "queryFn"> & {
|
|
148
|
-
|
|
149
|
-
customTimeout?: number;
|
|
100
|
+
declare const useCallQueryBase: <TFnToParams extends FnToParamsBase, TData = unknown, TError = unknown, TParams = unknown, TSelect = TData, TMetadata = unknown>(promiseFunction: TPromiseFunction<TData, TParams, TMetadata>, functionName: keyof TFnToParams, params: TParams, service: (meta?: TMetadata) => string, options?: Omit<QueryOptions<TData, TError, TParams, TSelect>, "queryFn"> & {
|
|
101
|
+
meta?: TMetadata;
|
|
150
102
|
}) => UseQueryResult<TSelect, TError, TParams, TSelect, undefined>;
|
|
151
|
-
declare function buildQueryHook<TFnToParams extends FnToParamsBase>(promiseFunction: TPromiseFunction<unknown, unknown>, getTargetService: (
|
|
152
|
-
|
|
103
|
+
declare function buildQueryHook<TFnToParams extends FnToParamsBase, TMetadata = unknown>(promiseFunction: TPromiseFunction<unknown, unknown, unknown>, getTargetService: (meta?: TMetadata) => string): <TFn extends keyof TFnToParams, TSelect = TFnToParams[TFn]["data"]>(func: TFn, params: TFnToParams[TFn]["params"], options?: Parameters<typeof useCallQueryBase<TFnToParams, TFnToParams[TFn]["data"], TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TSelect, TMetadata>>[4] & {
|
|
104
|
+
meta?: TMetadata;
|
|
153
105
|
}) => UseQueryResult<TSelect, TFnToParams[TFn]["error"], TFnToParams[TFn]["params"], TSelect, undefined>;
|
|
154
106
|
|
|
155
107
|
/**
|
|
@@ -260,6 +212,8 @@ declare function bindPromiseFunction(clientSocketProxy: ZMQProxyWSClient): (args
|
|
|
260
212
|
functionName: string;
|
|
261
213
|
parameters: unknown;
|
|
262
214
|
options?: Omit<_pixotope_zmq_client.TSocketServerCallOptions, "toCallIfNoResponse">;
|
|
263
|
-
}>, "id">
|
|
215
|
+
}>, "id"> & {
|
|
216
|
+
meta?: unknown;
|
|
217
|
+
}) => Promise<unknown>;
|
|
264
218
|
|
|
265
219
|
export { ComparisonFailError, type Connection, type MessageHandler, type MutateOptions, type MutationFunction, type MutationInfo, type MutationOptions, type QueryOptions, type SubscriptionCoreOptions, type SubscriptionCoreReturnType, type SubscriptionOptions, type TPromiseFunction, type TSubscriptionHandlerFunction, type UseQueryResult, bindClientSocketProxy, bindPromiseFunction, buildMutationHook, buildQueryHook, buildServiceSubscriptionHook, useMutation, useQuery, useSubscription, useSubscriptionCore };
|