univ-conv
Version:
The universal binary and text converter
59 lines • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TextConverter = void 0;
const AbstractConverter_1 = require("./AbstractConverter");
const core_1 = require("./core");
const StringUtil_1 = require("./StringUtil");
class TextConverter extends AbstractConverter_1.AbstractConverter {
constructor() {
super(...arguments);
this.type = "text";
}
empty() {
return "";
}
is(input, options) {
return typeof input === "string" && options.inputStringType === "text";
}
async _from(input, options) {
const converter = (0, AbstractConverter_1._)()._find(input, options);
return await converter.toText(input, options);
}
async _getStartEnd(input, options) {
const size = await this.size(input, options);
return (0, core_1.getStartEnd)(options, size);
}
_isEmpty(input) {
return !input;
}
_merge(chunks) {
return Promise.resolve(chunks.join(""));
}
async _size(input, options) {
const u8 = await this._toUint8Array(input, (0, core_1.deleteStartLength)(options));
return u8.byteLength;
}
async _toArrayBuffer(input, options) {
const u8 = await this._toUint8Array(input, options);
return u8.buffer.slice(u8.byteOffset, u8.byteOffset + u8.byteLength);
}
async _toBase64(input, options) {
const u8 = await this._toUint8Array(input, options);
return await (0, AbstractConverter_1._)()._of("uint8array").toBase64(u8, (0, core_1.deleteStartLength)(options));
}
async _toText(input, options) {
if (options.bufferToTextCharset === options.textToBufferCharset &&
(0, core_1.hasNoStartLength)(options)) {
return input;
}
const u8 = await this._toUint8Array(input, options);
const textHelper = await (0, StringUtil_1.getTextHelper)();
return await textHelper.bufferToText(u8, options);
}
async _toUint8Array(input, options) {
const textHelper = await (0, StringUtil_1.getTextHelper)();
return await textHelper.textToBuffer(input, options);
}
}
exports.TextConverter = TextConverter;
//# sourceMappingURL=TextConverter.js.map