Merge pull request #705 from murgatroid99/grpc-native_loadPackageDefinition_fix

grpc native: Fix handling of non-service objects in package definitions
This commit is contained in:
Michael Lumish 2019-01-15 17:48:20 -08:00 committed by GitHub
commit 36d638b408
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 3 deletions

View File

@ -259,11 +259,20 @@ declare module "grpc" {
readonly [I in keyof ImplementationType]: MethodDefinition<any, any>;
}
/**
* An object that defines a protobuf type
*/
export interface ProtobufTypeDefinition {
format: string;
type: object;
fileDescriptorProtos: Buffer[];
}
/**
* An object that defines a package containing multiple services
*/
export type PackageDefinition = {
readonly [fullyQualifiedName: string]: ServiceDefinition<any>;
readonly [fullyQualifiedName: string]: ServiceDefinition<any> | ProtobufTypeDefinition;
}
/**

View File

@ -169,7 +169,11 @@ exports.loadPackageDefinition = function loadPackageDefintion(packageDef) {
}
current = current[packageName];
}
current[serviceName] = client.makeClientConstructor(service, serviceName, {});
if (service.hasOwnProperty('format')) {
current[serviceName] = service;
} else {
current[serviceName] = client.makeClientConstructor(service, serviceName, {});
}
}
return result;
};

View File

@ -317,9 +317,18 @@ exports.zipObject = function(props, values) {
* @typedef {Object.<string, grpc~MethodDefinition>} grpc~ServiceDefinition
*/
/**
* An object that defines a protobuf type
* @typedef {object} grpc~ProtobufTypeDefinition
* @param {string} format The format of the type definition object
* @param {*} type The type definition object
* @param {Buffer[]} fileDescriptorProtos Binary protobuf file
* descriptors for all files loaded to construct this type
*/
/**
* An object that defines a package hierarchy with multiple services
* @typedef {Object.<string, grpc~ServiceDefinition>} grpc~PackageDefinition
* @typedef {Object.<string, grpc~ServiceDefinition|grpc~ProtobufTypeDefinition>} grpc~PackageDefinition
*/
/**