@tanstack/db
Version:
A reactive client store for building super fast apps on sync
1 lines • 1.75 kB
Source Map (JSON)
{"version":3,"file":"transaction-commit-work.cjs","sources":["../../src/transaction-commit-work.ts"],"sourcesContent":["/** Work registered while a mutation function runs must settle before that\n * transaction reports completion. The returned Promise remains the caller's\n * error channel; observing its rejection here also protects callers that use\n * the older un-awaited manual acceptance pattern. */\nconst commitWork = new WeakMap<object, Array<Promise<unknown>>>()\n\nexport function registerTransactionCommitWork(\n transaction: object,\n work: Promise<unknown>,\n): void {\n if (!('state' in transaction) || transaction.state !== `persisting`) return\n const registered = commitWork.get(transaction) ?? []\n registered.push(work)\n commitWork.set(transaction, registered)\n void work.catch(() => undefined)\n}\n\nexport function takeTransactionCommitWork(\n transaction: object,\n): Promise<void> | undefined {\n const registered = commitWork.get(transaction)\n if (!registered) return\n commitWork.delete(transaction)\n return Promise.allSettled(registered).then((results) => {\n const failure = results.find((result) => result.status === `rejected`)\n if (failure?.status === `rejected`) throw failure.reason\n })\n}\n"],"names":[],"mappings":";;AAIA,MAAM,iCAAiB,QAAA;AAEhB,SAAS,8BACd,aACA,MACM;AACN,MAAI,EAAE,WAAW,gBAAgB,YAAY,UAAU,aAAc;AACrE,QAAM,aAAa,WAAW,IAAI,WAAW,KAAK,CAAA;AAClD,aAAW,KAAK,IAAI;AACpB,aAAW,IAAI,aAAa,UAAU;AACtC,OAAK,KAAK,MAAM,MAAM,MAAS;AACjC;AAEO,SAAS,0BACd,aAC2B;AAC3B,QAAM,aAAa,WAAW,IAAI,WAAW;AAC7C,MAAI,CAAC,WAAY;AACjB,aAAW,OAAO,WAAW;AAC7B,SAAO,QAAQ,WAAW,UAAU,EAAE,KAAK,CAAC,YAAY;AACtD,UAAM,UAAU,QAAQ,KAAK,CAAC,WAAW,OAAO,WAAW,UAAU;AACrE,QAAI,SAAS,WAAW,WAAY,OAAM,QAAQ;AAAA,EACpD,CAAC;AACH;;;"}