import type { MutationOptions } from '@tanstack/query-core' import { type SwitchConnectionErrorType, type SwitchConnectionParameters, type SwitchConnectionReturnType, switchConnection, } from '../actions/switchConnection.js' import type { Config } from '../createConfig.js' import type { MutationParameter } from '../types/query.js' import type { Compute } from '../types/utils.js' import type { Mutate, MutateAsync } from './types.js' export type SwitchConnectionOptions< config extends Config, context = unknown, > = MutationParameter< SwitchConnectionData, SwitchConnectionErrorType, SwitchConnectionVariables, context > export function switchConnectionMutationOptions( config: config, options: SwitchConnectionOptions = {}, ): SwitchConnectionMutationOptions { return { ...(options.mutation as any), mutationFn(variables) { return switchConnection(config, variables) }, mutationKey: ['switchConnection'], } } export type SwitchConnectionMutationOptions = MutationOptions< SwitchConnectionData, SwitchConnectionErrorType, SwitchConnectionVariables > export type SwitchConnectionData = Compute< SwitchConnectionReturnType > export type SwitchConnectionVariables = Compute export type SwitchConnectionMutate< config extends Config, context = unknown, > = Mutate< SwitchConnectionData, SwitchConnectionErrorType, SwitchConnectionVariables, context > export type SwitchConnectionMutateAsync< config extends Config, context = unknown, > = MutateAsync< SwitchConnectionData, SwitchConnectionErrorType, SwitchConnectionVariables, context >