Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

vscode-jsonrpc

Package Overview
Dependencies
Maintainers
1
Versions
130
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vscode-jsonrpc - npm Package Compare versions

Comparing version 0.10.0-pre.5 to 0.10.0-pre.6

6

lib/messageConnection.d.ts

@@ -1,5 +0,5 @@

import { RequestType, Response, ErrorCodes, ErrorInfo, NotificationType } from './messages';
export { Response, ErrorCodes, ErrorInfo, RequestType, NotificationType };
import { RequestType, ResponseError, ErrorCodes, NotificationType } from './messages';
export { ErrorCodes, ResponseError, RequestType, NotificationType };
export interface IRequestHandler<P, R, E> {
(params?: P): Response<R, E> | Thenable<Response<R, E>>;
(params?: P): R | ResponseError<E> | Thenable<R | ResponseError<E>>;
}

@@ -6,0 +6,0 @@ export interface INotificationHandler<P> {

@@ -7,2 +7,3 @@ /*---------------------------------------------------------

var messages_1 = require('./messages');
exports.ResponseError = messages_1.ResponseError;
exports.ErrorCodes = messages_1.ErrorCodes;

@@ -55,3 +56,3 @@ var messageReader_1 = require('./messageReader');

function handleRequest(requestMessage) {
function reply(response) {
function reply(resultOrError) {
var message = {

@@ -61,16 +62,26 @@ jsonrpc: version,

};
if (is.defined(response.error)) {
message.error = response.error;
if (resultOrError instanceof messages_1.ResponseError) {
message.error = resultOrError.toJson();
}
else if (is.defined(response.result)) {
message.result = response.result;
}
else {
message.error = {
code: messages_1.ErrorCodes.InvalidRequest,
message: "The request " + requestMessage.method + " did neither return a result nor a error."
};
message.result = resultOrError;
}
protocolWriter.write(message);
}
function replyError(error) {
var message = {
jsonrpc: version,
id: requestMessage.id,
error: error.toJson()
};
protocolWriter.write(message);
}
function replySuccess(result) {
var message = {
jsonrpc: version,
id: requestMessage.id,
result: result
};
protocolWriter.write(message);
}
var requestHandler = requestHandlers[requestMessage.method];

@@ -82,16 +93,16 @@ if (requestHandler) {

if (!promise) {
reply({ result: {} });
replySuccess({});
}
else if (promise.then) {
promise.then(function (response) {
reply(response);
promise.then(function (resultOrError) {
reply(resultOrError);
}, function (error) {
if (messages_1.isFailedResponse(error)) {
reply(error);
if (error instanceof messages_1.ResponseError) {
replyError(error);
}
else if (error && is.string(error.message)) {
reply({ error: { code: messages_1.ErrorCodes.InternalError, message: "Request " + requestMessage.method + " failed with message: " + error.message } });
replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, "Request " + requestMessage.method + " failed with message: " + error.message));
}
else {
reply({ error: { code: messages_1.ErrorCodes.InternalError, message: "Request " + requestMessage.method + " failed unexpectedly without providing any details." } });
replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, "Request " + requestMessage.method + " failed unexpectedly without providing any details."));
}

@@ -105,7 +116,10 @@ });

catch (error) {
if (error && is.string(error.message)) {
reply({ error: { code: messages_1.ErrorCodes.InternalError, message: "Request " + requestMessage.method + " failed with message: " + error.message } });
if (error instanceof messages_1.ResponseError) {
reply(error);
}
else if (error && is.string(error.message)) {
replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, "Request " + requestMessage.method + " failed with message: " + error.message));
}
else {
reply({ error: { code: messages_1.ErrorCodes.InternalError, message: "Request " + requestMessage.method + " failed unexpectedly without providing any details." } });
replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, "Request " + requestMessage.method + " failed unexpectedly without providing any details."));
}

@@ -115,3 +129,3 @@ }

else {
reply({ error: { code: messages_1.ErrorCodes.MethodNotFound, message: "Unhandled method " + requestMessage.method } });
replyError(new messages_1.ResponseError(messages_1.ErrorCodes.MethodNotFound, "Unhandled method " + requestMessage.method));
}

@@ -118,0 +132,0 @@ }

@@ -53,7 +53,3 @@ /**

}
/**
* A error object return in a response in case a request
* has failed.
*/
export interface ErrorInfo<D> {
export interface ResponseErrorLiteral<D> {
/**

@@ -73,12 +69,12 @@ * A number indicating the error type that occured

}
export interface Response<R, E> {
/**
* The result of a request. This can be omitted in
* the case of an error
*/
result?: R;
/**
* The error object in case a request fails.
*/
error?: ErrorInfo<E>;
/**
* A error object return in a response in case a request
* has failed.
*/
export declare class ResponseError<D> extends Error {
code: number;
message: string;
data: D;
constructor(code: number, message: string, data?: D);
toJson(): ResponseErrorLiteral<D>;
}

@@ -101,3 +97,3 @@ /**

*/
error?: ErrorInfo<any>;
error?: ResponseErrorLiteral<any>;
}

@@ -138,4 +134,1 @@ /**

export declare function isReponseMessage(message: Message): message is ResponseMessage;
export declare function isResponse(value: any): boolean;
export declare function isFailedResponse(value: any): boolean;
export declare function isSuccessfulResponse(value: any): boolean;

@@ -5,2 +5,7 @@ /*---------------------------------------------------------

'use strict';
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var is = require('./is');

@@ -39,2 +44,30 @@ /**

/**
* A error object return in a response in case a request
* has failed.
*/
var ResponseError = (function (_super) {
__extends(ResponseError, _super);
function ResponseError(code, message, data) {
_super.call(this, message);
this.code = code;
this.message = message;
if (is.defined(data)) {
this.data = data;
}
}
ResponseError.prototype.toJson = function () {
var result = {
code: this.code,
message: this.message
};
if (is.defined(this.data)) {
result.data = this.data;
}
;
return result;
};
return ResponseError;
})(Error);
exports.ResponseError = ResponseError;
/**
* Tests if the given message is a request message

@@ -63,16 +96,1 @@ */

exports.isReponseMessage = isReponseMessage;
function isResponse(value) {
var candidate = value;
return candidate && (is.defined(candidate.result) || is.defined(candidate.error));
}
exports.isResponse = isResponse;
function isFailedResponse(value) {
var candidate = value;
return candidate && is.defined(candidate.error) && is.undefined(candidate.result);
}
exports.isFailedResponse = isFailedResponse;
function isSuccessfulResponse(value) {
var candidate = value;
return candidate && is.defined(candidate.result) && is.undefined(candidate.error);
}
exports.isSuccessfulResponse = isSuccessfulResponse;
{
"name": "vscode-jsonrpc",
"description": "A json rpc implementation over streams",
"version": "0.10.0-pre.5",
"version": "0.10.0-pre.6",
"author": "Microsoft Corporation",

@@ -6,0 +6,0 @@ "license": "MIT",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc