massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-json / node_modules / vscode-json-languageserver / out / utils / runner.js
diff --git a/.config/coc/extensions/node_modules/coc-json/node_modules/vscode-json-languageserver/out/utils/runner.js b/.config/coc/extensions/node_modules/coc-json/node_modules/vscode-json-languageserver/out/utils/runner.js
new file mode 100644 (file)
index 0000000..a6160d8
--- /dev/null
@@ -0,0 +1,75 @@
+"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