UNPKG

raas-server

Version:
55 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vscode_languageserver_1 = require("vscode-languageserver"); class AbstractHandler { constructor(connection) { this.connection = connection; this.init(); } listen() { this.connection.listen(); } accept(func, errorVal, errorMessage, token) { return new Promise(resolve => { setImmediate(() => { if (token.isCancellationRequested) { resolve(this.cancelValue()); } else { try { const result = func(); if (token.isCancellationRequested) { resolve(this.cancelValue()); return; } else { resolve(result); } } catch (e) { console.error(this.formatError(errorMessage, e)); resolve(errorVal); } } }); }); } cancelValue() { return new vscode_languageserver_1.ResponseError(vscode_languageserver_1.ErrorCodes.RequestCancelled, 'Request cancelled'); } formatError(message, err) { if (err instanceof Error) { const 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; } } exports.AbstractHandler = AbstractHandler; //# sourceMappingURL=abstractHandler.js.map