UNPKG

@tanstack/offline-transactions

Version:

Offline-first transaction capabilities for TanStack DB

32 lines (31 loc) • 1.11 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const db = require("@tanstack/db"); const OfflineTransaction = require("./OfflineTransaction.cjs"); function isPromiseLike(value) { return !!value && (typeof value === `object` || typeof value === `function`) && typeof value.then === `function`; } function createOfflineAction(options, mutationFn, persistTransaction, executor) { const { mutationFnName, onMutate } = options; return (variables) => { const offlineTransaction = new OfflineTransaction.OfflineTransaction( { mutationFnName, // The transaction commits after onMutate and reports a failure // through `when('settled')`. autoCommit: true }, mutationFn, persistTransaction, executor ); return offlineTransaction.mutate(() => { const maybePromise = onMutate(variables); if (isPromiseLike(maybePromise)) { throw new db.OnMutateMustBeSynchronousError(); } }); }; } exports.createOfflineAction = createOfflineAction; //# sourceMappingURL=OfflineAction.cjs.map