raas-server
Version:
rhamt as a service server
55 lines • 1.82 kB
JavaScript
;
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