UNPKG

kura

Version:

The FileSystem API abstraction library.

77 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.textToBase64 = exports.textToUint8Array = exports.textToBlob = exports.base64ToText = exports.toText = void 0; const BinaryConverter_1 = require("./BinaryConverter"); const FileSystemConstants_1 = require("./FileSystemConstants"); const textEncoder = new TextEncoder(); const textDecoder = new TextDecoder(); async function blobToText(blob) { if (blob.size === 0) { return ""; } const text = await new Promise((resolve, reject) => { const reader = new FileReader(); reader.onerror = (ev) => { reject(reader.error || ev); }; reader.onload = () => { resolve(reader.result); }; reader.readAsText(blob); }); return text; } async function toText(content) { if (!content) { return ""; } let text; if (typeof content === "string") { text = await base64ToText(content); } else if (content instanceof Blob) { text = await blobToText(content); } else if (ArrayBuffer.isView(content)) { text = textDecoder.decode(content); } else { text = textDecoder.decode(new Uint8Array(content)); } return text; } exports.toText = toText; async function base64ToText(base64) { if (!base64) { return ""; } const buffer = await (0, BinaryConverter_1.toArrayBuffer)(base64); const text = await toText(buffer); return text; } exports.base64ToText = base64ToText; function textToBlob(text, type = FileSystemConstants_1.DEFAULT_CONTENT_TYPE) { if (!text) { return new Blob([], FileSystemConstants_1.DEFAULT_BLOB_PROPS); } return new Blob([text], { type }); } exports.textToBlob = textToBlob; function textToUint8Array(text) { if (!text) { return new Uint8Array(new ArrayBuffer(0)); } const u8 = textEncoder.encode(text); return u8; } exports.textToUint8Array = textToUint8Array; async function textToBase64(text) { if (!text) { return ""; } const buffer = textEncoder.encode(text); const base64 = await (0, BinaryConverter_1.toBase64)(buffer); return base64; } exports.textToBase64 = textToBase64; //# sourceMappingURL=TextConverter.js.map