UNPKG

@preact-signals/query

Version:

A reactive utility for React/Preact that simplifies the handling of data fetching and state management. Powered by Preact Signals, it provides hooks and functions to create reactive resources and manage their state seamlessly.

62 lines 2.94 kB
"use strict"; 'use client'; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.useMutation = useMutation; const React = __importStar(require("react")); const useSyncExternalStore_ts_1 = require("./useSyncExternalStore.js"); const query_core_1 = require("@tanstack/query-core"); const QueryClientProvider_tsx_1 = require("./QueryClientProvider.js"); const utils_ts_1 = require("./utils.js"); function useMutation(arg1, arg2, arg3) { const options = (0, query_core_1.parseMutationArgs)(arg1, arg2, arg3); const queryClient = (0, QueryClientProvider_tsx_1.useQueryClient)({ context: options.context }); const [observer] = React.useState(() => new query_core_1.MutationObserver(queryClient, options)); React.useEffect(() => { observer.setOptions(options); }, [observer, options]); const result = (0, useSyncExternalStore_ts_1.useSyncExternalStore)(React.useCallback((onStoreChange) => observer.subscribe(query_core_1.notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult()); const mutate = React.useCallback((variables, mutateOptions) => { observer.mutate(variables, mutateOptions).catch(noop); }, [observer]); if (result.error && (0, utils_ts_1.shouldThrowError)(observer.options.useErrorBoundary, [result.error])) { throw result.error; } return { ...result, mutate, mutateAsync: result.mutate }; } // eslint-disable-next-line @typescript-eslint/no-empty-function function noop() { } //# sourceMappingURL=useMutation.js.map