@xmtp/content-type-text
Version:
An XMTP content type to support text messages
41 lines (38 loc) • 1.04 kB
JavaScript
import { ContentTypeId } from '@xmtp/content-type-primitives';
const ContentTypeText = new ContentTypeId({
authorityId: "xmtp.org",
typeId: "text",
versionMajor: 1,
versionMinor: 0,
});
var Encoding;
(function (Encoding) {
Encoding["utf8"] = "UTF-8";
Encoding["unknown"] = "unknown";
})(Encoding || (Encoding = {}));
class TextCodec {
get contentType() {
return ContentTypeText;
}
encode(content) {
return {
type: ContentTypeText,
parameters: { encoding: Encoding.utf8 },
content: new TextEncoder().encode(content),
};
}
decode(content) {
if (content.parameters.encoding !== Encoding.utf8) {
throw new Error(`unrecognized encoding ${content.parameters.encoding}`);
}
return new TextDecoder().decode(content.content);
}
fallback() {
return undefined;
}
shouldPush() {
return true;
}
}
export { ContentTypeText, Encoding, TextCodec };
//# sourceMappingURL=index.js.map