mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-02 13:53:12 +00:00
* introduce `MessageId` type * fix deprecated import * test: own messages are not used for acks * fix: own messages are not used for ack * fix: own messages are not used for ack * test: do not self-possible-ack * doc: long term solution is SDS protocol change
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { proto_sds_message } from "@waku/proto";
|
|
|
|
export enum MessageChannelEvent {
|
|
MessageSent = "messageSent",
|
|
MessageDelivered = "messageDelivered",
|
|
MessageReceived = "messageReceived",
|
|
MessageAcknowledged = "messageAcknowledged",
|
|
PartialAcknowledgement = "partialAcknowledgement",
|
|
MissedMessages = "missedMessages",
|
|
SyncSent = "syncSent",
|
|
SyncReceived = "syncReceived"
|
|
}
|
|
|
|
export type MessageId = string;
|
|
export type Message = proto_sds_message.SdsMessage;
|
|
export type HistoryEntry = proto_sds_message.HistoryEntry;
|
|
export type ChannelId = string;
|
|
|
|
export function encodeMessage(message: Message): Uint8Array {
|
|
return proto_sds_message.SdsMessage.encode(message);
|
|
}
|
|
|
|
export function decodeMessage(data: Uint8Array): Message {
|
|
return proto_sds_message.SdsMessage.decode(data);
|
|
}
|
|
|
|
export type MessageChannelEvents = {
|
|
[MessageChannelEvent.MessageSent]: CustomEvent<Message>;
|
|
[MessageChannelEvent.MessageDelivered]: CustomEvent<{
|
|
messageId: MessageId;
|
|
sentOrReceived: "sent" | "received";
|
|
}>;
|
|
[MessageChannelEvent.MessageReceived]: CustomEvent<Message>;
|
|
[MessageChannelEvent.MessageAcknowledged]: CustomEvent<MessageId>;
|
|
[MessageChannelEvent.PartialAcknowledgement]: CustomEvent<{
|
|
messageId: MessageId;
|
|
count: number;
|
|
}>;
|
|
[MessageChannelEvent.MissedMessages]: CustomEvent<HistoryEntry[]>;
|
|
[MessageChannelEvent.SyncSent]: CustomEvent<Message>;
|
|
[MessageChannelEvent.SyncReceived]: CustomEvent<Message>;
|
|
};
|