throw when something tracked is not disposable, fail early
This commit is contained in:
parent
1289f065d6
commit
3ab68ef438
1 changed files with 7 additions and 0 deletions
|
@ -22,6 +22,10 @@ function disposeValue(value) {
|
|||
}
|
||||
}
|
||||
|
||||
function isDisposable(value) {
|
||||
return value && (typeof value === "function" || typeof value.dispose === "function");
|
||||
}
|
||||
|
||||
export class Disposables {
|
||||
constructor() {
|
||||
this._disposables = [];
|
||||
|
@ -31,6 +35,9 @@ export class Disposables {
|
|||
if (this.isDisposed) {
|
||||
throw new Error("Already disposed, check isDisposed after await if needed");
|
||||
}
|
||||
if (!isDisposable(disposable)) {
|
||||
throw new Error("Not a disposable");
|
||||
}
|
||||
this._disposables.push(disposable);
|
||||
return disposable;
|
||||
}
|
||||
|
|
Reference in a new issue