Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function grpcResponseFromError(e: {id: string, properties: any, message: string, reasons?: string[]}): any {
// Create response object.
const resp = new statusproto.Status();
resp.setCode(grpc.status.UNKNOWN);
resp.setMessage(e.message);
const metadata = new grpc.Metadata();
if (e.id) {
// Object created successfully, but failed to initialize. Pack initialization failure into
// details.
const detail = new provproto.ErrorResourceInitFailed();
detail.setId(e.id);
detail.setProperties(structproto.Struct.fromJavaScript(e.properties || {}));
detail.setReasonsList(e.reasons || []);
const details = new anyproto.Any();
details.pack(detail.serializeBinary(), "pulumirpc.ErrorResourceInitFailed");
// Add details to metadata.
resp.addDetails(details);
// NOTE: `grpc-status-details-bin` is a magic field that allows us to send structured
// protobuf data as an error back through gRPC. This notion of details is a first-class in
// the Go gRPC implementation, and the nodejs implementation has not quite caught up to it,
// which is why it's cumbersome here.
metadata.add("grpc-status-details-bin", Buffer.from(resp.serializeBinary()));
}
return {
code: grpc.status.UNKNOWN,
message: e.message,
metadata: metadata,
};
_p.pack = function(message) {
var any = new Any()
, typeName = this.getTypeNameForMessage(message) // e.g. 'fontbakery.dashboard.Files'
;
any.pack(message.serializeBinary(), typeName);
return any;
};
proto.forge_abi.CreateAssetTx.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setMoniker(value);
break;
case 2:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setData(value);
break;
case 3:
var value = /** @type {boolean} */ (reader.readBool());
msg.setReadonly(value);
break;
case 4:
var value = /** @type {boolean} */ (reader.readBool());
msg.setTransferrable(value);
break;
case 5:
var value = /** @type {number} */ (reader.readUint32());
msg.setTtl(value);
break;
case 6:
proto.examplecom.WellKnownMessage.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = new google_protobuf_compiler_plugin_pb.CodeGeneratorRequest;
reader.readMessage(value,google_protobuf_compiler_plugin_pb.CodeGeneratorRequest.deserializeBinaryFromReader);
msg.setMyCodeGeneratorRequest(value);
break;
case 2:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setMyAny(value);
break;
case 3:
var value = new google_protobuf_api_pb.Method;
reader.readMessage(value,google_protobuf_api_pb.Method.deserializeBinaryFromReader);
msg.setMyMethod(value);
break;
case 4:
var value = new google_protobuf_descriptor_pb.GeneratedCodeInfo;
reader.readMessage(value,google_protobuf_descriptor_pb.GeneratedCodeInfo.deserializeBinaryFromReader);
msg.setMyGeneratedCodeInfo(value);
break;
case 5:
var value = new google_protobuf_duration_pb.Duration;
reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);
case 2:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setMetadata(value);
break;
case 3:
var value = /** @type {boolean} */ (reader.readBool());
msg.setDone(value);
break;
case 4:
var value = new google_rpc_status_pb.Status;
reader.readMessage(value,google_rpc_status_pb.Status.deserializeBinaryFromReader);
msg.setError(value);
break;
case 5:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setResponse(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setTo(value);
break;
case 2:
var value = new type_pb.BigUint;
reader.readMessage(value,type_pb.BigUint.deserializeBinaryFromReader);
msg.setValue(value);
break;
case 3:
var value = /** @type {string} */ (reader.readString());
msg.addAssets(value);
break;
case 15:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setData(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
msg.addAssets(value);
break;
case 3:
var value = /** @type {string} */ (reader.readString());
msg.setReceiver(value);
break;
case 4:
var value = /** @type {!Uint8Array} */ (reader.readBytes());
msg.setHashlock(value);
break;
case 5:
var value = /** @type {number} */ (reader.readUint32());
msg.setLocktime(value);
break;
case 15:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setData(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
break;
case 9:
var value = /** @type {string} */ (reader.readString());
msg.addSources(value);
break;
case 10:
var value = new proto.forge_abi.CodeInfo;
reader.readMessage(value,proto.forge_abi.CodeInfo.deserializeBinaryFromReader);
msg.addCode(value);
break;
case 11:
var value = /** @type {string} */ (reader.readString());
msg.addTags(value);
break;
case 15:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setData(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
proto.google.longrunning.Operation.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setName(value);
break;
case 2:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setMetadata(value);
break;
case 3:
var value = /** @type {boolean} */ (reader.readBool());
msg.setDone(value);
break;
case 4:
var value = new google_rpc_status_pb.Status;
reader.readMessage(value,google_rpc_status_pb.Status.deserializeBinaryFromReader);
msg.setError(value);
break;
case 5:
var value = new google_protobuf_any_pb.Any;
reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
msg.setResponse(value);