@tanstack/angular-query-experimental
Version:
Signals for managing, caching and syncing asynchronous and remote data in Angular
39 lines (38 loc) • 1.38 kB
TypeScript
import { DefaultError, MutationObserverOptions, OmitKeyof } from '@tanstack/query-core';
/**
* Allows to share and re-use mutation options in a type-safe way.
*
* **Example**
*
* ```ts
* export class QueriesService {
* private http = inject(HttpClient);
*
* updatePost(id: number) {
* return mutationOptions({
* mutationFn: (post: Post) => Promise.resolve(post),
* mutationKey: ["updatePost", id],
* onSuccess: (newPost) => {
* // ^? newPost: Post
* this.queryClient.setQueryData(["posts", id], newPost);
* },
* });
* }
* }
*
* queries = inject(QueriesService)
* idSignal = new Signal(0);
* mutation = injectMutation(() => this.queries.updatePost(this.idSignal()))
*
* mutation.mutate({ title: 'New Title' })
* ```
* @param options - The mutation options.
* @returns Mutation options.
* @public
*/
export declare function mutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown>(options: MutationObserverOptions<TData, TError, TVariables, TContext>): CreateMutationOptions<TData, TError, TVariables, TContext>;
/**
* @public
*/
export interface CreateMutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends OmitKeyof<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted'> {
}