@tanstack/query-core 4.24.10 → 5.0.0-alpha.1
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/focusManager.d.ts +1 -3
- package/build/lib/focusManager.esm.js +19 -36
- package/build/lib/focusManager.esm.js.map +1 -1
- package/build/lib/focusManager.js +19 -38
- package/build/lib/focusManager.js.map +1 -1
- package/build/lib/focusManager.mjs +19 -36
- package/build/lib/focusManager.mjs.map +1 -1
- package/build/lib/hydration.esm.js +21 -23
- package/build/lib/hydration.esm.js.map +1 -1
- package/build/lib/hydration.js +21 -25
- package/build/lib/hydration.js.map +1 -1
- package/build/lib/hydration.mjs +21 -23
- package/build/lib/hydration.mjs.map +1 -1
- package/build/lib/index.d.ts +1 -2
- package/build/lib/index.esm.js +1 -1
- package/build/lib/index.js +2 -8
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs +1 -1
- package/build/lib/infiniteQueryBehavior.d.ts +3 -7
- package/build/lib/infiniteQueryBehavior.esm.js +52 -75
- package/build/lib/infiniteQueryBehavior.esm.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.js +50 -77
- package/build/lib/infiniteQueryBehavior.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.mjs +52 -75
- package/build/lib/infiniteQueryBehavior.mjs.map +1 -1
- package/build/lib/infiniteQueryObserver.d.ts +4 -4
- package/build/lib/infiniteQueryObserver.esm.js +18 -26
- package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
- package/build/lib/infiniteQueryObserver.js +18 -28
- package/build/lib/infiniteQueryObserver.js.map +1 -1
- package/build/lib/infiniteQueryObserver.mjs +18 -26
- package/build/lib/infiniteQueryObserver.mjs.map +1 -1
- package/build/lib/mutation.d.ts +11 -22
- package/build/lib/mutation.esm.js +73 -105
- package/build/lib/mutation.esm.js.map +1 -1
- package/build/lib/mutation.js +73 -107
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutation.mjs +73 -105
- package/build/lib/mutation.mjs.map +1 -1
- package/build/lib/mutationCache.d.ts +4 -6
- package/build/lib/mutationCache.esm.js +23 -32
- package/build/lib/mutationCache.esm.js.map +1 -1
- package/build/lib/mutationCache.js +23 -34
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationCache.mjs +23 -32
- package/build/lib/mutationCache.mjs.map +1 -1
- package/build/lib/mutationObserver.d.ts +4 -9
- package/build/lib/mutationObserver.esm.js +42 -73
- package/build/lib/mutationObserver.esm.js.map +1 -1
- package/build/lib/mutationObserver.js +42 -75
- package/build/lib/mutationObserver.js.map +1 -1
- package/build/lib/mutationObserver.mjs +42 -73
- package/build/lib/mutationObserver.mjs.map +1 -1
- package/build/lib/notifyManager.esm.js +7 -17
- package/build/lib/notifyManager.esm.js.map +1 -1
- package/build/lib/notifyManager.js +7 -19
- package/build/lib/notifyManager.js.map +1 -1
- package/build/lib/notifyManager.mjs +7 -17
- package/build/lib/notifyManager.mjs.map +1 -1
- package/build/lib/onlineManager.d.ts +1 -3
- package/build/lib/onlineManager.esm.js +16 -30
- package/build/lib/onlineManager.esm.js.map +1 -1
- package/build/lib/onlineManager.js +16 -32
- package/build/lib/onlineManager.js.map +1 -1
- package/build/lib/onlineManager.mjs +16 -30
- package/build/lib/onlineManager.mjs.map +1 -1
- package/build/lib/queriesObserver.d.ts +3 -10
- package/build/lib/queriesObserver.esm.js +47 -71
- package/build/lib/queriesObserver.esm.js.map +1 -1
- package/build/lib/queriesObserver.js +49 -75
- package/build/lib/queriesObserver.js.map +1 -1
- package/build/lib/queriesObserver.mjs +47 -71
- package/build/lib/queriesObserver.mjs.map +1 -1
- package/build/lib/query.d.ts +14 -21
- package/build/lib/query.esm.js +140 -194
- package/build/lib/query.esm.js.map +1 -1
- package/build/lib/query.js +139 -195
- package/build/lib/query.js.map +1 -1
- package/build/lib/query.mjs +140 -194
- package/build/lib/query.mjs.map +1 -1
- package/build/lib/queryCache.d.ts +12 -7
- package/build/lib/queryCache.esm.js +21 -45
- package/build/lib/queryCache.esm.js.map +1 -1
- package/build/lib/queryCache.js +20 -46
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.mjs +21 -45
- package/build/lib/queryCache.mjs.map +1 -1
- package/build/lib/queryClient.d.ts +18 -46
- package/build/lib/queryClient.esm.js +137 -216
- package/build/lib/queryClient.esm.js.map +1 -1
- package/build/lib/queryClient.js +136 -217
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.mjs +137 -216
- package/build/lib/queryClient.mjs.map +1 -1
- package/build/lib/queryObserver.d.ts +4 -29
- package/build/lib/queryObserver.esm.js +176 -258
- package/build/lib/queryObserver.esm.js.map +1 -1
- package/build/lib/queryObserver.js +176 -260
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/queryObserver.mjs +176 -258
- package/build/lib/queryObserver.mjs.map +1 -1
- package/build/lib/removable.d.ts +3 -3
- package/build/lib/removable.esm.js +10 -14
- package/build/lib/removable.esm.js.map +1 -1
- package/build/lib/removable.js +10 -16
- package/build/lib/removable.js.map +1 -1
- package/build/lib/removable.mjs +10 -14
- package/build/lib/removable.mjs.map +1 -1
- package/build/lib/retryer.d.ts +5 -5
- package/build/lib/retryer.esm.js +27 -44
- package/build/lib/retryer.esm.js.map +1 -1
- package/build/lib/retryer.js +27 -46
- package/build/lib/retryer.js.map +1 -1
- package/build/lib/retryer.mjs +27 -44
- package/build/lib/retryer.mjs.map +1 -1
- package/build/lib/subscribable.esm.js +4 -7
- package/build/lib/subscribable.esm.js.map +1 -1
- package/build/lib/subscribable.js +4 -9
- package/build/lib/subscribable.js.map +1 -1
- package/build/lib/subscribable.mjs +4 -7
- package/build/lib/subscribable.mjs.map +1 -1
- package/build/lib/tests/utils.d.ts +3 -12
- package/build/lib/types.d.ts +111 -99
- package/build/lib/utils.d.ts +8 -18
- package/build/lib/utils.esm.js +39 -132
- package/build/lib/utils.esm.js.map +1 -1
- package/build/lib/utils.js +42 -144
- package/build/lib/utils.js.map +1 -1
- package/build/lib/utils.mjs +39 -132
- package/build/lib/utils.mjs.map +1 -1
- package/build/umd/index.development.js +867 -1399
- 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/focusManager.ts +17 -24
- package/src/index.ts +1 -11
- package/src/infiniteQueryBehavior.ts +54 -94
- package/src/infiniteQueryObserver.ts +10 -12
- package/src/mutation.ts +68 -92
- package/src/mutationCache.ts +27 -27
- package/src/mutationObserver.ts +58 -97
- package/src/onlineManager.ts +14 -14
- package/src/queriesObserver.ts +50 -54
- package/src/query.ts +107 -111
- package/src/queryCache.ts +42 -41
- package/src/queryClient.ts +155 -434
- package/src/queryObserver.ts +155 -192
- package/src/removable.ts +13 -13
- package/src/retryer.ts +5 -5
- package/src/subscribable.ts +1 -1
- package/src/tests/focusManager.test.tsx +25 -25
- package/src/tests/hydration.test.tsx +167 -81
- package/src/tests/infiniteQueryBehavior.test.tsx +209 -17
- package/src/tests/infiniteQueryObserver.test.tsx +6 -2
- package/src/tests/mutationCache.test.tsx +127 -127
- package/src/tests/mutationObserver.test.tsx +1 -31
- package/src/tests/mutations.test.tsx +62 -43
- package/src/tests/onlineManager.test.tsx +12 -4
- package/src/tests/queriesObserver.test.tsx +41 -77
- package/src/tests/query.test.tsx +175 -243
- package/src/tests/queryCache.test.tsx +170 -93
- package/src/tests/queryClient.test.tsx +229 -378
- package/src/tests/queryObserver.test.tsx +23 -147
- package/src/tests/utils.test.tsx +84 -29
- package/src/tests/utils.ts +9 -18
- package/src/types.ts +187 -140
- package/src/utils.ts +31 -124
- package/build/lib/logger.d.ts +0 -8
- package/build/lib/logger.esm.js +0 -4
- package/build/lib/logger.esm.js.map +0 -1
- package/build/lib/logger.js +0 -8
- package/build/lib/logger.js.map +0 -1
- package/build/lib/logger.mjs +0 -4
- package/build/lib/logger.mjs.map +0 -1
- package/build/lib/logger.native.d.ts +0 -6
- package/build/lib/logger.native.esm.js +0 -12
- package/build/lib/logger.native.esm.js.map +0 -1
- package/build/lib/logger.native.js +0 -16
- package/build/lib/logger.native.js.map +0 -1
- package/build/lib/logger.native.mjs +0 -12
- package/build/lib/logger.native.mjs.map +0 -1
- package/src/logger.native.ts +0 -11
- package/src/logger.ts +0 -9
package/build/lib/mutation.js
CHANGED
|
@@ -1,205 +1,177 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var logger = require('./logger');
|
|
6
3
|
var notifyManager = require('./notifyManager.js');
|
|
7
4
|
var removable = require('./removable.js');
|
|
8
5
|
var retryer = require('./retryer.js');
|
|
9
6
|
|
|
7
|
+
// TYPES
|
|
8
|
+
|
|
10
9
|
// CLASS
|
|
10
|
+
|
|
11
11
|
class Mutation extends removable.Removable {
|
|
12
|
+
#observers;
|
|
13
|
+
#mutationCache;
|
|
14
|
+
#retryer;
|
|
12
15
|
constructor(config) {
|
|
13
16
|
super();
|
|
14
|
-
this.options =
|
|
15
|
-
...config.options
|
|
16
|
-
};
|
|
17
|
+
this.options = config.options;
|
|
17
18
|
this.mutationId = config.mutationId;
|
|
18
|
-
this
|
|
19
|
-
this
|
|
20
|
-
this.observers = [];
|
|
19
|
+
this.#mutationCache = config.mutationCache;
|
|
20
|
+
this.#observers = [];
|
|
21
21
|
this.state = config.state || getDefaultState();
|
|
22
|
-
this.
|
|
22
|
+
this.updateGcTime(this.options.gcTime);
|
|
23
23
|
this.scheduleGc();
|
|
24
24
|
}
|
|
25
|
-
|
|
26
25
|
get meta() {
|
|
27
26
|
return this.options.meta;
|
|
28
27
|
}
|
|
29
|
-
|
|
30
|
-
setState(state) {
|
|
31
|
-
this.dispatch({
|
|
32
|
-
type: 'setState',
|
|
33
|
-
state
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
28
|
addObserver(observer) {
|
|
38
|
-
if (this
|
|
39
|
-
this
|
|
29
|
+
if (this.#observers.indexOf(observer) === -1) {
|
|
30
|
+
this.#observers.push(observer);
|
|
40
31
|
|
|
32
|
+
// Stop the mutation from being garbage collected
|
|
41
33
|
this.clearGcTimeout();
|
|
42
|
-
this
|
|
34
|
+
this.#mutationCache.notify({
|
|
43
35
|
type: 'observerAdded',
|
|
44
36
|
mutation: this,
|
|
45
37
|
observer
|
|
46
38
|
});
|
|
47
39
|
}
|
|
48
40
|
}
|
|
49
|
-
|
|
50
41
|
removeObserver(observer) {
|
|
51
|
-
this
|
|
42
|
+
this.#observers = this.#observers.filter(x => x !== observer);
|
|
52
43
|
this.scheduleGc();
|
|
53
|
-
this
|
|
44
|
+
this.#mutationCache.notify({
|
|
54
45
|
type: 'observerRemoved',
|
|
55
46
|
mutation: this,
|
|
56
47
|
observer
|
|
57
48
|
});
|
|
58
49
|
}
|
|
59
|
-
|
|
60
50
|
optionalRemove() {
|
|
61
|
-
if (!this
|
|
62
|
-
if (this.state.status === '
|
|
51
|
+
if (!this.#observers.length) {
|
|
52
|
+
if (this.state.status === 'pending') {
|
|
63
53
|
this.scheduleGc();
|
|
64
54
|
} else {
|
|
65
|
-
this
|
|
55
|
+
this.#mutationCache.remove(this);
|
|
66
56
|
}
|
|
67
57
|
}
|
|
68
58
|
}
|
|
69
|
-
|
|
70
59
|
continue() {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
60
|
+
return this.#retryer?.continue() ??
|
|
61
|
+
// continuing a mutation assumes that variables are set, mutation must have been dehydrated before
|
|
62
|
+
this.execute(this.state.variables);
|
|
74
63
|
}
|
|
75
|
-
|
|
76
|
-
async execute() {
|
|
64
|
+
async execute(variables) {
|
|
77
65
|
const executeMutation = () => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
this.retryer = retryer.createRetryer({
|
|
66
|
+
this.#retryer = retryer.createRetryer({
|
|
81
67
|
fn: () => {
|
|
82
68
|
if (!this.options.mutationFn) {
|
|
83
|
-
return Promise.reject('No mutationFn found');
|
|
69
|
+
return Promise.reject(new Error('No mutationFn found'));
|
|
84
70
|
}
|
|
85
|
-
|
|
86
|
-
return this.options.mutationFn(this.state.variables);
|
|
71
|
+
return this.options.mutationFn(variables);
|
|
87
72
|
},
|
|
88
73
|
onFail: (failureCount, error) => {
|
|
89
|
-
this
|
|
74
|
+
this.#dispatch({
|
|
90
75
|
type: 'failed',
|
|
91
76
|
failureCount,
|
|
92
77
|
error
|
|
93
78
|
});
|
|
94
79
|
},
|
|
95
80
|
onPause: () => {
|
|
96
|
-
this
|
|
81
|
+
this.#dispatch({
|
|
97
82
|
type: 'pause'
|
|
98
83
|
});
|
|
99
84
|
},
|
|
100
85
|
onContinue: () => {
|
|
101
|
-
this
|
|
86
|
+
this.#dispatch({
|
|
102
87
|
type: 'continue'
|
|
103
88
|
});
|
|
104
89
|
},
|
|
105
|
-
retry:
|
|
90
|
+
retry: this.options.retry ?? 0,
|
|
106
91
|
retryDelay: this.options.retryDelay,
|
|
107
92
|
networkMode: this.options.networkMode
|
|
108
93
|
});
|
|
109
|
-
return this
|
|
94
|
+
return this.#retryer.promise;
|
|
110
95
|
};
|
|
111
|
-
|
|
112
|
-
const restored = this.state.status === 'loading';
|
|
113
|
-
|
|
96
|
+
const restored = this.state.status === 'pending';
|
|
114
97
|
try {
|
|
115
|
-
var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$options$onSettl, _this$options3;
|
|
116
|
-
|
|
117
98
|
if (!restored) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));
|
|
126
|
-
const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));
|
|
127
|
-
|
|
99
|
+
this.#dispatch({
|
|
100
|
+
type: 'pending',
|
|
101
|
+
variables
|
|
102
|
+
});
|
|
103
|
+
// Notify cache callback
|
|
104
|
+
await this.#mutationCache.config.onMutate?.(variables, this);
|
|
105
|
+
const context = await this.options.onMutate?.(variables);
|
|
128
106
|
if (context !== this.state.context) {
|
|
129
|
-
this
|
|
130
|
-
type: '
|
|
107
|
+
this.#dispatch({
|
|
108
|
+
type: 'pending',
|
|
131
109
|
context,
|
|
132
|
-
variables
|
|
110
|
+
variables
|
|
133
111
|
});
|
|
134
112
|
}
|
|
135
113
|
}
|
|
114
|
+
const data = await executeMutation();
|
|
136
115
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
await
|
|
140
|
-
await
|
|
141
|
-
|
|
142
|
-
this.dispatch({
|
|
116
|
+
// Notify cache callback
|
|
117
|
+
await this.#mutationCache.config.onSuccess?.(data, variables, this.state.context, this);
|
|
118
|
+
await this.options.onSuccess?.(data, variables, this.state.context);
|
|
119
|
+
await this.options.onSettled?.(data, null, variables, this.state.context);
|
|
120
|
+
this.#dispatch({
|
|
143
121
|
type: 'success',
|
|
144
122
|
data
|
|
145
123
|
});
|
|
146
124
|
return data;
|
|
147
125
|
} catch (error) {
|
|
148
126
|
try {
|
|
149
|
-
var _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onError, _this$options4, _this$options$onSettl2, _this$options5;
|
|
150
|
-
|
|
151
127
|
// Notify cache callback
|
|
152
|
-
await
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
this.logger.error(error);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context));
|
|
159
|
-
await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));
|
|
128
|
+
await this.#mutationCache.config.onError?.(error, variables, this.state.context, this);
|
|
129
|
+
await this.options.onError?.(error, variables, this.state.context);
|
|
130
|
+
await this.options.onSettled?.(undefined, error, variables, this.state.context);
|
|
160
131
|
throw error;
|
|
161
132
|
} finally {
|
|
162
|
-
this
|
|
133
|
+
this.#dispatch({
|
|
163
134
|
type: 'error',
|
|
164
135
|
error: error
|
|
165
136
|
});
|
|
166
137
|
}
|
|
167
138
|
}
|
|
168
139
|
}
|
|
169
|
-
|
|
170
|
-
dispatch(action) {
|
|
140
|
+
#dispatch(action) {
|
|
171
141
|
const reducer = state => {
|
|
172
142
|
switch (action.type) {
|
|
173
143
|
case 'failed':
|
|
174
|
-
return {
|
|
144
|
+
return {
|
|
145
|
+
...state,
|
|
175
146
|
failureCount: action.failureCount,
|
|
176
147
|
failureReason: action.error
|
|
177
148
|
};
|
|
178
|
-
|
|
179
149
|
case 'pause':
|
|
180
|
-
return {
|
|
150
|
+
return {
|
|
151
|
+
...state,
|
|
181
152
|
isPaused: true
|
|
182
153
|
};
|
|
183
|
-
|
|
184
154
|
case 'continue':
|
|
185
|
-
return {
|
|
155
|
+
return {
|
|
156
|
+
...state,
|
|
186
157
|
isPaused: false
|
|
187
158
|
};
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
159
|
+
case 'pending':
|
|
160
|
+
return {
|
|
161
|
+
...state,
|
|
191
162
|
context: action.context,
|
|
192
163
|
data: undefined,
|
|
193
164
|
failureCount: 0,
|
|
194
165
|
failureReason: null,
|
|
195
166
|
error: null,
|
|
196
167
|
isPaused: !retryer.canFetch(this.options.networkMode),
|
|
197
|
-
status: '
|
|
198
|
-
variables: action.variables
|
|
168
|
+
status: 'pending',
|
|
169
|
+
variables: action.variables,
|
|
170
|
+
submittedAt: Date.now()
|
|
199
171
|
};
|
|
200
|
-
|
|
201
172
|
case 'success':
|
|
202
|
-
return {
|
|
173
|
+
return {
|
|
174
|
+
...state,
|
|
203
175
|
data: action.data,
|
|
204
176
|
failureCount: 0,
|
|
205
177
|
failureReason: null,
|
|
@@ -207,9 +179,9 @@ class Mutation extends removable.Removable {
|
|
|
207
179
|
status: 'success',
|
|
208
180
|
isPaused: false
|
|
209
181
|
};
|
|
210
|
-
|
|
211
182
|
case 'error':
|
|
212
|
-
return {
|
|
183
|
+
return {
|
|
184
|
+
...state,
|
|
213
185
|
data: undefined,
|
|
214
186
|
error: action.error,
|
|
215
187
|
failureCount: state.failureCount + 1,
|
|
@@ -217,27 +189,20 @@ class Mutation extends removable.Removable {
|
|
|
217
189
|
isPaused: false,
|
|
218
190
|
status: 'error'
|
|
219
191
|
};
|
|
220
|
-
|
|
221
|
-
case 'setState':
|
|
222
|
-
return { ...state,
|
|
223
|
-
...action.state
|
|
224
|
-
};
|
|
225
192
|
}
|
|
226
193
|
};
|
|
227
|
-
|
|
228
194
|
this.state = reducer(this.state);
|
|
229
195
|
notifyManager.notifyManager.batch(() => {
|
|
230
|
-
this
|
|
196
|
+
this.#observers.forEach(observer => {
|
|
231
197
|
observer.onMutationUpdate(action);
|
|
232
198
|
});
|
|
233
|
-
this
|
|
199
|
+
this.#mutationCache.notify({
|
|
234
200
|
mutation: this,
|
|
235
201
|
type: 'updated',
|
|
236
202
|
action
|
|
237
203
|
});
|
|
238
204
|
});
|
|
239
205
|
}
|
|
240
|
-
|
|
241
206
|
}
|
|
242
207
|
function getDefaultState() {
|
|
243
208
|
return {
|
|
@@ -248,7 +213,8 @@ function getDefaultState() {
|
|
|
248
213
|
failureReason: null,
|
|
249
214
|
isPaused: false,
|
|
250
215
|
status: 'idle',
|
|
251
|
-
variables: undefined
|
|
216
|
+
variables: undefined,
|
|
217
|
+
submittedAt: 0
|
|
252
218
|
};
|
|
253
219
|
}
|
|
254
220
|
|
|
@@ -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 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\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\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\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<unknown> {\n return this.retryer?.continue() ?? 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","updateCacheTime","cacheTime","scheduleGc","meta","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","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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"}
|
|
1
|
+
{"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n RegisteredError,\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 = RegisteredError,\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 = RegisteredError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n readonly options: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<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.options = config.options\n this.mutationId = config.mutationId\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.updateGcTime(this.options.gcTime)\n this.scheduleGc()\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.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 === '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 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,\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 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","options","mutationId","mutationCache","state","getDefaultState","updateGcTime","gcTime","scheduleGc","meta","addObserver","observer","indexOf","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","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
|