Skip to content

Commit

Permalink
Merge pull request #196 from murgatroid99/package_definition_loader
Browse files Browse the repository at this point in the history
Add package definition loader function to native package
  • Loading branch information
murgatroid99 authored Feb 27, 2018
2 parents 16dacc0 + ea704f9 commit 01ce272
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
23 changes: 23 additions & 0 deletions packages/grpc-native-core/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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[nameComponents.length-1];
let current = result;
for (const packageName in nameComponents.slice(0, -1)) {
if (!current[packageName]) {
current[packageName] = {};
}
current = current[packageName];
}
current[serviceName] = client.makeClientConstructor(service, serviceName, {});
}
return result;
};

var log_template = _.template(
'{severity} {timestamp}\t{file}:{line}]\t{message}',
{interpolate: /{([\s\S]+?)}/g});
Expand Down
5 changes: 5 additions & 0 deletions packages/grpc-native-core/src/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/

0 comments on commit 01ce272

Please sign in to comment.