@tanstack/query-core 5.0.0-alpha.81 → 5.0.0-alpha.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/hydration.cjs +12 -4
- package/build/lib/hydration.cjs.map +1 -1
- package/build/lib/hydration.d.ts +3 -1
- package/build/lib/hydration.d.ts.map +1 -1
- package/build/lib/hydration.js +12 -4
- package/build/lib/hydration.js.map +1 -1
- package/build/lib/hydration.legacy.cjs +12 -4
- package/build/lib/hydration.legacy.cjs.map +1 -1
- package/build/lib/hydration.legacy.js +12 -4
- package/build/lib/hydration.legacy.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.cjs.map +1 -1
- package/build/lib/infiniteQueryBehavior.d.ts.map +1 -1
- package/build/lib/infiniteQueryBehavior.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.legacy.cjs.map +1 -1
- package/build/lib/infiniteQueryBehavior.legacy.js.map +1 -1
- package/build/lib/infiniteQueryObserver.cjs.map +1 -1
- package/build/lib/infiniteQueryObserver.d.ts +2 -2
- package/build/lib/infiniteQueryObserver.d.ts.map +1 -1
- package/build/lib/infiniteQueryObserver.js.map +1 -1
- package/build/lib/infiniteQueryObserver.legacy.cjs.map +1 -1
- package/build/lib/infiniteQueryObserver.legacy.js.map +1 -1
- package/build/lib/mutation.cjs.map +1 -1
- package/build/lib/mutation.d.ts +2 -2
- package/build/lib/mutation.d.ts.map +1 -1
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutation.legacy.cjs.map +1 -1
- package/build/lib/mutation.legacy.js.map +1 -1
- package/build/lib/mutationCache.cjs.map +1 -1
- package/build/lib/mutationCache.d.ts +3 -3
- package/build/lib/mutationCache.d.ts.map +1 -1
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationCache.legacy.cjs.map +1 -1
- package/build/lib/mutationCache.legacy.js.map +1 -1
- package/build/lib/mutationObserver.cjs.map +1 -1
- package/build/lib/mutationObserver.d.ts +3 -3
- package/build/lib/mutationObserver.d.ts.map +1 -1
- package/build/lib/mutationObserver.js.map +1 -1
- package/build/lib/mutationObserver.legacy.cjs.map +1 -1
- package/build/lib/mutationObserver.legacy.js.map +1 -1
- package/build/lib/queriesObserver.cjs.map +1 -1
- package/build/lib/queriesObserver.d.ts +2 -2
- package/build/lib/queriesObserver.d.ts.map +1 -1
- package/build/lib/queriesObserver.js.map +1 -1
- package/build/lib/queriesObserver.legacy.cjs.map +1 -1
- package/build/lib/queriesObserver.legacy.js.map +1 -1
- package/build/lib/query.cjs.map +1 -1
- package/build/lib/query.d.ts +2 -2
- package/build/lib/query.d.ts.map +1 -1
- package/build/lib/query.js.map +1 -1
- package/build/lib/query.legacy.cjs.map +1 -1
- package/build/lib/query.legacy.js.map +1 -1
- package/build/lib/queryCache.cjs.map +1 -1
- package/build/lib/queryCache.d.ts +3 -3
- package/build/lib/queryCache.d.ts.map +1 -1
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.legacy.cjs.map +1 -1
- package/build/lib/queryCache.legacy.js.map +1 -1
- package/build/lib/queryClient.cjs.map +1 -1
- package/build/lib/queryClient.d.ts +3 -3
- package/build/lib/queryClient.d.ts.map +1 -1
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.legacy.cjs.map +1 -1
- package/build/lib/queryClient.legacy.js.map +1 -1
- package/build/lib/queryObserver.cjs.map +1 -1
- package/build/lib/queryObserver.d.ts +3 -3
- package/build/lib/queryObserver.d.ts.map +1 -1
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/queryObserver.legacy.cjs.map +1 -1
- package/build/lib/queryObserver.legacy.js.map +1 -1
- package/build/lib/retryer.cjs.map +1 -1
- package/build/lib/retryer.d.ts +1 -1
- package/build/lib/retryer.d.ts.map +1 -1
- package/build/lib/retryer.js.map +1 -1
- package/build/lib/retryer.legacy.cjs.map +1 -1
- package/build/lib/retryer.legacy.js.map +1 -1
- package/build/lib/tests/utils.d.ts +4 -3
- package/build/lib/tests/utils.d.ts.map +1 -1
- package/build/lib/types.d.ts +2 -2
- package/build/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hydration.ts +8 -0
- package/src/infiniteQueryBehavior.ts +1 -1
- package/src/infiniteQueryObserver.ts +7 -7
- package/src/mutation.ts +5 -5
- package/src/mutationCache.ts +5 -5
- package/src/mutationObserver.ts +5 -5
- package/src/queriesObserver.ts +4 -4
- package/src/query.ts +8 -8
- package/src/queryCache.ts +5 -5
- package/src/queryClient.ts +14 -14
- package/src/queryObserver.ts +13 -13
- package/src/retryer.ts +1 -1
- package/src/tests/focusManager.test.tsx +1 -1
- package/src/tests/hydration.test.tsx +114 -3
- package/src/tests/infiniteQueryBehavior.test.tsx +3 -3
- package/src/tests/infiniteQueryObserver.test.tsx +2 -2
- package/src/tests/mutationCache.test.tsx +2 -2
- package/src/tests/mutationObserver.test.tsx +2 -2
- package/src/tests/mutations.test.tsx +4 -4
- package/src/tests/notifyManager.test.tsx +1 -1
- package/src/tests/onlineManager.test.tsx +1 -1
- package/src/tests/queriesObserver.test.tsx +3 -3
- package/src/tests/query.test.tsx +6 -6
- package/src/tests/queryCache.test.tsx +2 -2
- package/src/tests/queryClient.test.tsx +10 -10
- package/src/tests/queryObserver.test.tsx +3 -3
- package/src/tests/utils.test.tsx +6 -6
- package/src/tests/utils.ts +6 -4
- package/src/types.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infiniteQueryObserver.cjs","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n
|
|
1
|
+
{"version":3,"file":"infiniteQueryObserver.cjs","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type {\n DefaultError,\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n"],"names":["InfiniteQueryObserver","QueryObserver","constructor","client","options","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","infiniteQueryBehavior","getOptimisticResult","fetch","meta","fetchMore","direction","createResult","query","state","result","isFetching","isRefetching","isFetchingNextPage","fetchMeta","isFetchingPreviousPage","hasNextPage","data","hasPreviousPage"],"mappings":";;;;;AAwBO,MAAMA,qBAAqB,SAOxBC,2BAAa,CAMrB;AACA;;AAKA;;AAGA;;AAKA;AACAC,EAAAA,WAAWA,CACTC,MAAmB,EACnBC,OAOC,EACD;AACA,IAAA,KAAK,CAACD,MAAM,EAAEC,OAAO,CAAC,CAAA;AACxB,GAAA;AAEUC,EAAAA,WAAWA,GAAS;IAC5B,KAAK,CAACA,WAAW,EAAE,CAAA;IACnB,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5D,GAAA;AAEAE,EAAAA,UAAUA,CACRL,OAOC,EACDM,aAA6B,EACvB;IACN,KAAK,CAACD,UAAU,CACd;AACE,MAAA,GAAGL,OAAO;MACVO,QAAQ,EAAEC,2CAAqB,EAAC;KACjC,EACDF,aACF,CAAC,CAAA;AACH,GAAA;EAEAG,mBAAmBA,CACjBT,OAOC,EAC2C;AAC5CA,IAAAA,OAAO,CAACO,QAAQ,GAAGC,2CAAqB,EAAE,CAAA;AAC1C,IAAA,OAAO,KAAK,CAACC,mBAAmB,CAACT,OAAO,CAAC,CAAA;AAI3C,GAAA;EAEAE,aAAaA,CACXF,OAA8B,EACuB;IACrD,OAAO,IAAI,CAACU,KAAK,CAAC;AAChB,MAAA,GAAGV,OAAO;AACVW,MAAAA,IAAI,EAAE;AACJC,QAAAA,SAAS,EAAE;AAAEC,UAAAA,SAAS,EAAE,SAAA;AAAU,SAAA;AACpC,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAT,iBAAiBA,CACfJ,OAAkC,EACmB;IACrD,OAAO,IAAI,CAACU,KAAK,CAAC;AAChB,MAAA,GAAGV,OAAO;AACVW,MAAAA,IAAI,EAAE;AACJC,QAAAA,SAAS,EAAE;AAAEC,UAAAA,SAAS,EAAE,UAAA;AAAW,SAAA;AACrC,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AAEUC,EAAAA,YAAYA,CACpBC,KAAuE,EACvEf,OAOC,EAC2C;IAC5C,MAAM;AAAEgB,MAAAA,KAAAA;AAAM,KAAC,GAAGD,KAAK,CAAA;IACvB,MAAME,MAAM,GAAG,KAAK,CAACH,YAAY,CAACC,KAAK,EAAEf,OAAO,CAAC,CAAA;IAEjD,MAAM;MAAEkB,UAAU;AAAEC,MAAAA,YAAAA;AAAa,KAAC,GAAGF,MAAM,CAAA;AAE3C,IAAA,MAAMG,kBAAkB,GACtBF,UAAU,IAAIF,KAAK,CAACK,SAAS,EAAET,SAAS,EAAEC,SAAS,KAAK,SAAS,CAAA;AAEnE,IAAA,MAAMS,sBAAsB,GAC1BJ,UAAU,IAAIF,KAAK,CAACK,SAAS,EAAET,SAAS,EAAEC,SAAS,KAAK,UAAU,CAAA;IAEpE,OAAO;AACL,MAAA,GAAGI,MAAM;MACTf,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCE,iBAAiB,EAAE,IAAI,CAACA,iBAAiB;MACzCmB,WAAW,EAAEA,iCAAW,CAACvB,OAAO,EAAEgB,KAAK,CAACQ,IAAI,CAAC;MAC7CC,eAAe,EAAEA,qCAAe,CAACzB,OAAO,EAAEgB,KAAK,CAACQ,IAAI,CAAC;MACrDJ,kBAAkB;MAClBE,sBAAsB;AACtBH,MAAAA,YAAY,EACVA,YAAY,IAAI,CAACC,kBAAkB,IAAI,CAACE,sBAAAA;KAC3C,CAAA;AACH,GAAA;AACF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { QueryObserver } from './queryObserver';
|
|
2
|
+
import type { DefaultError, DefaultedInfiniteQueryObserverOptions, FetchNextPageOptions, FetchPreviousPageOptions, InfiniteData, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryKey } from './types';
|
|
2
3
|
import type { QueryClient } from './queryClient';
|
|
3
4
|
import type { NotifyOptions, ObserverFetchOptions } from './queryObserver';
|
|
4
|
-
import { QueryObserver } from './queryObserver';
|
|
5
5
|
import type { Query } from './query';
|
|
6
6
|
type InfiniteQueryObserverListener<TData, TError> = (result: InfiniteQueryObserverResult<TData, TError>) => void;
|
|
7
7
|
export declare class InfiniteQueryObserver<TQueryFnData = unknown, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends QueryObserver<TQueryFnData, TError, TData, InfiniteData<TQueryData>, TQueryKey> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infiniteQueryObserver.d.ts","sourceRoot":"","sources":["../../src/infiniteQueryObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qCAAqC,EACrC,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,4BAA4B,EAC5B,2BAA2B,EAC3B,QAAQ,
|
|
1
|
+
{"version":3,"file":"infiniteQueryObserver.d.ts","sourceRoot":"","sources":["../../src/infiniteQueryObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAM/C,OAAO,KAAK,EACV,YAAY,EACZ,qCAAqC,EACrC,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,4BAA4B,EAC5B,2BAA2B,EAC3B,QAAQ,EACT,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,KAAK,6BAA6B,CAAC,KAAK,EAAE,MAAM,IAAI,CAClD,MAAM,EAAE,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,KAC/C,IAAI,CAAA;AAET,qBAAa,qBAAqB,CAChC,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,EAClC,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,UAAU,GAAG,OAAO,CACpB,SAAQ,aAAa,CACrB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,YAAY,CAAC,UAAU,CAAC,EACxB,SAAS,CACV;IAEC,SAAS,EAAG,CACV,QAAQ,CAAC,EAAE,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,KACpD,MAAM,IAAI,CAAA;IAGf,gBAAgB,EAAG,MAAM,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAGnE,SAAS,CAAC,KAAK,EAAG,CAChB,YAAY,EAAE,oBAAoB,KAC/B,OAAO,CAAC,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;gBAItD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,4BAA4B,CACnC,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX;IAKH,SAAS,CAAC,WAAW,IAAI,IAAI;IAM7B,UAAU,CACR,OAAO,CAAC,EAAE,4BAA4B,CACpC,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,EACD,aAAa,CAAC,EAAE,aAAa,GAC5B,IAAI;IAUP,mBAAmB,CACjB,OAAO,EAAE,qCAAqC,CAC5C,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,GACA,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC;IAQ7C,aAAa,CACX,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAStD,iBAAiB,CACf,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAStD,SAAS,CAAC,YAAY,CACpB,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EACvE,OAAO,EAAE,4BAA4B,CACnC,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,GACA,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC;CAwB9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infiniteQueryObserver.js","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n
|
|
1
|
+
{"version":3,"file":"infiniteQueryObserver.js","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type {\n DefaultError,\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n"],"names":["InfiniteQueryObserver","QueryObserver","constructor","client","options","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","infiniteQueryBehavior","getOptimisticResult","fetch","meta","fetchMore","direction","createResult","query","state","result","isFetching","isRefetching","isFetchingNextPage","fetchMeta","isFetchingPreviousPage","hasNextPage","data","hasPreviousPage"],"mappings":";;;AAwBO,MAAMA,qBAAqB,SAOxBC,aAAa,CAMrB;AACA;;AAKA;;AAGA;;AAKA;AACAC,EAAAA,WAAWA,CACTC,MAAmB,EACnBC,OAOC,EACD;AACA,IAAA,KAAK,CAACD,MAAM,EAAEC,OAAO,CAAC,CAAA;AACxB,GAAA;AAEUC,EAAAA,WAAWA,GAAS;IAC5B,KAAK,CAACA,WAAW,EAAE,CAAA;IACnB,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5D,GAAA;AAEAE,EAAAA,UAAUA,CACRL,OAOC,EACDM,aAA6B,EACvB;IACN,KAAK,CAACD,UAAU,CACd;AACE,MAAA,GAAGL,OAAO;MACVO,QAAQ,EAAEC,qBAAqB,EAAC;KACjC,EACDF,aACF,CAAC,CAAA;AACH,GAAA;EAEAG,mBAAmBA,CACjBT,OAOC,EAC2C;AAC5CA,IAAAA,OAAO,CAACO,QAAQ,GAAGC,qBAAqB,EAAE,CAAA;AAC1C,IAAA,OAAO,KAAK,CAACC,mBAAmB,CAACT,OAAO,CAAC,CAAA;AAI3C,GAAA;EAEAE,aAAaA,CACXF,OAA8B,EACuB;IACrD,OAAO,IAAI,CAACU,KAAK,CAAC;AAChB,MAAA,GAAGV,OAAO;AACVW,MAAAA,IAAI,EAAE;AACJC,QAAAA,SAAS,EAAE;AAAEC,UAAAA,SAAS,EAAE,SAAA;AAAU,SAAA;AACpC,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAT,iBAAiBA,CACfJ,OAAkC,EACmB;IACrD,OAAO,IAAI,CAACU,KAAK,CAAC;AAChB,MAAA,GAAGV,OAAO;AACVW,MAAAA,IAAI,EAAE;AACJC,QAAAA,SAAS,EAAE;AAAEC,UAAAA,SAAS,EAAE,UAAA;AAAW,SAAA;AACrC,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AAEUC,EAAAA,YAAYA,CACpBC,KAAuE,EACvEf,OAOC,EAC2C;IAC5C,MAAM;AAAEgB,MAAAA,KAAAA;AAAM,KAAC,GAAGD,KAAK,CAAA;IACvB,MAAME,MAAM,GAAG,KAAK,CAACH,YAAY,CAACC,KAAK,EAAEf,OAAO,CAAC,CAAA;IAEjD,MAAM;MAAEkB,UAAU;AAAEC,MAAAA,YAAAA;AAAa,KAAC,GAAGF,MAAM,CAAA;AAE3C,IAAA,MAAMG,kBAAkB,GACtBF,UAAU,IAAIF,KAAK,CAACK,SAAS,EAAET,SAAS,EAAEC,SAAS,KAAK,SAAS,CAAA;AAEnE,IAAA,MAAMS,sBAAsB,GAC1BJ,UAAU,IAAIF,KAAK,CAACK,SAAS,EAAET,SAAS,EAAEC,SAAS,KAAK,UAAU,CAAA;IAEpE,OAAO;AACL,MAAA,GAAGI,MAAM;MACTf,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCE,iBAAiB,EAAE,IAAI,CAACA,iBAAiB;MACzCmB,WAAW,EAAEA,WAAW,CAACvB,OAAO,EAAEgB,KAAK,CAACQ,IAAI,CAAC;MAC7CC,eAAe,EAAEA,eAAe,CAACzB,OAAO,EAAEgB,KAAK,CAACQ,IAAI,CAAC;MACrDJ,kBAAkB;MAClBE,sBAAsB;AACtBH,MAAAA,YAAY,EACVA,YAAY,IAAI,CAACC,kBAAkB,IAAI,CAACE,sBAAAA;KAC3C,CAAA;AACH,GAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infiniteQueryObserver.legacy.cjs","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n
|
|
1
|
+
{"version":3,"file":"infiniteQueryObserver.legacy.cjs","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type {\n DefaultError,\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n"],"names":["InfiniteQueryObserver","QueryObserver","constructor","client","options","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","infiniteQueryBehavior","getOptimisticResult","fetch","meta","fetchMore","direction","createResult","query","_state$fetchMeta","_state$fetchMeta$fetc","_state$fetchMeta2","_state$fetchMeta2$fet","state","result","isFetching","isRefetching","isFetchingNextPage","fetchMeta","isFetchingPreviousPage","hasNextPage","data","hasPreviousPage"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infiniteQueryObserver.legacy.js","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n
|
|
1
|
+
{"version":3,"file":"infiniteQueryObserver.legacy.js","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type {\n DefaultError,\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n"],"names":["InfiniteQueryObserver","QueryObserver","constructor","client","options","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","infiniteQueryBehavior","getOptimisticResult","fetch","meta","fetchMore","direction","createResult","query","_state$fetchMeta","_state$fetchMeta$fetc","_state$fetchMeta2","_state$fetchMeta2$fet","state","result","isFetching","isRefetching","isFetchingNextPage","fetchMeta","isFetchingPreviousPage","hasNextPage","data","hasPreviousPage"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.cjs","sources":["../../src/mutation.ts"],"sourcesContent":["import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","mutationId","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","execute","variables","executeMutation","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","undefined","#dispatch","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutation.cjs","sources":["../../src/mutation.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { canFetch, createRetryer } from './retryer'\nimport type {\n DefaultError,\n MutationMeta,\n MutationOptions,\n MutationStatus,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","mutationId","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","execute","variables","executeMutation","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","undefined","#dispatch","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
package/build/lib/mutation.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Removable } from './removable';
|
|
2
|
+
import type { DefaultError, MutationMeta, MutationOptions, MutationStatus } from './types';
|
|
2
3
|
import type { MutationCache } from './mutationCache';
|
|
3
4
|
import type { MutationObserver } from './mutationObserver';
|
|
4
|
-
import { Removable } from './removable';
|
|
5
5
|
interface MutationConfig<TData, TError, TVariables, TContext> {
|
|
6
6
|
mutationId: number;
|
|
7
7
|
mutationCache: MutationCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../../src/mutation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../../src/mutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","mutationId","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","execute","variables","executeMutation","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","undefined","#dispatch","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { canFetch, createRetryer } from './retryer'\nimport type {\n DefaultError,\n MutationMeta,\n MutationOptions,\n MutationStatus,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","mutationId","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","execute","variables","executeMutation","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","undefined","#dispatch","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.legacy.cjs","sources":["../../src/mutation.ts"],"sourcesContent":["import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n"],"names":["_observers","_classPrivateFieldLooseKey","_defaultOptions","_mutationCache","_retryer","_dispatch","Mutation","Removable","constructor","config","Object","defineProperty","value","_dispatch2","writable","mutationId","_classPrivateFieldLooseBase","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","_classPrivateFieldLoo","_classPrivateFieldLoo2","execute","variables","executeMutation","_this$options$retry","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","_classPrivateFieldLoo5","_classPrivateFieldLoo6","_this$options$onSucce","_this$options2","_classPrivateFieldLoo7","_classPrivateFieldLoo8","_this$options$onSettl","_this$options3","_classPrivateFieldLoo3","_classPrivateFieldLoo4","_this$options$onMutat","_this$options","onMutate","call","context","data","onSuccess","onSettled","_classPrivateFieldLoo9","_classPrivateFieldLoo10","_this$options$onError","_this$options4","_classPrivateFieldLoo11","_classPrivateFieldLoo12","_this$options$onSettl2","_this$options5","onError","undefined","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutation.legacy.cjs","sources":["../../src/mutation.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { canFetch, createRetryer } from './retryer'\nimport type {\n DefaultError,\n MutationMeta,\n MutationOptions,\n MutationStatus,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n"],"names":["_observers","_classPrivateFieldLooseKey","_defaultOptions","_mutationCache","_retryer","_dispatch","Mutation","Removable","constructor","config","Object","defineProperty","value","_dispatch2","writable","mutationId","_classPrivateFieldLooseBase","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","_classPrivateFieldLoo","_classPrivateFieldLoo2","execute","variables","executeMutation","_this$options$retry","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","_classPrivateFieldLoo5","_classPrivateFieldLoo6","_this$options$onSucce","_this$options2","_classPrivateFieldLoo7","_classPrivateFieldLoo8","_this$options$onSettl","_this$options3","_classPrivateFieldLoo3","_classPrivateFieldLoo4","_this$options$onMutat","_this$options","onMutate","call","context","data","onSuccess","onSettled","_classPrivateFieldLoo9","_classPrivateFieldLoo10","_this$options$onError","_this$options4","_classPrivateFieldLoo11","_classPrivateFieldLoo12","_this$options$onSettl2","_this$options5","onError","undefined","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|