ts-mls
Version:
[](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [](https://badge.fury.io/js/ts-mls) [ => {
switch (mc.wireformat) {
case "mls_public_message":
return encodeMlsPublicMessage(mc);
case "mls_welcome":
return encodeMlsWelcome(mc);
case "mls_private_message":
return encodeMlsPrivateMessage(mc);
case "mls_group_info":
return encodeMlsGroupInfo(mc);
case "mls_key_package":
return encodeMlsKeyPackage(mc);
}
};
export const encodeMlsPublicMessage = contramapEncoders([encodeWireformat, encodePublicMessage], (msg) => [msg.wireformat, msg.publicMessage]);
export const encodeMlsWelcome = contramapEncoders([encodeWireformat, encodeWelcome], (wm) => [wm.wireformat, wm.welcome]);
export const encodeMlsPrivateMessage = contramapEncoders([encodeWireformat, encodePrivateMessage], (pm) => [pm.wireformat, pm.privateMessage]);
export const encodeMlsGroupInfo = contramapEncoders([encodeWireformat, encodeGroupInfo], (gi) => [gi.wireformat, gi.groupInfo]);
export const encodeMlsKeyPackage = contramapEncoders([encodeWireformat, encodeKeyPackage], (kp) => [kp.wireformat, kp.keyPackage]);
export const decodeMlsMessageContent = flatMapDecoder(decodeWireformat, (wireformat) => {
switch (wireformat) {
case "mls_public_message":
return mapDecoder(decodePublicMessage, (publicMessage) => ({ wireformat, publicMessage }));
case "mls_welcome":
return mapDecoder(decodeWelcome, (welcome) => ({ wireformat, welcome }));
case "mls_private_message":
return mapDecoder(decodePrivateMessage, (privateMessage) => ({ wireformat, privateMessage }));
case "mls_group_info":
return mapDecoder(decodeGroupInfo, (groupInfo) => ({ wireformat, groupInfo }));
case "mls_key_package":
return mapDecoder(decodeKeyPackage, (keyPackage) => ({ wireformat, keyPackage }));
}
});
export const encodeMlsMessage = contramapEncoders([encodeProtocolVersion, encodeMlsMessageContent], (w) => [w.version, w]);
export const decodeMlsMessage = mapDecoders([decodeProtocolVersion, decodeMlsMessageContent], (version, mc) => ({ ...mc, version }));
//# sourceMappingURL=message.js.map