mirror of https://github.com/grpc/grpc-node.git
Add package definition loader function to native package
This commit is contained in:
parent
08b98238cf
commit
bda109e655
|
@ -146,6 +146,29 @@ exports.load = function load(filename, format, options) {
|
|||
return loadObject(builder.ns, options);
|
||||
};
|
||||
|
||||
/**
|
||||
* Load a gRPC package definition as a gRPC object hierarchy
|
||||
* @param packageDef grpc~PackageDefinition The package definition object
|
||||
* @return {Object<string, *>} The resulting gRPC object
|
||||
*/
|
||||
exports.loadPackageDefinition = function loadPackageDefintion(packageDef) {
|
||||
const result = {};
|
||||
for (const serviceFqn in packageDef) {
|
||||
const service = packageDef[serviceFqn];
|
||||
const nameComponents = serviceFqn.split('.');
|
||||
const serviceName = nameComponents[-1];
|
||||
let current = result;
|
||||
for (const package in nameComponents.slice(0, -1)) {
|
||||
if (!current[package]) {
|
||||
current[package] = {};
|
||||
}
|
||||
current = current[package];
|
||||
}
|
||||
current[serviceName] = client.makeClientConstructor(service, serviceName, {});
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
var log_template = _.template(
|
||||
'{severity} {timestamp}\t{file}:{line}]\t{message}',
|
||||
{interpolate: /{([\s\S]+?)}/g});
|
||||
|
|
|
@ -170,3 +170,8 @@ exports.defaultGrpcOptions = {
|
|||
* An object that completely defines a service.
|
||||
* @typedef {Object.<string, grpc~MethodDefinition>} grpc~ServiceDefinition
|
||||
*/
|
||||
|
||||
/**
|
||||
* An object that defines a package hierarchy with multiple services
|
||||
* @typedef {Object.<string, grpc~ServiceDefinition>} grpc~PackageDefinition
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue