UNPKG

@dtinsight/dt-utils

Version:

袋鼠云前端常用工具库

46 lines (45 loc) 1.58 kB
import { toBase64 as _toBase64 } from 'js-base64'; import getTypeOfValue from '../getTypeOfValue'; /** * 将值转换为Base64编码的字符串。 * * @category 转换 * * @param {File | Blob | string} value - 需要转换为Base64的值。支持File、string或其他原始类型 * @returns {Promise<string | null | undefined>} 返回一个Promise,解析为Base64编码的字符串。如果输入为null/undefined则返回原始值 * * @example * ```typescript * import { toBase64 } from 'dt-utils'; * * // 将字符串转换为Base64 * const str = 'Hello World'; * const base64Str = await toBase64(str); * console.log(base64Str); // 'SGVsbG8gV29ybGQ=' * * // 将文件转换为Base64 * const file = new File(['file content'], 'test.txt'); * const base64File = await toBase64(file); * console.log(base64File); // 'data:text/plain;base64,ZmlsZSBjb250ZW50' * * // 处理null值 * const result = await toBase64(null); * console.log(result); // null * ``` */ var toBase64 = function (value) { if (value === undefined || value === null) return Promise.resolve(value); return new Promise(function (resolve, reject) { if (['blob', 'file'].includes(getTypeOfValue(value))) { var reader_1 = new FileReader(); reader_1.readAsDataURL(value); reader_1.onload = function () { return resolve(reader_1.result); }; reader_1.onerror = function (error) { return reject(error); }; } else { resolve(_toBase64(String(value))); } }); }; export default toBase64;