Skip to content

Commit adc9b88

Browse files
committed
Use cache.batch in cache.update{Query,Fragment}.
1 parent 184d6af commit adc9b88

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

src/cache/core/cache.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -176,21 +176,29 @@ export abstract class ApolloCache<TSerialized> implements DataProxy {
176176
options: Cache.UpdateQueryOptions<TData, TVariables>,
177177
update: (data: TData | null) => TData | null | void,
178178
): TData | null {
179-
const value = this.readQuery<TData, TVariables>(options);
180-
const data = update(value);
181-
if (data === void 0 || data === null) return value;
182-
this.writeQuery<TData, TVariables>({ ...options, data });
183-
return data;
179+
return this.batch({
180+
update(cache) {
181+
const value = cache.readQuery<TData, TVariables>(options);
182+
const data = update(value);
183+
if (data === void 0 || data === null) return value;
184+
cache.writeQuery<TData, TVariables>({ ...options, data });
185+
return data;
186+
},
187+
});
184188
}
185189

186190
public updateFragment<TData = any, TVariables = any>(
187191
options: Cache.UpdateFragmentOptions<TData, TVariables>,
188192
update: (data: TData | null) => TData | null | void,
189193
): TData | null {
190-
const value = this.readFragment<TData, TVariables>(options);
191-
const data = update(value);
192-
if (data === void 0 || data === null) return value;
193-
this.writeFragment<TData, TVariables>({ ...options, data });
194-
return data;
194+
return this.batch({
195+
update(cache) {
196+
const value = cache.readFragment<TData, TVariables>(options);
197+
const data = update(value);
198+
if (data === void 0 || data === null) return value;
199+
cache.writeFragment<TData, TVariables>({ ...options, data });
200+
return data;
201+
},
202+
});
195203
}
196204
}

0 commit comments

Comments
 (0)