I'm using node to communicate with a gRPC server, here is an example of generated request ts
export class GetUserByFQDNRequest extends jspb.Message {
getEnvironmentId(): string;
setEnvironmentId(value: string): void;
getFqdn(): string;
setFqdn(value: string): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): GetUserByFQDNRequest.AsObject;
static toObject(includeInstance: boolean, msg: GetUserByFQDNRequest): GetUserByFQDNRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: GetUserByFQDNRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): GetUserByFQDNRequest;
static deserializeBinaryFromReader(message: GetUserByFQDNRequest, reader: jspb.BinaryReader): GetUserByFQDNRequest;
}
export namespace GetUserByFQDNRequest {
export type AsObject = {
environmentId: string,
fqdn: string,
}
}
and we are creating and sending a request in the following way:
const request = new users.GetUserByFQDNRequest();
request.setEnvironmentId(environmentId);
request.setFqdn(fqdn);
usersServiceClient.getUserByFQDN(request, setTimeout(timeoutMilliseconds), (err: ServiceError | null, response: users.GetUserByFQDNResponse)
I'm looking for a way to use the RequestType.AsObject type to create a request, for example:
const request: GetUserByFQDNRequest.AsObject = {environmentId: "envID", fqdn: "fqdn"};
but unfortunately I can't use it in my usersServiceClient.getUserByFQDN since I'm getting the following error:
TS2345: Argument of type 'AsObject' is not assignable to parameter of type 'GetUserByFQDNRequest'
in the generated ts file there is a static method which convert the request to AsObject:
static toObject(includeInstance: boolean, msg: GetUserByFQDNRequest): GetUserByFQDNRequest.AsObject;
but sadly not the other way around.
Is there any way to convert AsObject to a request class without building a converter for each type of a gRPC request?