@codesandbox/sdk
Version:
The CodeSandbox SDK
39 lines (38 loc) • 1.21 kB
TypeScript
export interface IDisposable {
/**
* Dispose this object.
*/
dispose(): void;
}
export declare class Disposable implements IDisposable {
private onWillDisposeEmitter;
onWillDispose: import("./event").Event<null>;
private onDidDisposeEmitter;
onDidDispose: import("./event").Event<null>;
protected toDispose: IDisposable[];
isDisposed: boolean;
addDisposable<T extends IDisposable>(disposable: T): T;
onDispose(cb: () => void): void;
dispose(): void;
static is(arg: unknown): arg is Disposable;
static create(cb: () => void): IDisposable;
}
/**
* A store where you can track multiple disposables. Mostly a utility.
*/
export declare class DisposableStore implements IDisposable {
static DISABLE_DISPOSED_WARNING: boolean;
private _toDispose;
private _isDisposed;
/**
* Dispose of all registered disposables and mark this object as disposed.
*
* Any future disposables added to this object will be disposed of on `add`.
*/
dispose(): void;
/**
* Dispose of all registered disposables but do not mark this object as disposed.
*/
clear(): void;
add<T extends IDisposable>(o: T): T;
}