69
*/
70
export function autorunWithStoreHandleChanges<TChangeSummary>(
72
>
changeTracker: IChangeTracker<TChangeSummary>;
73
>
},
74
>
fn: (reader: IReader, changeSummary: TChangeSummary, store: DisposableStore) => void
75
>
): IDisposable {
76
>
const store = new DisposableStore();
77
>
const disposable = autorunHandleChanges(
78
>
{
79
>
owner: options.owner,
80
>
debugName: options.debugName,
81
>
debugReferenceFn: options.debugReferenceFn ?? fn,
82
>
changeTracker: options.changeTracker,
83
>
},
84
>
(reader, changeSummary) => {
85
>
store.clear();
86
>
fn(reader, changeSummary, store);
87
>
}
88
>
);
89
>
return toDisposable(() => {
90
>
disposable.dispose();
91
>
store.dispose();
92
>
});
93
>
}
94
95
/**