massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-json / node_modules / vscode-json-languageserver / out / utils / runner.js
1 "use strict";\r
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
11         let error = err;\r
12         return `${message}: ${error.message}\n${error.stack}`;\r
13     }\r
14     else if (typeof err === 'string') {\r
15         return `${message}: ${err}`;\r
16     }\r
17     else if (err) {\r
18         return `${message}: ${err.toString()}`;\r
19     }\r
20     return message;\r
21 }\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
28             }\r
29             return func().then(result => {\r
30                 if (token.isCancellationRequested) {\r
31                     resolve(cancelValue());\r
32                     return;\r
33                 }\r
34                 else {\r
35                     resolve(result);\r
36                 }\r
37             }, e => {\r
38                 console.error(formatError(errorMessage, e));\r
39                 resolve(errorVal);\r
40             });\r
41         });\r
42     });\r
43 }\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
50             }\r
51             else {\r
52                 try {\r
53                     let result = func();\r
54                     if (token.isCancellationRequested) {\r
55                         resolve(cancelValue());\r
56                         return;\r
57                     }\r
58                     else {\r
59                         resolve(result);\r
60                     }\r
61                 }\r
62                 catch (e) {\r
63                     console.error(formatError(errorMessage, e));\r
64                     resolve(errorVal);\r
65                 }\r
66             }\r
67         });\r
68     });\r
69 }\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
74 }\r
75 //# sourceMappingURL=runner.js.map