UNPKG

@tanstack/offline-transactions

Version:

Offline-first transaction capabilities for TanStack DB

43 lines (42 loc) 1.4 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; console.log(`createOfflineAction 2`, options); return (variables) => { const offlineTransaction = new OfflineTransaction.OfflineTransaction( { mutationFnName, autoCommit: false }, mutationFn, persistTransaction, executor ); const transaction = offlineTransaction.mutate(() => { console.log(`mutate`); const maybePromise = onMutate(variables); if (isPromiseLike(maybePromise)) { throw new db.OnMutateMustBeSynchronousError(); } }); const commitPromise = (async () => { try { await transaction.commit(); console.log(`offlineAction committed - success`); } catch { console.log(`offlineAction commit failed - error`); } })(); commitPromise.catch(() => { }); return transaction; }; } exports.createOfflineAction = createOfflineAction; //# sourceMappingURL=OfflineAction.cjs.map