univ-conv
Version:
The universal binary and text converter
55 lines • 1.98 kB
JavaScript
import { _, AbstractConverter } from "./AbstractConverter";
import { deleteStartLength, getStartEnd, hasNoStartLength, } from "./core";
import { getTextHelper } from "./StringUtil";
export class TextConverter extends 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 = _()._find(input, options);
return await converter.toText(input, options);
}
async _getStartEnd(input, options) {
const size = await this.size(input, options);
return getStartEnd(options, size);
}
_isEmpty(input) {
return !input;
}
_merge(chunks) {
return Promise.resolve(chunks.join(""));
}
async _size(input, options) {
const u8 = await this._toUint8Array(input, 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 _()._of("uint8array").toBase64(u8, deleteStartLength(options));
}
async _toText(input, options) {
if (options.bufferToTextCharset === options.textToBufferCharset &&
hasNoStartLength(options)) {
return input;
}
const u8 = await this._toUint8Array(input, options);
const textHelper = await getTextHelper();
return await textHelper.bufferToText(u8, options);
}
async _toUint8Array(input, options) {
const textHelper = await getTextHelper();
return await textHelper.textToBuffer(input, options);
}
}
//# sourceMappingURL=TextConverter.js.map