mirror of https://github.com/grpc/grpc-node.git
Ensure that client generated methods don't conflict with other properties
This commit is contained in:
parent
dd5ef7a1d7
commit
a33965a0c0
|
@ -236,7 +236,7 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
|
||||||
deadline = Infinity;
|
deadline = Infinity;
|
||||||
}
|
}
|
||||||
var emitter = new EventEmitter();
|
var emitter = new EventEmitter();
|
||||||
var call = new grpc.Call(this.channel, method, deadline);
|
var call = new grpc.Call(this.$channel, method, deadline);
|
||||||
if (metadata === null || metadata === undefined) {
|
if (metadata === null || metadata === undefined) {
|
||||||
metadata = {};
|
metadata = {};
|
||||||
}
|
}
|
||||||
|
@ -246,7 +246,7 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
|
||||||
emitter.getPeer = function getPeer() {
|
emitter.getPeer = function getPeer() {
|
||||||
return call.getPeer();
|
return call.getPeer();
|
||||||
};
|
};
|
||||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
callback(error);
|
callback(error);
|
||||||
|
@ -309,12 +309,12 @@ function makeClientStreamRequestFunction(method, serialize, deserialize) {
|
||||||
if (deadline === undefined) {
|
if (deadline === undefined) {
|
||||||
deadline = Infinity;
|
deadline = Infinity;
|
||||||
}
|
}
|
||||||
var call = new grpc.Call(this.channel, method, deadline);
|
var call = new grpc.Call(this.$channel, method, deadline);
|
||||||
if (metadata === null || metadata === undefined) {
|
if (metadata === null || metadata === undefined) {
|
||||||
metadata = {};
|
metadata = {};
|
||||||
}
|
}
|
||||||
var stream = new ClientWritableStream(call, serialize);
|
var stream = new ClientWritableStream(call, serialize);
|
||||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
callback(error);
|
callback(error);
|
||||||
|
@ -383,12 +383,12 @@ function makeServerStreamRequestFunction(method, serialize, deserialize) {
|
||||||
if (deadline === undefined) {
|
if (deadline === undefined) {
|
||||||
deadline = Infinity;
|
deadline = Infinity;
|
||||||
}
|
}
|
||||||
var call = new grpc.Call(this.channel, method, deadline);
|
var call = new grpc.Call(this.$channel, method, deadline);
|
||||||
if (metadata === null || metadata === undefined) {
|
if (metadata === null || metadata === undefined) {
|
||||||
metadata = {};
|
metadata = {};
|
||||||
}
|
}
|
||||||
var stream = new ClientReadableStream(call, deserialize);
|
var stream = new ClientReadableStream(call, deserialize);
|
||||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
stream.emit('error', error);
|
stream.emit('error', error);
|
||||||
|
@ -455,12 +455,12 @@ function makeBidiStreamRequestFunction(method, serialize, deserialize) {
|
||||||
if (deadline === undefined) {
|
if (deadline === undefined) {
|
||||||
deadline = Infinity;
|
deadline = Infinity;
|
||||||
}
|
}
|
||||||
var call = new grpc.Call(this.channel, method, deadline);
|
var call = new grpc.Call(this.$channel, method, deadline);
|
||||||
if (metadata === null || metadata === undefined) {
|
if (metadata === null || metadata === undefined) {
|
||||||
metadata = {};
|
metadata = {};
|
||||||
}
|
}
|
||||||
var stream = new ClientDuplexStream(call, serialize, deserialize);
|
var stream = new ClientDuplexStream(call, serialize, deserialize);
|
||||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
stream.emit('error', error);
|
stream.emit('error', error);
|
||||||
|
@ -545,14 +545,17 @@ exports.makeClientConstructor = function(methods, serviceName) {
|
||||||
options = {};
|
options = {};
|
||||||
}
|
}
|
||||||
options['grpc.primary_user_agent'] = 'grpc-node/' + version;
|
options['grpc.primary_user_agent'] = 'grpc-node/' + version;
|
||||||
this.channel = new grpc.Channel(address, options);
|
this.$channel = new grpc.Channel(address, options);
|
||||||
this.server_address = address.replace(/\/$/, '');
|
this.$server_address = address.replace(/\/$/, '');
|
||||||
this.auth_uri = this.server_address + '/' + serviceName;
|
this.$auth_uri = this.$server_address + '/' + serviceName;
|
||||||
this.updateMetadata = updateMetadata;
|
this.$updateMetadata = updateMetadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
_.each(methods, function(attrs, name) {
|
_.each(methods, function(attrs, name) {
|
||||||
var method_type;
|
var method_type;
|
||||||
|
if (_.startsWith(name, '$')) {
|
||||||
|
throw new Error('Method names cannot start with $');
|
||||||
|
}
|
||||||
if (attrs.requestStream) {
|
if (attrs.requestStream) {
|
||||||
if (attrs.responseStream) {
|
if (attrs.responseStream) {
|
||||||
method_type = 'bidi';
|
method_type = 'bidi';
|
||||||
|
|
|
@ -110,6 +110,24 @@ describe('Server.prototype.addProtoService', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe('Client constructor building', function() {
|
||||||
|
var illegal_service_attrs = {
|
||||||
|
$method : {
|
||||||
|
path: '/illegal/$method',
|
||||||
|
requestStream: false,
|
||||||
|
responseStream: false,
|
||||||
|
requestSerialize: _.identity,
|
||||||
|
requestDeserialize: _.identity,
|
||||||
|
responseSerialize: _.identity,
|
||||||
|
responseDeserialize: _.identity
|
||||||
|
}
|
||||||
|
};
|
||||||
|
it('Should reject method names starting with $', function() {
|
||||||
|
assert.throws(function() {
|
||||||
|
grpc.makeGenericClientConstructor(illegal_service_attrs);
|
||||||
|
}, /\$/);
|
||||||
|
});
|
||||||
|
});
|
||||||
describe('Echo service', function() {
|
describe('Echo service', function() {
|
||||||
var server;
|
var server;
|
||||||
var client;
|
var client;
|
||||||
|
@ -344,7 +362,7 @@ describe('Other conditions', function() {
|
||||||
server.shutdown();
|
server.shutdown();
|
||||||
});
|
});
|
||||||
it('channel.getTarget should be available', function() {
|
it('channel.getTarget should be available', function() {
|
||||||
assert.strictEqual(typeof client.channel.getTarget(), 'string');
|
assert.strictEqual(typeof client.$channel.getTarget(), 'string');
|
||||||
});
|
});
|
||||||
describe('Server recieving bad input', function() {
|
describe('Server recieving bad input', function() {
|
||||||
var misbehavingClient;
|
var misbehavingClient;
|
||||||
|
|
Loading…
Reference in New Issue