From 0029a68d1ab207c0dbf20ffc06f55c87559ef7f2 Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Thu, 7 Dec 2017 14:40:10 -0800 Subject: [PATCH 1/2] grpc-protobufjs: small fixes --- packages/grpc-protobufjs/index.js | 4 ++-- packages/grpc-protobufjs/protobuf_js_6_common.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/grpc-protobufjs/index.js b/packages/grpc-protobufjs/index.js index 5e7ede99c..40f1d6f3e 100644 --- a/packages/grpc-protobufjs/index.js +++ b/packages/grpc-protobufjs/index.js @@ -27,8 +27,8 @@ module.exports = function(grpc) { let exports = {}; - const protobuf_js_5_common = require('protobuf_js_5_common')(grpc); - const protobuf_js_6_common = require('protobuf_js_6_common')(grpc); + const protobuf_js_5_common = require('./protobuf_js_5_common')(grpc); + const protobuf_js_6_common = require('./protobuf_js_6_common')(grpc); /** * Default options for loading proto files into gRPC diff --git a/packages/grpc-protobufjs/protobuf_js_6_common.js b/packages/grpc-protobufjs/protobuf_js_6_common.js index 76241994b..e191c5a19 100644 --- a/packages/grpc-protobufjs/protobuf_js_6_common.js +++ b/packages/grpc-protobufjs/protobuf_js_6_common.js @@ -70,7 +70,7 @@ module.exports = function(grpc) { * @return {Buffer} The serialized object */ return function serialize(arg) { - var message = cls.fromObject(arg); + var message = arg ? cls.fromObject(arg) : {}; return cls.encode(message).finish(); }; }; @@ -134,7 +134,7 @@ module.exports = function(grpc) { if (value.hasOwnProperty('methods')) { // It's a service object var service_attrs = getProtobufServiceAttrs(value, options); - return grpc..makeGenericClientConstructor(service_attrs); + return grpc.makeGenericClientConstructor(service_attrs); } if (value.hasOwnProperty('nested')) { From 8198707612777a17e4bd5694917ce2267b60d5e4 Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Fri, 8 Dec 2017 15:22:47 -0800 Subject: [PATCH 2/2] grpc-js: conformant interface --- packages/grpc-js/src/index.ts | 46 +++++++++++++++++++++++++++++++++- packages/grpc-surface/index.js | 2 ++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/packages/grpc-js/src/index.ts b/packages/grpc-js/src/index.ts index 47b866a42..2b5e2f6e1 100644 --- a/packages/grpc-js/src/index.ts +++ b/packages/grpc-js/src/index.ts @@ -18,4 +18,48 @@ 'use strict'; -module.exports = require('@grpc/surface')(require('@grpc/js-core')); +import { + CallCredentials, + ChannelCredentials, + Metadata, + Status, + PropagateFlags, + Client +} from '@grpc/js-core'; + +const compose = S }, T>(a: S, b: T) => a.compose(b); + +const notImplementedFn = () => { throw new Error('Not implemented'); } + +module.exports = require('@grpc/surface')({ + Client, + Metadata, + propagate: PropagateFlags, + status: Status, + credentials: { + createSsl: ChannelCredentials.createSsl, + createFromMetadataGenerator: CallCredentials.createFromMetadataGenerator, + createFromGoogleCredential: notImplementedFn, + combineChannelCredentials: (channelCredentials: ChannelCredentials, + ...callCredentialsList: CallCredentials[]): ChannelCredentials => { + return callCredentialsList.reduce(compose, channelCredentials); + }, + combineCallCredentials: (...callCredentialsList: CallCredentials[]): CallCredentials => { + return callCredentialsList.slice(1).reduce(compose, callCredentialsList[0]); + }, + createInsecure: ChannelCredentials.createInsecure + }, + get setLogger() { return notImplementedFn; }, + get setLogVerbosity() { return notImplementedFn; }, + get ServerCredentials() { return notImplementedFn; }, + get callError() { return notImplementedFn; }, + get writeFlags() { return notImplementedFn; }, + get logVerbosity() { return notImplementedFn; }, + getClientChannel(client: Client) { + return client.getChannel(); + }, + waitForClientReady(client: Client, deadline: number|Date, callback: (err: Error|null) => {}) { + client.waitForReady(deadline, callback); + }, + closeClient(client: Client) { return client.close(); } +}); diff --git a/packages/grpc-surface/index.js b/packages/grpc-surface/index.js index d8bcef5ec..041e49e10 100644 --- a/packages/grpc-surface/index.js +++ b/packages/grpc-surface/index.js @@ -143,5 +143,7 @@ module.exports = function(grpc) { return ServiceClient; }; + exports.makeGenericClientConstructor = exports.makeClientConstructor; + return Object.assign(exports, grpc); };