@openapi-qraft/react
Version:
OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.
35 lines (31 loc) • 1.7 kB
JavaScript
'use client';
;
var reactQuery = require('@tanstack/react-query');
var composeMutationKey = require('../lib/composeMutationKey.cjs');
var requestFnResponseRejecter = require('../lib/requestFnResponseRejecter.cjs');
var requestFnResponseResolver = require('../lib/requestFnResponseResolver.cjs');
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.composeMutationKey(schema, parameters);
return reactQuery.useMutation({
...options,
mutationKey,
mutationFn: options?.mutationFn ?? (parameters ? function(bodyPayload) {
return qraftOptions.requestFn(schema, {
parameters,
baseUrl: qraftOptions.baseUrl,
body: bodyPayload
}).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter);
} : function(parametersAndBodyPayload) {
const { body, ...parameters } = parametersAndBodyPayload;
return qraftOptions.requestFn(schema, {
parameters,
baseUrl: qraftOptions.baseUrl,
body
}).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter);
})
}, qraftOptions.queryClient);
};
exports.useMutation = useMutation;
//# sourceMappingURL=useMutation.cjs.map