From 9ea40c58f07b84bb6042962d162661a463d1a3d4 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 14 Nov 2016 10:43:26 -0800 Subject: [PATCH] Make Node library compatible with lodash 3 --- src/node/src/common.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/node/src/common.js b/src/node/src/common.js index c6c6d597a88..98eabf5c0b8 100644 --- a/src/node/src/common.js +++ b/src/node/src/common.js @@ -141,8 +141,14 @@ exports.getProtobufServiceAttrs = function getProtobufServiceAttrs(service, binaryAsBase64 = options.binaryAsBase64; longsAsStrings = options.longsAsStrings; } - return _.fromPairs(_.map(service.children, function(method) { - return [_.camelCase(method.name), { + /* This slightly awkward construction is used to make sure we only use + lodash@3.10.1-compatible functions. A previous version used + _.fromPairs, which would be cleaner, but was introduced in lodash + version 4 */ + return _.zipObject(_.map(service.children, function(method) { + return _.camelCase(method.name); + }), _.map(service.children, function(method) { + return { path: prefix + method.name, requestStream: method.requestStream, responseStream: method.responseStream, @@ -150,11 +156,11 @@ exports.getProtobufServiceAttrs = function getProtobufServiceAttrs(service, responseType: method.resolvedResponseType, requestSerialize: serializeCls(method.resolvedRequestType.build()), requestDeserialize: deserializeCls(method.resolvedRequestType.build(), - binaryAsBase64, longsAsStrings), + binaryAsBase64, longsAsStrings), responseSerialize: serializeCls(method.resolvedResponseType.build()), responseDeserialize: deserializeCls(method.resolvedResponseType.build(), - binaryAsBase64, longsAsStrings) - }]; + binaryAsBase64, longsAsStrings) + }; })); };