UNPKG

simple-pure-utils

Version:

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

77 lines • 6.11 kB
/**Convierte un Blob a una cadena base64 */ export 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); }); } /**Decodifica una cadena a base64 */ export function base64ToString(base64) { if (typeof (atob) != "undefined") { return atob(base64); } else { return Buffer.from(base64, 'base64').toString(); } } /**Codifica una cadena a base64 */ export function stringToBase64(str) { if (typeof (btoa) != "undefined") { return btoa(str); } else { return Buffer.from(str).toString('base64'); } } /**Convierte una cadena base64 a un blob */ export 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); } /**Convierte una cadena binaria en un blob */ export 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; } /**Convierte un blob a una cadena */ export 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); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2U2NC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFhO0lBQ3RDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ1osTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUM5QixJQUFJLE9BQU8sT0FBTyxJQUFJLFFBQVEsRUFBRTtnQkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO2FBQzlHO1lBRUQsNkRBQTZEO1lBQzdELElBQUksT0FBTyxJQUFJLE9BQU87Z0JBQ2xCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVoQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUE7WUFDOUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNyRixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxvQ0FBb0M7QUFDcEMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFjO0lBQ3pDLElBQUcsT0FBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsRUFBRTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN2QjtTQUFNO1FBQ0gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLEVB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