Socket
Socket
Sign inDemoInstall

@grpc/grpc-js

Package Overview
Dependencies
Maintainers
3
Versions
178
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@grpc/grpc-js - npm Package Compare versions

Comparing version 0.6.8 to 0.6.9

37

build/src/load-balancer-pick-first.js

@@ -109,2 +109,8 @@ "use strict";

else {
if (this.triedAllSubchannels && this.subchannelStateCounts[channel_1.ConnectivityState.IDLE] === this.subchannels.length) {
/* If all of the subchannels are IDLE we should go back to a
* basic IDLE state where there is no subchannel list to avoid
* holding unused resources */
this.resetSubchannelList();
}
if (this.currentPick === null) {

@@ -143,18 +149,23 @@ if (this.triedAllSubchannels) {

if (this.subchannels.length > 0) {
let newLBState;
if (this.subchannelStateCounts[channel_1.ConnectivityState.CONNECTING] > 0) {
newLBState = channel_1.ConnectivityState.CONNECTING;
if (this.triedAllSubchannels) {
let newLBState;
if (this.subchannelStateCounts[channel_1.ConnectivityState.CONNECTING] > 0) {
newLBState = channel_1.ConnectivityState.CONNECTING;
}
else if (this.subchannelStateCounts[channel_1.ConnectivityState.TRANSIENT_FAILURE] > 0) {
newLBState = channel_1.ConnectivityState.TRANSIENT_FAILURE;
}
else {
newLBState = channel_1.ConnectivityState.IDLE;
}
if (newLBState === channel_1.ConnectivityState.TRANSIENT_FAILURE) {
this.updateState(newLBState, new picker_1.UnavailablePicker());
}
else {
this.updateState(newLBState, new picker_1.QueuePicker(this));
}
}
else if (this.subchannelStateCounts[channel_1.ConnectivityState.TRANSIENT_FAILURE] > 0) {
newLBState = channel_1.ConnectivityState.TRANSIENT_FAILURE;
}
else {
newLBState = channel_1.ConnectivityState.IDLE;
this.updateState(channel_1.ConnectivityState.CONNECTING, new picker_1.QueuePicker(this));
}
if (newLBState === channel_1.ConnectivityState.TRANSIENT_FAILURE) {
this.updateState(newLBState, new picker_1.UnavailablePicker());
}
else {
this.updateState(newLBState, new picker_1.QueuePicker(this));
}
}

@@ -161,0 +172,0 @@ else {

@@ -40,2 +40,3 @@ import { ChannelControlHelper, LoadBalancer } from './load-balancer';

private innerBalancerState;
private innerBalancerPicker;
/**

@@ -66,2 +67,7 @@ * The most recent reported state of the pendingReplacementLoadBalancer.

/**
* Indicates whether we should attempt to resolve again after the backoff
* timer runs out.
*/
private continueResolving;
/**
* Wrapper class that behaves like a `LoadBalancer` and also handles name

@@ -79,2 +85,3 @@ * resolution internally.

constructor(target: string, channelControlHelper: ChannelControlHelper, defaultServiceConfig: ServiceConfig | null);
private updateResolution;
private updateState;

@@ -81,0 +88,0 @@ /**

@@ -78,2 +78,3 @@ "use strict";

this.innerBalancerState = channel_1.ConnectivityState.IDLE;
this.innerBalancerPicker = new picker_1.UnavailablePicker();
/**

@@ -91,2 +92,7 @@ * The most recent reported state of the pendingReplacementLoadBalancer.

this.replacementBalancerPicker = new picker_1.UnavailablePicker();
/**
* Indicates whether we should attempt to resolve again after the backoff
* timer runs out.
*/
this.continueResolving = false;
this.updateState(channel_1.ConnectivityState.IDLE, new picker_1.QueuePicker(this));

@@ -192,2 +198,6 @@ this.innerResolver = resolver_1.createResolver(target, {

this.innerBalancerState = connectivityState;
if (connectivityState === channel_1.ConnectivityState.IDLE) {
picker = new picker_1.QueuePicker(this);
}
this.innerBalancerPicker = picker;
if (connectivityState !== channel_1.ConnectivityState.READY &&

@@ -198,2 +208,8 @@ this.pendingReplacementLoadBalancer !== null) {

else {
if (connectivityState === channel_1.ConnectivityState.IDLE) {
if (this.innerLoadBalancer) {
this.innerLoadBalancer.destroy();
this.innerLoadBalancer = null;
}
}
this.updateState(connectivityState, picker);

@@ -208,5 +224,8 @@ }

* updateResolution */
if (!this.backoffTimeout.isRunning()) {
this.innerResolver.updateResolution();
if (this.backoffTimeout.isRunning()) {
this.continueResolving = true;
}
else {
this.updateResolution();
}
}

@@ -220,2 +239,5 @@ },

updateState: (connectivityState, picker) => {
if (connectivityState === channel_1.ConnectivityState.IDLE) {
picker = new picker_1.QueuePicker(this);
}
this.replacementBalancerState = connectivityState;

@@ -226,22 +248,43 @@ this.replacementBalancerPicker = picker;

}
else if (connectivityState === channel_1.ConnectivityState.IDLE) {
if (this.pendingReplacementLoadBalancer) {
this.pendingReplacementLoadBalancer.destroy();
this.pendingReplacementLoadBalancer = null;
}
}
},
requestReresolution: () => {
if (!this.backoffTimeout.isRunning()) {
/* If the backoffTimeout is running, we're still backing off from
* making resolve requests, so we shouldn't make another one here.
* In that case, the backoff timer callback will call
* updateResolution */
this.innerResolver.updateResolution();
/* If the backoffTimeout is running, we're still backing off from
* making resolve requests, so we shouldn't make another one here.
* In that case, the backoff timer callback will call
* updateResolution */
if (this.backoffTimeout.isRunning()) {
this.continueResolving = true;
}
else {
this.updateResolution();
}
},
};
this.backoffTimeout = new backoff_timeout_1.BackoffTimeout(() => {
if (this.innerLoadBalancer === null) {
this.updateState(channel_1.ConnectivityState.IDLE, new picker_1.QueuePicker(this));
if (this.continueResolving) {
this.updateResolution();
this.continueResolving = false;
}
else {
this.innerResolver.updateResolution();
if (this.innerLoadBalancer === null) {
this.updateState(channel_1.ConnectivityState.IDLE, new picker_1.QueuePicker(this));
}
else {
this.updateState(this.innerBalancerState, this.innerBalancerPicker);
}
}
});
}
updateResolution() {
this.innerResolver.updateResolution();
if (this.innerLoadBalancer === null || this.innerBalancerState === channel_1.ConnectivityState.IDLE) {
this.updateState(channel_1.ConnectivityState.CONNECTING, new picker_1.QueuePicker(this));
}
}
updateState(connectivitystate, picker) {

@@ -263,6 +306,7 @@ trace(this.target + ' ' + channel_1.ConnectivityState[this.currentState] + ' -> ' + channel_1.ConnectivityState[connectivitystate]);

this.innerBalancerState = this.replacementBalancerState;
this.innerBalancerPicker = this.replacementBalancerPicker;
this.updateState(this.replacementBalancerState, this.replacementBalancerPicker);
}
handleResolutionFailure(error) {
if (this.innerLoadBalancer === null) {
if (this.innerLoadBalancer === null || this.innerBalancerState === channel_1.ConnectivityState.IDLE) {
this.updateState(channel_1.ConnectivityState.TRANSIENT_FAILURE, new picker_1.UnavailablePicker(error));

@@ -277,3 +321,8 @@ }

if (this.currentState === channel_1.ConnectivityState.IDLE) {
this.innerResolver.updateResolution();
if (this.backoffTimeout.isRunning()) {
this.continueResolving = true;
}
else {
this.updateResolution();
}
this.updateState(channel_1.ConnectivityState.CONNECTING, new picker_1.QueuePicker(this));

@@ -280,0 +329,0 @@ }

{
"name": "@grpc/grpc-js",
"version": "0.6.8",
"version": "0.6.9",
"description": "gRPC Library for Node - pure JS implementation",

@@ -5,0 +5,0 @@ "homepage": "https://grpc.io/",

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