mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-18 17:22:45 -05:00
* Merge from vscode 37cb23d3dd4f9433d56d4ba5ea3203580719a0bd * fix issues with merges * bump node version in azpipe * replace license headers * remove duplicate launch task * fix build errors * fix build errors * fix tslint issues * working through package and linux build issues * more work * wip * fix packaged builds * working through linux build errors * wip * wip * wip * fix mac and linux file limits * iterate linux pipeline * disable editor typing * revert series to parallel * remove optimize vscode from linux * fix linting issues * revert testing change * add work round for new node * readd packaging for extensions * fix issue with angular not resolving decorator dependencies
42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as vscode from 'vscode';
|
|
|
|
export function disposeAll(disposables: vscode.Disposable[]) {
|
|
while (disposables.length) {
|
|
const item = disposables.pop();
|
|
if (item) {
|
|
item.dispose();
|
|
}
|
|
}
|
|
}
|
|
|
|
export abstract class Disposable {
|
|
private _isDisposed = false;
|
|
|
|
protected _disposables: vscode.Disposable[] = [];
|
|
|
|
public dispose(): any {
|
|
if (this._isDisposed) {
|
|
return;
|
|
}
|
|
this._isDisposed = true;
|
|
disposeAll(this._disposables);
|
|
}
|
|
|
|
protected _register<T extends vscode.Disposable>(value: T): T {
|
|
if (this._isDisposed) {
|
|
value.dispose();
|
|
} else {
|
|
this._disposables.push(value);
|
|
}
|
|
return value;
|
|
}
|
|
|
|
protected get isDisposed() {
|
|
return this._isDisposed;
|
|
}
|
|
} |