Replace _disposables with Disposable, add jsdoc

This commit is contained in:
Daniel Imms
2018-06-21 10:29:02 +10:00
parent dfd17be8bb
commit 7e779cd195
4 changed files with 30 additions and 22 deletions
+13 -2
View File
@@ -5,18 +5,29 @@
import { IDisposable } from 'xterm';
/**
* A base class that can be extended to provide convenience methods for managing the lifecycle of an
* object and its components.
*/
export abstract class Disposable implements IDisposable {
protected _disposables: IDisposable[] = [];
constructor() {
}
/**
* Disposes the object, triggering the `dispose` method on all registered IDisposables.
*/
public dispose(): void {
this._disposables.forEach(d => d.dispose());
this._disposables.length = 0;
}
public register<T extends IDisposable>(t: T): void {
this._disposables.push(t);
/**
* Registers a disposable object.
* @param d The disposable to register.
*/
public register<T extends IDisposable>(d: T): void {
this._disposables.push(d);
}
}