rcs-data
Version:
RCS消息数据结构
55 lines • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Text = void 0;
const RcsMsgInitial_1 = require("./RcsMsgInitial");
const mime_1 = require("../mime");
const base64js = require('base64-js');
class Text extends RcsMsgInitial_1.RcsMsgInitial {
constructor(input) {
let plaintext;
if (input instanceof mime_1.Entity) {
if (input.contentTransferEncoding) {
if (input.contentTransferEncoding.toLowerCase() === 'base64') {
let decoder = new TextDecoder();
plaintext = decoder.decode(base64js.toByteArray(input.body));
}
}
else {
plaintext = input.body;
}
}
else if (typeof input === 'string') {
plaintext = input;
}
else {
throw Error('不支持的输入类型');
}
const encoder = new TextEncoder();
let bytearr = encoder.encode(plaintext);
let b64 = base64js.fromByteArray(bytearr);
let mime = (0, mime_1.factory)({
contentType: 'text/plain;charset=utf-8',
contentTransferEncoding: 'base64',
body: b64,
});
mime.header('Content-Length', b64.length);
super(mime);
this._content = plaintext;
}
get contentTransferEncoding() {
return this.mime.contentTransferEncoding;
}
get content() {
return this._content;
}
get messagePlainObject() {
let msg = {
contentType: this.contentType.value,
contentEncoding: this.contentTransferEncoding,
contentText: this.mime.body,
};
return msg;
}
}
exports.Text = Text;
//# sourceMappingURL=Text.js.map