UNPKG

rcs-data

Version:

RCS消息数据结构

55 lines 1.79 kB
"use strict"; 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