UNPKG

@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
'use client'; 'use strict'; 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