--- /dev/null
+"use strict";\r
+/*---------------------------------------------------------------------------------------------\r
+ * Copyright (c) Microsoft Corporation. All rights reserved.\r
+ * Licensed under the MIT License. See License.txt in the project root for license information.\r
+ *--------------------------------------------------------------------------------------------*/\r
+Object.defineProperty(exports, "__esModule", { value: true });\r
+exports.runSafe = exports.runSafeAsync = exports.formatError = void 0;\r
+const vscode_languageserver_1 = require("vscode-languageserver");\r
+function formatError(message, err) {\r
+ if (err instanceof Error) {\r
+ let error = err;\r
+ return `${message}: ${error.message}\n${error.stack}`;\r
+ }\r
+ else if (typeof err === 'string') {\r
+ return `${message}: ${err}`;\r
+ }\r
+ else if (err) {\r
+ return `${message}: ${err.toString()}`;\r
+ }\r
+ return message;\r
+}\r
+exports.formatError = formatError;\r
+function runSafeAsync(func, errorVal, errorMessage, token) {\r
+ return new Promise((resolve) => {\r
+ setImmediate(() => {\r
+ if (token.isCancellationRequested) {\r
+ resolve(cancelValue());\r
+ }\r
+ return func().then(result => {\r
+ if (token.isCancellationRequested) {\r
+ resolve(cancelValue());\r
+ return;\r
+ }\r
+ else {\r
+ resolve(result);\r
+ }\r
+ }, e => {\r
+ console.error(formatError(errorMessage, e));\r
+ resolve(errorVal);\r
+ });\r
+ });\r
+ });\r
+}\r
+exports.runSafeAsync = runSafeAsync;\r
+function runSafe(func, errorVal, errorMessage, token) {\r
+ return new Promise((resolve) => {\r
+ setImmediate(() => {\r
+ if (token.isCancellationRequested) {\r
+ resolve(cancelValue());\r
+ }\r
+ else {\r
+ try {\r
+ let result = func();\r
+ if (token.isCancellationRequested) {\r
+ resolve(cancelValue());\r
+ return;\r
+ }\r
+ else {\r
+ resolve(result);\r
+ }\r
+ }\r
+ catch (e) {\r
+ console.error(formatError(errorMessage, e));\r
+ resolve(errorVal);\r
+ }\r
+ }\r
+ });\r
+ });\r
+}\r
+exports.runSafe = runSafe;\r
+function cancelValue() {\r
+ console.log('cancelled');\r
+ return new vscode_languageserver_1.ResponseError(vscode_languageserver_1.LSPErrorCodes.RequestCancelled, 'Request cancelled');\r
+}\r
+//# sourceMappingURL=runner.js.map
\ No newline at end of file