@tanstack/query-core 4.12.0 → 4.13.0
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/mutation.d.ts +5 -2
- package/build/lib/mutation.esm.js +12 -3
- package/build/lib/mutation.esm.js.map +1 -1
- package/build/lib/mutation.js +12 -3
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutation.mjs +12 -3
- package/build/lib/mutation.mjs.map +1 -1
- package/build/lib/query.d.ts +5 -2
- package/build/lib/query.esm.js +11 -4
- package/build/lib/query.esm.js.map +1 -1
- package/build/lib/query.js +11 -4
- package/build/lib/query.js.map +1 -1
- package/build/lib/query.mjs +11 -4
- package/build/lib/query.mjs.map +1 -1
- package/build/lib/queryObserver.esm.js +1 -0
- package/build/lib/queryObserver.esm.js.map +1 -1
- package/build/lib/queryObserver.js +1 -0
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/queryObserver.mjs +1 -0
- package/build/lib/queryObserver.mjs.map +1 -1
- package/build/lib/types.d.ts +1 -0
- package/build/umd/index.development.js +24 -7
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/mutation.ts +15 -5
- package/src/query.ts +13 -5
- package/src/queryObserver.ts +1 -0
- package/src/tests/mutations.test.tsx +13 -1
- package/src/types.ts +1 -0
package/build/lib/mutation.d.ts
CHANGED
|
@@ -17,12 +17,15 @@ export interface MutationState<TData = unknown, TError = unknown, TVariables = v
|
|
|
17
17
|
data: TData | undefined;
|
|
18
18
|
error: TError | null;
|
|
19
19
|
failureCount: number;
|
|
20
|
+
failureReason: TError | null;
|
|
20
21
|
isPaused: boolean;
|
|
21
22
|
status: MutationStatus;
|
|
22
23
|
variables: TVariables | undefined;
|
|
23
24
|
}
|
|
24
|
-
interface FailedAction {
|
|
25
|
+
interface FailedAction<TError> {
|
|
25
26
|
type: 'failed';
|
|
27
|
+
failureCount: number;
|
|
28
|
+
error: TError | null;
|
|
26
29
|
}
|
|
27
30
|
interface LoadingAction<TVariables, TContext> {
|
|
28
31
|
type: 'loading';
|
|
@@ -47,7 +50,7 @@ interface SetStateAction<TData, TError, TVariables, TContext> {
|
|
|
47
50
|
type: 'setState';
|
|
48
51
|
state: MutationState<TData, TError, TVariables, TContext>;
|
|
49
52
|
}
|
|
50
|
-
export declare type Action<TData, TError, TVariables, TContext> = ContinueAction | ErrorAction<TError> | FailedAction | LoadingAction<TVariables, TContext> | PauseAction | SetStateAction<TData, TError, TVariables, TContext> | SuccessAction<TData>;
|
|
53
|
+
export declare type Action<TData, TError, TVariables, TContext> = ContinueAction | ErrorAction<TError> | FailedAction<TError> | LoadingAction<TVariables, TContext> | PauseAction | SetStateAction<TData, TError, TVariables, TContext> | SuccessAction<TData>;
|
|
51
54
|
export declare class Mutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends Removable {
|
|
52
55
|
state: MutationState<TData, TError, TVariables, TContext>;
|
|
53
56
|
options: MutationOptions<TData, TError, TVariables, TContext>;
|
|
@@ -81,9 +81,11 @@ class Mutation extends Removable {
|
|
|
81
81
|
|
|
82
82
|
return this.options.mutationFn(this.state.variables);
|
|
83
83
|
},
|
|
84
|
-
onFail: () => {
|
|
84
|
+
onFail: (failureCount, error) => {
|
|
85
85
|
this.dispatch({
|
|
86
|
-
type: 'failed'
|
|
86
|
+
type: 'failed',
|
|
87
|
+
failureCount,
|
|
88
|
+
error
|
|
87
89
|
});
|
|
88
90
|
},
|
|
89
91
|
onPause: () => {
|
|
@@ -166,7 +168,8 @@ class Mutation extends Removable {
|
|
|
166
168
|
switch (action.type) {
|
|
167
169
|
case 'failed':
|
|
168
170
|
return { ...state,
|
|
169
|
-
failureCount:
|
|
171
|
+
failureCount: action.failureCount,
|
|
172
|
+
failureReason: action.error
|
|
170
173
|
};
|
|
171
174
|
|
|
172
175
|
case 'pause':
|
|
@@ -183,6 +186,8 @@ class Mutation extends Removable {
|
|
|
183
186
|
return { ...state,
|
|
184
187
|
context: action.context,
|
|
185
188
|
data: undefined,
|
|
189
|
+
failureCount: 0,
|
|
190
|
+
failureReason: null,
|
|
186
191
|
error: null,
|
|
187
192
|
isPaused: !canFetch(this.options.networkMode),
|
|
188
193
|
status: 'loading',
|
|
@@ -192,6 +197,8 @@ class Mutation extends Removable {
|
|
|
192
197
|
case 'success':
|
|
193
198
|
return { ...state,
|
|
194
199
|
data: action.data,
|
|
200
|
+
failureCount: 0,
|
|
201
|
+
failureReason: null,
|
|
195
202
|
error: null,
|
|
196
203
|
status: 'success',
|
|
197
204
|
isPaused: false
|
|
@@ -202,6 +209,7 @@ class Mutation extends Removable {
|
|
|
202
209
|
data: undefined,
|
|
203
210
|
error: action.error,
|
|
204
211
|
failureCount: state.failureCount + 1,
|
|
212
|
+
failureReason: action.error,
|
|
205
213
|
isPaused: false,
|
|
206
214
|
status: 'error'
|
|
207
215
|
};
|
|
@@ -233,6 +241,7 @@ function getDefaultState() {
|
|
|
233
241
|
data: undefined,
|
|
234
242
|
error: null,
|
|
235
243
|
failureCount: 0,
|
|
244
|
+
failureReason: null,
|
|
236
245
|
isPaused: false,
|
|
237
246
|
status: 'idle',
|
|
238
247
|
variables: undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.esm.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\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 logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction {\n type: 'failed'\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\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\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n meta: MutationMeta | undefined\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.options = {\n ...config.defaultOptions,\n ...config.options,\n }\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n this.meta = config.meta\n\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.observers.indexOf(observer) === -1) {\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 === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<TData> {\n if (this.retryer) {\n this.retryer.continue()\n return this.retryer.promise\n }\n return this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: () => {\n this.dispatch({ type: 'failed' })\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 === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\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,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.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 private 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: state.failureCount + 1,\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 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\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 isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\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 isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","options","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","meta","updateCacheTime","cacheTime","scheduleGc","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","promise","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","onPause","onContinue","retry","retryDelay","networkMode","restored","onMutate","context","data","onSuccess","onSettled","error","onError","process","env","NODE_ENV","undefined","action","reducer","failureCount","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutation.esm.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\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 logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\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}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\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\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n meta: MutationMeta | undefined\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.options = {\n ...config.defaultOptions,\n ...config.options,\n }\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n this.meta = config.meta\n\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.observers.indexOf(observer) === -1) {\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 === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<TData> {\n if (this.retryer) {\n this.retryer.continue()\n return this.retryer.promise\n }\n return this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.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 === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\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,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.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 private 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 'loading':\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: 'loading',\n variables: action.variables,\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 case 'setState':\n return {\n ...state,\n ...action.state,\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 }\n}\n"],"names":["Mutation","Removable","constructor","config","options","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","meta","updateCacheTime","cacheTime","scheduleGc","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","promise","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","restored","onMutate","context","data","onSuccess","onSettled","onError","process","env","NODE_ENV","undefined","action","reducer","failureReason","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
package/build/lib/mutation.js
CHANGED
|
@@ -85,9 +85,11 @@ class Mutation extends removable.Removable {
|
|
|
85
85
|
|
|
86
86
|
return this.options.mutationFn(this.state.variables);
|
|
87
87
|
},
|
|
88
|
-
onFail: () => {
|
|
88
|
+
onFail: (failureCount, error) => {
|
|
89
89
|
this.dispatch({
|
|
90
|
-
type: 'failed'
|
|
90
|
+
type: 'failed',
|
|
91
|
+
failureCount,
|
|
92
|
+
error
|
|
91
93
|
});
|
|
92
94
|
},
|
|
93
95
|
onPause: () => {
|
|
@@ -170,7 +172,8 @@ class Mutation extends removable.Removable {
|
|
|
170
172
|
switch (action.type) {
|
|
171
173
|
case 'failed':
|
|
172
174
|
return { ...state,
|
|
173
|
-
failureCount:
|
|
175
|
+
failureCount: action.failureCount,
|
|
176
|
+
failureReason: action.error
|
|
174
177
|
};
|
|
175
178
|
|
|
176
179
|
case 'pause':
|
|
@@ -187,6 +190,8 @@ class Mutation extends removable.Removable {
|
|
|
187
190
|
return { ...state,
|
|
188
191
|
context: action.context,
|
|
189
192
|
data: undefined,
|
|
193
|
+
failureCount: 0,
|
|
194
|
+
failureReason: null,
|
|
190
195
|
error: null,
|
|
191
196
|
isPaused: !retryer.canFetch(this.options.networkMode),
|
|
192
197
|
status: 'loading',
|
|
@@ -196,6 +201,8 @@ class Mutation extends removable.Removable {
|
|
|
196
201
|
case 'success':
|
|
197
202
|
return { ...state,
|
|
198
203
|
data: action.data,
|
|
204
|
+
failureCount: 0,
|
|
205
|
+
failureReason: null,
|
|
199
206
|
error: null,
|
|
200
207
|
status: 'success',
|
|
201
208
|
isPaused: false
|
|
@@ -206,6 +213,7 @@ class Mutation extends removable.Removable {
|
|
|
206
213
|
data: undefined,
|
|
207
214
|
error: action.error,
|
|
208
215
|
failureCount: state.failureCount + 1,
|
|
216
|
+
failureReason: action.error,
|
|
209
217
|
isPaused: false,
|
|
210
218
|
status: 'error'
|
|
211
219
|
};
|
|
@@ -237,6 +245,7 @@ function getDefaultState() {
|
|
|
237
245
|
data: undefined,
|
|
238
246
|
error: null,
|
|
239
247
|
failureCount: 0,
|
|
248
|
+
failureReason: null,
|
|
240
249
|
isPaused: false,
|
|
241
250
|
status: 'idle',
|
|
242
251
|
variables: undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\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 logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction {\n type: 'failed'\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\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\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n meta: MutationMeta | undefined\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.options = {\n ...config.defaultOptions,\n ...config.options,\n }\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n this.meta = config.meta\n\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.observers.indexOf(observer) === -1) {\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 === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<TData> {\n if (this.retryer) {\n this.retryer.continue()\n return this.retryer.promise\n }\n return this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: () => {\n this.dispatch({ type: 'failed' })\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 === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\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,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.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 private 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: state.failureCount + 1,\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 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\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 isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\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 isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","options","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","meta","updateCacheTime","cacheTime","scheduleGc","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","promise","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","onPause","onContinue","retry","retryDelay","networkMode","restored","onMutate","context","data","onSuccess","onSettled","error","onError","process","env","NODE_ENV","undefined","action","reducer","failureCount","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\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 logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\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}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\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\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n meta: MutationMeta | undefined\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.options = {\n ...config.defaultOptions,\n ...config.options,\n }\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n this.meta = config.meta\n\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.observers.indexOf(observer) === -1) {\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 === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<TData> {\n if (this.retryer) {\n this.retryer.continue()\n return this.retryer.promise\n }\n return this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.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 === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\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,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.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 private 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 'loading':\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: 'loading',\n variables: action.variables,\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 case 'setState':\n return {\n ...state,\n ...action.state,\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 }\n}\n"],"names":["Mutation","Removable","constructor","config","options","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","meta","updateCacheTime","cacheTime","scheduleGc","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","promise","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","restored","onMutate","context","data","onSuccess","onSettled","onError","process","env","NODE_ENV","undefined","action","reducer","failureReason","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
package/build/lib/mutation.mjs
CHANGED
|
@@ -81,9 +81,11 @@ class Mutation extends Removable {
|
|
|
81
81
|
|
|
82
82
|
return this.options.mutationFn(this.state.variables);
|
|
83
83
|
},
|
|
84
|
-
onFail: () => {
|
|
84
|
+
onFail: (failureCount, error) => {
|
|
85
85
|
this.dispatch({
|
|
86
|
-
type: 'failed'
|
|
86
|
+
type: 'failed',
|
|
87
|
+
failureCount,
|
|
88
|
+
error
|
|
87
89
|
});
|
|
88
90
|
},
|
|
89
91
|
onPause: () => {
|
|
@@ -166,7 +168,8 @@ class Mutation extends Removable {
|
|
|
166
168
|
switch (action.type) {
|
|
167
169
|
case 'failed':
|
|
168
170
|
return { ...state,
|
|
169
|
-
failureCount:
|
|
171
|
+
failureCount: action.failureCount,
|
|
172
|
+
failureReason: action.error
|
|
170
173
|
};
|
|
171
174
|
|
|
172
175
|
case 'pause':
|
|
@@ -183,6 +186,8 @@ class Mutation extends Removable {
|
|
|
183
186
|
return { ...state,
|
|
184
187
|
context: action.context,
|
|
185
188
|
data: undefined,
|
|
189
|
+
failureCount: 0,
|
|
190
|
+
failureReason: null,
|
|
186
191
|
error: null,
|
|
187
192
|
isPaused: !canFetch(this.options.networkMode),
|
|
188
193
|
status: 'loading',
|
|
@@ -192,6 +197,8 @@ class Mutation extends Removable {
|
|
|
192
197
|
case 'success':
|
|
193
198
|
return { ...state,
|
|
194
199
|
data: action.data,
|
|
200
|
+
failureCount: 0,
|
|
201
|
+
failureReason: null,
|
|
195
202
|
error: null,
|
|
196
203
|
status: 'success',
|
|
197
204
|
isPaused: false
|
|
@@ -202,6 +209,7 @@ class Mutation extends Removable {
|
|
|
202
209
|
data: undefined,
|
|
203
210
|
error: action.error,
|
|
204
211
|
failureCount: state.failureCount + 1,
|
|
212
|
+
failureReason: action.error,
|
|
205
213
|
isPaused: false,
|
|
206
214
|
status: 'error'
|
|
207
215
|
};
|
|
@@ -233,6 +241,7 @@ function getDefaultState() {
|
|
|
233
241
|
data: undefined,
|
|
234
242
|
error: null,
|
|
235
243
|
failureCount: 0,
|
|
244
|
+
failureReason: null,
|
|
236
245
|
isPaused: false,
|
|
237
246
|
status: 'idle',
|
|
238
247
|
variables: undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.mjs","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\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 logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction {\n type: 'failed'\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\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\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n meta: MutationMeta | undefined\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.options = {\n ...config.defaultOptions,\n ...config.options,\n }\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n this.meta = config.meta\n\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.observers.indexOf(observer) === -1) {\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 === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<TData> {\n if (this.retryer) {\n this.retryer.continue()\n return this.retryer.promise\n }\n return this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: () => {\n this.dispatch({ type: 'failed' })\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 === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\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,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.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 private 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: state.failureCount + 1,\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 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\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 isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\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 isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","options","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","meta","updateCacheTime","cacheTime","scheduleGc","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","promise","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","onPause","onContinue","retry","retryDelay","networkMode","restored","onMutate","context","data","onSuccess","onSettled","error","onError","process","env","NODE_ENV","undefined","action","reducer","failureCount","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutation.mjs","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\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 logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\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}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\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\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n meta: MutationMeta | undefined\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.options = {\n ...config.defaultOptions,\n ...config.options,\n }\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n this.meta = config.meta\n\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.observers.indexOf(observer) === -1) {\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 === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<TData> {\n if (this.retryer) {\n this.retryer.continue()\n return this.retryer.promise\n }\n return this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.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 === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\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,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.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 private 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 'loading':\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: 'loading',\n variables: action.variables,\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 case 'setState':\n return {\n ...state,\n ...action.state,\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 }\n}\n"],"names":["Mutation","Removable","constructor","config","options","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","meta","updateCacheTime","cacheTime","scheduleGc","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","promise","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","restored","onMutate","context","data","onSuccess","onSettled","onError","process","env","NODE_ENV","undefined","action","reducer","failureReason","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|
package/build/lib/query.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export interface QueryState<TData = unknown, TError = unknown> {
|
|
|
21
21
|
errorUpdateCount: number;
|
|
22
22
|
errorUpdatedAt: number;
|
|
23
23
|
fetchFailureCount: number;
|
|
24
|
+
fetchFailureReason: TError | null;
|
|
24
25
|
fetchMeta: any;
|
|
25
26
|
isInvalidated: boolean;
|
|
26
27
|
status: QueryStatus;
|
|
@@ -42,8 +43,10 @@ export interface FetchOptions {
|
|
|
42
43
|
cancelRefetch?: boolean;
|
|
43
44
|
meta?: any;
|
|
44
45
|
}
|
|
45
|
-
interface FailedAction {
|
|
46
|
+
interface FailedAction<TError> {
|
|
46
47
|
type: 'failed';
|
|
48
|
+
failureCount: number;
|
|
49
|
+
error: TError;
|
|
47
50
|
}
|
|
48
51
|
interface FetchAction {
|
|
49
52
|
type: 'fetch';
|
|
@@ -73,7 +76,7 @@ interface SetStateAction<TData, TError> {
|
|
|
73
76
|
state: QueryState<TData, TError>;
|
|
74
77
|
setStateOptions?: SetStateOptions;
|
|
75
78
|
}
|
|
76
|
-
export declare type Action<TData, TError> = ContinueAction | ErrorAction<TError> | FailedAction | FetchAction | InvalidateAction | PauseAction | SetStateAction<TData, TError> | SuccessAction<TData>;
|
|
79
|
+
export declare type Action<TData, TError> = ContinueAction | ErrorAction<TError> | FailedAction<TError> | FetchAction | InvalidateAction | PauseAction | SetStateAction<TData, TError> | SuccessAction<TData>;
|
|
77
80
|
export interface SetStateOptions {
|
|
78
81
|
meta?: any;
|
|
79
82
|
}
|