UNPKG

simple-pure-utils

Version:

Funciones puras para manipulación de objetos, arreglos, promesas y observables

86 lines • 6.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.blobToString = exports.stringToBlob = exports.base64ToBlob = exports.stringToBase64 = exports.base64ToString = exports.blobToBase64 = void 0; /**Convierte un Blob a una cadena base64 */ function blobToBase64(archivo) { return new Promise(resolve => { const reader = new FileReader(); reader.onload = function () { const dataUrl = reader.result; if (typeof dataUrl != "string") { throw new Error("No se pudo convertir a base64 ya que el FileReader devolvio un dataUrl que no es string"); } //Caso especial, si el blob viene vacio esto devuelve "data:" if (dataUrl == "data:") resolve(""); const base64Prefix = "base64,"; const base64 = dataUrl.substring(dataUrl.indexOf(base64Prefix) + base64Prefix.length); resolve(base64); }; reader.readAsDataURL(archivo); }); } exports.blobToBase64 = blobToBase64; /**Decodifica una cadena a base64 */ function base64ToString(base64) { if (typeof (atob) != "undefined") { return atob(base64); } else { return Buffer.from(base64, 'base64').toString(); } } exports.base64ToString = base64ToString; /**Codifica una cadena a base64 */ function stringToBase64(str) { if (typeof (btoa) != "undefined") { return btoa(str); } else { return Buffer.from(str).toString('base64'); } } exports.stringToBase64 = stringToBase64; /**Convierte una cadena base64 a un blob */ function base64ToBlob(base64, contentType) { //Este codigo fue tomado de //http://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript#16245768 contentType = contentType || ''; var byteCharacters = base64ToString(base64); return stringToBlob(byteCharacters, contentType); } exports.base64ToBlob = base64ToBlob; /**Convierte una cadena binaria en un blob */ function stringToBlob(value, contentType) { const sliceSize = 512; const byteArrays = []; for (let offset = 0; offset < value.length; offset += sliceSize) { const slice = value.slice(offset, offset + sliceSize); const byteNumbers = new Array(slice.length); for (let i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } var byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } var blob = new Blob(byteArrays, { type: contentType }); return blob; } exports.stringToBlob = stringToBlob; /**Convierte un blob a una cadena */ function blobToString(value) { const reader = new FileReader(); return new Promise((resolve, reject) => { reader.onload = function () { if (typeof reader.result == "string") { resolve(reader.result); } else { reject(new Error("No se pudo convertir a base64 ya que el FileReader devolvio un dataUrl que no es string")); } }; reader.readAsText(value); }); } exports.blobToString = blobToString; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2U2NC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBMkM7QUFDM0MsU0FBZ0IsWUFBWSxDQUFDLE9BQWE7SUFDdEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDWixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzlCLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUM7YUFDOUc7WUFFRCw2REFBNkQ7WUFDN0QsSUFBSSxPQUFPLElBQUksT0FBTztnQkFDbEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQTtZQUM5QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ3JGLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQW5CRCxvQ0FtQkM7QUFFRCxvQ0FBb0M7QUFDcEMsU0FBZ0IsY0FBYyxDQUFDLE1BQWM7SUFDekMsSUFBRyxPQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3ZCO1NBQU07UUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFD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