Franck Royer 82aba32f9e
Migrate from ts-proto to protons
The latter does not bring Buffer/Long and is ESM compatible.
2022-06-20 14:32:20 +10:00

37 lines
841 B
TypeScript

import { v4 as uuid } from "uuid";
import * as proto from "../../proto/light_push";
import { WakuMessage } from "../waku_message";
export class PushRPC {
public constructor(public proto: proto.PushRPC) {}
static createRequest(message: WakuMessage, pubSubTopic: string): PushRPC {
return new PushRPC({
requestId: uuid(),
request: {
message: message.proto,
pubSubTopic: pubSubTopic,
},
response: undefined,
});
}
static decode(bytes: Uint8Array): PushRPC {
const res = proto.PushRPC.decode(bytes);
return new PushRPC(res);
}
encode(): Uint8Array {
return proto.PushRPC.encode(this.proto);
}
get query(): proto.PushRequest | undefined {
return this.proto.request;
}
get response(): proto.PushResponse | undefined {
return this.proto.response;
}
}