@openapi-qraft/react
Version:
OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.
33 lines (30 loc) • 1.56 kB
JavaScript
'use client';
import { useMutation as useMutation$1 } from '@tanstack/react-query';
import { composeMutationKey } from '../lib/composeMutationKey.js';
import { requestFnResponseRejecter } from '../lib/requestFnResponseRejecter.js';
import { requestFnResponseResolver } from '../lib/requestFnResponseResolver.js';
const useMutation = (qraftOptions, schema, args)=>{
const [parameters, options] = args;
if (parameters && typeof parameters === 'object' && options && 'mutationKey' in options) throw new Error(`'useMutation': parameters and 'options.mutationKey' cannot be used together`);
const mutationKey = options && 'mutationKey' in options ? options.mutationKey : composeMutationKey(schema, parameters);
return useMutation$1({
...options,
mutationKey,
mutationFn: options?.mutationFn ?? (parameters ? function(bodyPayload) {
return qraftOptions.requestFn(schema, {
parameters,
baseUrl: qraftOptions.baseUrl,
body: bodyPayload
}).then(requestFnResponseResolver, requestFnResponseRejecter);
} : function(parametersAndBodyPayload) {
const { body, ...parameters } = parametersAndBodyPayload;
return qraftOptions.requestFn(schema, {
parameters,
baseUrl: qraftOptions.baseUrl,
body
}).then(requestFnResponseResolver, requestFnResponseRejecter);
})
}, qraftOptions.queryClient);
};
export { useMutation };
//# sourceMappingURL=useMutation.js.map