@google-cloud/common
Advanced tools
Comparing version 0.3.0 to 0.4.0
{ | ||
"name": "@google-cloud/common", | ||
"version": "0.3.0", | ||
"version": "0.4.0", | ||
"author": "Google Inc.", | ||
@@ -51,3 +51,3 @@ "description": "Common components for Google Cloud APIs Node.js Client Libraries", | ||
"google-proto-files": "^0.7.0", | ||
"grpc": "^0.14.1", | ||
"grpc": "^1.0.0", | ||
"is": "^3.0.1", | ||
@@ -54,0 +54,0 @@ "methmeth": "^1.0.0", |
@@ -76,6 +76,17 @@ /*! | ||
GrpcServiceObject.prototype.getMetadata = function(callback) { | ||
var self = this; | ||
var protoOpts = this.methods.getMetadata.protoOpts; | ||
var reqOpts = this.methods.getMetadata.reqOpts; | ||
this.request(protoOpts, reqOpts, callback); | ||
this.request(protoOpts, reqOpts, function(err, resp) { | ||
if (err) { | ||
callback(err, null, resp); | ||
return; | ||
} | ||
self.metadata = resp; | ||
callback(null, self.metadata, resp); | ||
}); | ||
}; | ||
@@ -82,0 +93,0 @@ |
@@ -141,2 +141,3 @@ /*! | ||
* @param {string} config.baseUrl - The base URL to make API requests to. | ||
* @param {object} config.grpcMetadata - Metadata to send with every request. | ||
* @param {string[]} config.scopes - The scopes required for the request. | ||
@@ -162,2 +163,12 @@ * @param {string} config.service - The name of the service. | ||
this.grpcMetadata = new grpc.Metadata(); | ||
if (config.grpcMetadata) { | ||
for (var prop in config.grpcMetadata) { | ||
if (config.grpcMetadata.hasOwnProperty(prop)) { | ||
this.grpcMetadata.add(prop, config.grpcMetadata[prop]); | ||
} | ||
} | ||
} | ||
this.maxRetries = options.maxRetries; | ||
@@ -232,4 +243,6 @@ | ||
var service = this.getService_(protoOpts); | ||
var metadata = this.grpcMetadata; | ||
var grpcOpts = {}; | ||
if (is.number(protoOpts.timeout)) { | ||
@@ -254,5 +267,5 @@ grpcOpts.deadline = GrpcService.createDeadline_(protoOpts.timeout); | ||
service[protoOpts.method](reqOpts, grpcOpts, function(err, resp) { | ||
if (err) { | ||
respError = GrpcService.decorateError_(err); | ||
service[protoOpts.method](reqOpts, metadata, grpcOpts, function(e, resp) { | ||
if (e) { | ||
respError = GrpcService.decorateError_(e); | ||
@@ -264,3 +277,3 @@ if (respError) { | ||
onResponse(err, resp); | ||
onResponse(e, resp); | ||
return; | ||
@@ -338,3 +351,3 @@ } | ||
request: function() { | ||
return service[protoOpts.method](reqOpts, grpcOpts) | ||
return service[protoOpts.method](reqOpts, self.grpcMetadata, grpcOpts) | ||
.on('metadata', function() { | ||
@@ -468,2 +481,17 @@ // retry-request requires a server response before it starts emitting | ||
/** | ||
* Checks for a grpc status code and extends the error object with additional | ||
* information. | ||
* | ||
* @private | ||
* | ||
* @param {error|object} err - The grpc error. | ||
* @return {error|null} | ||
*/ | ||
GrpcService.decorateError_ = function(err) { | ||
var errorObj = is.error(err) ? err : {}; | ||
return GrpcService.decorateGrpcResponse_(errorObj, err); | ||
}; | ||
/** | ||
* Checks for a grpc status code and extends the supplied object with additional | ||
@@ -481,6 +509,16 @@ * information. | ||
var defaultResponseDetails = GRPC_ERROR_CODE_TO_HTTP[response.code]; | ||
var message = defaultResponseDetails.message; | ||
if (response.message) { | ||
// gRPC error messages can be either stringified JSON or strings. | ||
try { | ||
message = JSON.parse(response.message).description; | ||
} catch(e) { | ||
message = response.message; | ||
} | ||
} | ||
return extend(true, obj, response, { | ||
code: defaultResponseDetails.code, | ||
message: response.message || defaultResponseDetails.message | ||
message: message | ||
}); | ||
@@ -493,16 +531,2 @@ } | ||
/** | ||
* Checks for a grpc status code and extends the error object with additional | ||
* information. | ||
* | ||
* @private | ||
* | ||
* @param {error|object} err - The grpc error. | ||
* @return {error|null} | ||
*/ | ||
GrpcService.decorateError_ = function(err) { | ||
var errorObj = is.error(err) ? new Error() : {}; | ||
return GrpcService.decorateGrpcResponse_(errorObj, err); | ||
}; | ||
/** | ||
* Checks for grpc status code and extends the status object with additional | ||
@@ -509,0 +533,0 @@ * information |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2059
66597
9
+ Added@mapbox/node-pre-gyp@1.0.11(transitive)
+ Added@types/bytebuffer@5.0.49(transitive)
+ Added@types/long@3.0.32(transitive)
+ Added@types/node@22.5.5(transitive)
+ Addedabbrev@1.1.1(transitive)
+ Addedagent-base@6.0.2(transitive)
+ Addedansi-regex@5.0.1(transitive)
+ Addedaproba@2.0.0(transitive)
+ Addedare-we-there-yet@2.0.0(transitive)
+ Addedbytebuffer@5.0.1(transitive)
+ Addedchownr@2.0.0(transitive)
+ Addedcolor-support@1.1.3(transitive)
+ Addedconsole-control-strings@1.1.0(transitive)
+ Addeddebug@4.3.7(transitive)
+ Addeddelegates@1.0.0(transitive)
+ Addeddetect-libc@2.0.3(transitive)
+ Addedemoji-regex@8.0.0(transitive)
+ Addedfs-minipass@2.1.0(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedgauge@3.0.2(transitive)
+ Addedglob@7.2.3(transitive)
+ Addedgrpc@1.24.11(transitive)
+ Addedhas-unicode@2.0.1(transitive)
+ Addedhttps-proxy-agent@5.0.1(transitive)
+ Addedis-fullwidth-code-point@3.0.0(transitive)
+ Addedlodash.camelcase@4.3.0(transitive)
+ Addedlodash.clone@4.5.0(transitive)
+ Addedlong@3.2.0(transitive)
+ Addedmake-dir@3.1.0(transitive)
+ Addedminipass@3.3.65.0.0(transitive)
+ Addedminizlib@2.1.2(transitive)
+ Addedmkdirp@1.0.4(transitive)
+ Addedms@2.1.3(transitive)
+ Addednode-fetch@2.7.0(transitive)
+ Addednopt@5.0.0(transitive)
+ Addednpmlog@5.0.1(transitive)
+ Addedobject-assign@4.1.1(transitive)
+ Addedprotobufjs@5.0.3(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedrimraf@3.0.2(transitive)
+ Addedsemver@6.3.17.6.3(transitive)
+ Addedset-blocking@2.0.0(transitive)
+ Addedsignal-exit@3.0.7(transitive)
+ Addedstring-width@4.2.3(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedstrip-ansi@6.0.1(transitive)
+ Addedtar@6.2.1(transitive)
+ Addedtr46@0.0.3(transitive)
+ Addedundici-types@6.19.8(transitive)
+ Addedwebidl-conversions@3.0.1(transitive)
+ Addedwhatwg-url@5.0.0(transitive)
+ Addedwide-align@1.1.5(transitive)
+ Addedyallist@4.0.0(transitive)
- Removedarguejs@0.2.3(transitive)
- Removedbufferview@1.0.1(transitive)
- Removedbytebuffer@4.1.0(transitive)
- Removedglob@5.0.15(transitive)
- Removedgrpc@0.14.1(transitive)
- Removedlodash@3.10.1(transitive)
- Removedlong@2.4.0(transitive)
- Removedprotobufjs@4.1.3(transitive)
Updatedgrpc@^1.0.0