Skip to main content

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

ClassDescription
DisposableStoreA 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

InterfaceDescription
IDisposableRepresents a resource that can be disposed/cleaned up.

Functions

FunctionDescription
toDisposableCreates a disposable from a dispose function. Returns an object that implements both IDisposable and native Disposable.