2 /*---------------------------------------------------------------------------------------------
\r
3 * Copyright (c) Microsoft Corporation. All rights reserved.
\r
4 * Licensed under the MIT License. See License.txt in the project root for license information.
\r
5 *--------------------------------------------------------------------------------------------*/
\r
6 Object.defineProperty(exports, "__esModule", { value: true });
\r
7 exports.runSafe = exports.runSafeAsync = exports.formatError = void 0;
\r
8 const vscode_languageserver_1 = require("vscode-languageserver");
\r
9 function formatError(message, err) {
\r
10 if (err instanceof Error) {
\r
12 return `${message}: ${error.message}\n${error.stack}`;
\r
14 else if (typeof err === 'string') {
\r
15 return `${message}: ${err}`;
\r
18 return `${message}: ${err.toString()}`;
\r
22 exports.formatError = formatError;
\r
23 function runSafeAsync(func, errorVal, errorMessage, token) {
\r
24 return new Promise((resolve) => {
\r
25 setImmediate(() => {
\r
26 if (token.isCancellationRequested) {
\r
27 resolve(cancelValue());
\r
29 return func().then(result => {
\r
30 if (token.isCancellationRequested) {
\r
31 resolve(cancelValue());
\r
38 console.error(formatError(errorMessage, e));
\r
44 exports.runSafeAsync = runSafeAsync;
\r
45 function runSafe(func, errorVal, errorMessage, token) {
\r
46 return new Promise((resolve) => {
\r
47 setImmediate(() => {
\r
48 if (token.isCancellationRequested) {
\r
49 resolve(cancelValue());
\r
53 let result = func();
\r
54 if (token.isCancellationRequested) {
\r
55 resolve(cancelValue());
\r
63 console.error(formatError(errorMessage, e));
\r
70 exports.runSafe = runSafe;
\r
71 function cancelValue() {
\r
72 console.log('cancelled');
\r
73 return new vscode_languageserver_1.ResponseError(vscode_languageserver_1.LSPErrorCodes.RequestCancelled, 'Request cancelled');
\r
75 //# sourceMappingURL=runner.js.map