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

vscode-jsonrpc

Package Overview
Dependencies
Maintainers
9
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 1.2.0 to 2.0.0-pre.1

lib/cancellation.d.ts

26

lib/main.d.ts
import { RequestType, ResponseError, ErrorCodes, NotificationType } from './messages';
import { IMessageReader, DataCallback, StreamMessageReader, IPCMessageReader } from './messageReader';
import { IMessageWriter, StreamMessageWriter, IPCMessageWriter } from './messageWriter';
export { ErrorCodes, ResponseError, RequestType, NotificationType, IMessageReader, DataCallback, StreamMessageReader, IPCMessageReader, IMessageWriter, StreamMessageWriter, IPCMessageWriter };
export interface IRequestHandler<P, R, E> {
(params?: P): R | ResponseError<E> | Thenable<R | ResponseError<E>>;
import { MessageReader, DataCallback, StreamMessageReader, IPCMessageReader } from './messageReader';
import { MessageWriter, StreamMessageWriter, IPCMessageWriter } from './messageWriter';
import { Disposable, Event, Emitter } from './events';
import { CancellationTokenSource, CancellationToken } from './cancellation';
export { ErrorCodes, ResponseError, RequestType, NotificationType, MessageReader, DataCallback, StreamMessageReader, IPCMessageReader, MessageWriter, StreamMessageWriter, IPCMessageWriter, CancellationTokenSource, CancellationToken, Disposable, Event, Emitter };
export interface RequestHandler<P, R, E> {
(params: P, token: CancellationToken): R | ResponseError<E> | Thenable<R | ResponseError<E>>;
}
export interface INotificationHandler<P> {
(params?: P): void;
export interface NotificationHandler<P> {
(params: P): void;
}

@@ -18,6 +20,6 @@ export interface ILogger {

export interface MessageConnection {
sendRequest<P, R, E>(type: RequestType<P, R, E>, params?: P): Thenable<R>;
onRequest<P, R, E>(type: RequestType<P, R, E>, handler: IRequestHandler<P, R, E>): void;
sendRequest<P, R, E>(type: RequestType<P, R, E>, params: P, token?: CancellationToken): Thenable<R>;
onRequest<P, R, E>(type: RequestType<P, R, E>, handler: RequestHandler<P, R, E>): void;
sendNotification<P>(type: NotificationType<P>, params?: P): void;
onNotification<P>(type: NotificationType<P>, handler: INotificationHandler<P>): void;
onNotification<P>(type: NotificationType<P>, handler: NotificationHandler<P>): void;
listen(): any;

@@ -30,5 +32,5 @@ dispose(): void;

}
export declare function createServerMessageConnection(reader: IMessageReader, writer: IMessageWriter, logger: ILogger): ServerMessageConnection;
export declare function createServerMessageConnection(reader: MessageReader, writer: MessageWriter, logger: ILogger): ServerMessageConnection;
export declare function createServerMessageConnection(inputStream: NodeJS.ReadableStream, outputStream: NodeJS.WritableStream, logger: ILogger): ServerMessageConnection;
export declare function createClientMessageConnection(reader: IMessageReader, writer: IMessageWriter, logger: ILogger): ClientMessageConnection;
export declare function createClientMessageConnection(reader: MessageReader, writer: MessageWriter, logger: ILogger): ClientMessageConnection;
export declare function createClientMessageConnection(inputStream: NodeJS.ReadableStream, outputStream: NodeJS.WritableStream, logger: ILogger): ClientMessageConnection;

@@ -16,2 +16,12 @@ /* --------------------------------------------------------------------------------------------

exports.IPCMessageWriter = messageWriter_1.IPCMessageWriter;
var events_1 = require('./events');
exports.Event = events_1.Event;
exports.Emitter = events_1.Emitter;
var cancellation_1 = require('./cancellation');
exports.CancellationTokenSource = cancellation_1.CancellationTokenSource;
exports.CancellationToken = cancellation_1.CancellationToken;
var CancelNotification;
(function (CancelNotification) {
CancelNotification.type = { get method() { return '$/cancelRequest'; } };
})(CancelNotification || (CancelNotification = {}));
function createMessageConnection(messageReader, messageWriter, logger, client) {

@@ -22,4 +32,5 @@ if (client === void 0) { client = false; }

var requestHandlers = Object.create(null);
var responseHandlers = Object.create(null);
var eventHandlers = Object.create(null);
var responsePromises = Object.create(null);
var requestTokens = Object.create(null);
function handleRequest(requestMessage) {

@@ -62,6 +73,10 @@ function reply(resultOrError) {

if (requestHandler) {
var cancellationSource = new cancellation_1.CancellationTokenSource();
var tokenKey_1 = String(requestMessage.id);
requestTokens[tokenKey_1] = cancellationSource;
try {
var handlerResult = requestHandler(requestMessage.params);
var handlerResult = requestHandler(requestMessage.params, cancellationSource.token);
var promise = handlerResult;
if (!handlerResult) {
delete requestTokens[tokenKey_1];
replySuccess(handlerResult);

@@ -71,4 +86,6 @@ }

promise.then(function (resultOrError) {
delete requestTokens[tokenKey_1];
reply(resultOrError);
}, function (error) {
delete requestTokens[tokenKey_1];
if (error instanceof messages_1.ResponseError) {

@@ -86,2 +103,3 @@ replyError(error);

else {
delete requestTokens[tokenKey_1];
reply(handlerResult);

@@ -91,2 +109,3 @@ }

catch (error) {
delete requestTokens[tokenKey_1];
if (error instanceof messages_1.ResponseError) {

@@ -109,3 +128,3 @@ reply(error);

var key = String(responseMessage.id);
var responseHandler = responseHandlers[key];
var responseHandler = responsePromises[key];
if (responseHandler) {

@@ -122,3 +141,3 @@ try {

}
delete responseHandlers[key];
delete responsePromises[key];
}

@@ -136,3 +155,15 @@ catch (error) {

function handleNotification(message) {
var eventHandler = eventHandlers[message.method];
var eventHandler;
if (message.method === CancelNotification.type.method) {
eventHandler = function (params) {
var id = params.id;
var source = requestTokens[String(id)];
if (source) {
source.cancel();
}
};
}
else {
eventHandler = eventHandlers[message.method];
}
if (eventHandler) {

@@ -162,3 +193,3 @@ try {

var key = String(responseMessage.id);
var responseHandler = responseHandlers[key];
var responseHandler = responsePromises[key];
if (responseHandler) {

@@ -195,5 +226,5 @@ responseHandler.reject(new Error('The received response has neither a result nor an error property.'));

},
sendRequest: function (type, params) {
return new Promise(function (resolve, reject) {
var id = sequenceNumber++;
sendRequest: function (type, params, token) {
var id = sequenceNumber++;
var result = new Promise(function (resolve, reject) {
var requestMessage = {

@@ -205,5 +236,11 @@ jsonrpc: version,

};
responseHandlers[String(id)] = { method: type.method, resolve: resolve, reject: reject };
responsePromises[String(id)] = { method: type.method, resolve: resolve, reject: reject };
messageWriter.write(requestMessage);
});
if (token) {
token.onCancellationRequested(function (event) {
connection.sendNotification(CancelNotification.type, { id: id });
});
}
return result;
},

@@ -210,0 +247,0 @@ onRequest: function (type, handler) {

@@ -6,6 +6,6 @@ import { ChildProcess } from 'child_process';

}
export interface IMessageReader {
export interface MessageReader {
listen(callback: DataCallback): void;
}
export declare class StreamMessageReader implements IMessageReader {
export declare class StreamMessageReader implements MessageReader {
private readable;

@@ -19,3 +19,3 @@ private callback;

}
export declare class IPCMessageReader implements IMessageReader {
export declare class IPCMessageReader implements MessageReader {
private process;

@@ -22,0 +22,0 @@ constructor(process: NodeJS.Process | ChildProcess);

@@ -83,3 +83,3 @@ /* --------------------------------------------------------------------------------------------

return MessageBuffer;
})();
}());
var StreamMessageReader = (function () {

@@ -127,3 +127,3 @@ function StreamMessageReader(readable, encoding) {

return StreamMessageReader;
})();
}());
exports.StreamMessageReader = StreamMessageReader;

@@ -138,3 +138,3 @@ var IPCMessageReader = (function () {

return IPCMessageReader;
})();
}());
exports.IPCMessageReader = IPCMessageReader;

@@ -51,3 +51,3 @@ /* --------------------------------------------------------------------------------------------

return ResponseError;
})(Error);
}(Error));
exports.ResponseError = ResponseError;

@@ -54,0 +54,0 @@ /**

import { ChildProcess } from 'child_process';
import { Message } from './messages';
export interface IMessageWriter {
export interface MessageWriter {
write(msg: Message): void;
}
export declare class StreamMessageWriter implements IMessageWriter {
export declare class StreamMessageWriter implements MessageWriter {
private writable;

@@ -12,3 +12,3 @@ private encoding;

}
export declare class IPCMessageWriter implements IMessageWriter {
export declare class IPCMessageWriter implements MessageWriter {
private process;

@@ -15,0 +15,0 @@ constructor(process: NodeJS.Process | ChildProcess);

@@ -27,3 +27,3 @@ /* --------------------------------------------------------------------------------------------

return StreamMessageWriter;
})();
}());
exports.StreamMessageWriter = StreamMessageWriter;

@@ -38,3 +38,3 @@ var IPCMessageWriter = (function () {

return IPCMessageWriter;
})();
}());
exports.IPCMessageWriter = IPCMessageWriter;
{
"name": "vscode-jsonrpc",
"description": "A json rpc implementation over streams",
"version": "1.2.0",
"version": "2.0.0-pre.1",
"author": "Microsoft Corporation",

@@ -17,4 +17,4 @@ "license": "MIT",

"devDependencies": {
"mocha": "^2.3.2",
"typescript": "^1.7.5"
"mocha": "^2.4.5",
"typescript": "^1.8.9"
},

@@ -21,0 +21,0 @@ "scripts": {

THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
For Microsoft vscode-isonrpc
For Microsoft vscode-jsonrpc
This project incorporates material from the project(s) listed below (collectively, “Third Party Code”).
Microsoft is not the original author of the Third Party Code. The original copyright notice and license
under which Microsoft received such Third Party Code are set out below. This Third Party Code is licensed
to you under their original license terms set forth below. Microsoft reserves all other rights not expressly
Microsoft is not the original author of the Third Party Code. The original copyright notice and license
under which Microsoft received such Third Party Code are set out below. This Third Party Code is licensed
to you under their original license terms set forth below. Microsoft reserves all other rights not expressly
granted, whether by implication, estoppel or otherwise.
1. DefinitelyTyped version 0.0.1 (https://github.com/borisyankov/DefinitelyTyped)
This project is licensed under the MIT license.
Copyrights are respective of each contributor listed at the beginning of each definition file.
Permission is hereby granted, free of charge, to any person obtaining a copy

@@ -21,6 +21,6 @@ of this software and associated documentation files (the "Software"), to deal

furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

@@ -27,0 +27,0 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

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