mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-20 09:35:38 -05:00
* Merge from vscode 504f934659740e9d41501cad9f162b54d7745ad9 * delete unused folders * distro * Bump build node version * update chokidar * FIx hygiene errors * distro * Fix extension lint issues * Remove strict-vscode * Add copyright header exemptions * Bump vscode-extension-telemetry to fix webpacking issue with zone.js * distro * Fix failing tests (revert marked.js back to current one until we decide to update) * Skip searchmodel test * Fix mac build * temp debug script loading * Try disabling coverage * log error too * Revert "log error too" This reverts commit af0183e5d4ab458fdf44b88fbfab9908d090526f. * Revert "temp debug script loading" This reverts commit 3d687d541c76db2c5b55626c78ae448d3c25089c. * Add comments explaining coverage disabling * Fix ansi_up loading issue * Merge latest from ads * Use newer option * Fix compile * add debug logging warn * Always log stack * log more * undo debug * Update to use correct base path (+cleanup) * distro * fix compile errors * Remove strict-vscode * Fix sql editors not showing * Show db dropdown input & fix styling * Fix more info in gallery * Fix gallery asset requests * Delete unused workflow * Fix tapable resolutions for smoke test compile error * Fix smoke compile * Disable crash reporting * Disable interactive Co-authored-by: ADS Merger <karlb@microsoft.com>
70 lines
2.2 KiB
TypeScript
70 lines
2.2 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 { CancellationToken, ResponseError, LSPErrorCodes } from 'vscode-languageserver';
|
|
import { RuntimeEnvironment } from '../jsonServer';
|
|
|
|
export function formatError(message: string, err: any): string {
|
|
if (err instanceof Error) {
|
|
let error = <Error>err;
|
|
return `${message}: ${error.message}\n${error.stack}`;
|
|
} else if (typeof err === 'string') {
|
|
return `${message}: ${err}`;
|
|
} else if (err) {
|
|
return `${message}: ${err.toString()}`;
|
|
}
|
|
return message;
|
|
}
|
|
|
|
export function runSafeAsync<T>(runtime: RuntimeEnvironment, func: () => Thenable<T>, errorVal: T, errorMessage: string, token: CancellationToken): Thenable<T | ResponseError<any>> {
|
|
return new Promise<T | ResponseError<any>>((resolve) => {
|
|
runtime.timer.setImmediate(() => {
|
|
if (token.isCancellationRequested) {
|
|
resolve(cancelValue());
|
|
}
|
|
return func().then(result => {
|
|
if (token.isCancellationRequested) {
|
|
resolve(cancelValue());
|
|
return;
|
|
} else {
|
|
resolve(result);
|
|
}
|
|
}, e => {
|
|
console.error(formatError(errorMessage, e));
|
|
resolve(errorVal);
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
export function runSafe<T, E>(runtime: RuntimeEnvironment, func: () => T, errorVal: T, errorMessage: string, token: CancellationToken): Thenable<T | ResponseError<E>> {
|
|
return new Promise<T | ResponseError<E>>((resolve) => {
|
|
runtime.timer.setImmediate(() => {
|
|
if (token.isCancellationRequested) {
|
|
resolve(cancelValue());
|
|
} else {
|
|
try {
|
|
let result = func();
|
|
if (token.isCancellationRequested) {
|
|
resolve(cancelValue());
|
|
return;
|
|
} else {
|
|
resolve(result);
|
|
}
|
|
|
|
} catch (e) {
|
|
console.error(formatError(errorMessage, e));
|
|
resolve(errorVal);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function cancelValue<E>() {
|
|
console.log('cancelled');
|
|
return new ResponseError<E>(LSPErrorCodes.RequestCancelled, 'Request cancelled');
|
|
}
|