lib/disposable
Disposable pattern for resource cleanup, similar to VSCode's IDisposable pattern.
Example
import { DisposableStore, toDisposable } from "@core/disposable";
const disposables = new DisposableStore();
// Add disposables from event subscriptions
disposables.add(someEvent.on(() => { ... }));
// Add custom cleanup logic
disposables.add(toDisposable(() => {
clearInterval(myTimer);
}));
// Create nested stores for features that can be enabled/disabled
const featureStore = disposables.createChild();
featureStore.add(someFeatureEvent.on(() => { ... }));
// featureStore is automatically disposed when parent is disposed
// Clean up everything
disposables.dispose();
Classes
| Class | Description |
|---|---|
| DisposableStore | A container that manages multiple disposables. Useful for collecting event subscriptions and other cleanup tasks in a module. Supports nesting: a DisposableStore can be added to another DisposableStore. |
Interfaces
| Interface | Description |
|---|---|
| IDisposable | Represents a resource that can be disposed/cleaned up. |
Functions
| Function | Description |
|---|---|
| toDisposable | Creates a disposable from a dispose function. Returns an object that implements both IDisposable and native Disposable. |