vscode-ws-jsonrpc
Version:
VSCode JSON RPC over WebSocket
30 lines (25 loc) • 1 kB
text/typescript
/* --------------------------------------------------------------------------------------------
* Copyright (c) 2024 TypeFox and others.
* Licensed under the MIT License. See LICENSE in the package root for license information.
* ------------------------------------------------------------------------------------------ */
import { Disposable } from 'vscode-jsonrpc';
export class DisposableCollection implements Disposable {
protected readonly disposables: Disposable[] = [];
dispose(): void {
while (this.disposables.length !== 0) {
this.disposables.pop()!.dispose();
}
}
push(disposable: Disposable): Disposable {
const disposables = this.disposables;
disposables.push(disposable);
return {
dispose(): void {
const index = disposables.indexOf(disposable);
if (index !== -1) {
disposables.splice(index, 1);
}
}
};
}
}