import { Meta, Source } from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/functional-basic/Functions/blobToBase64 - Преобразование Blob в Base64'/>

# `blobToBase64`

Асинхронно преобразует объекты `Blob` или `File` в строку формата Base64 (Data URL).

**Параметры:**
- `blob: Blob` — Объект `Blob` (или `File`) для преобразования.
- `clean: boolean = false` — Если `true`, удаляет префикс Data URL (например, `data:image/png;base64,`).

**Среда выполнения:**
Утилита автоматически определяет доступный метод конвертации:
- **Браузер**: Использует `FileReader` для чтения содержимого.
- **Сервер (SSR)**: Использует `Buffer` и асинхронный метод `blob.arrayBuffer()`.

**Возвращает:**
`Promise<string | undefined>` — Строка Base64 или `undefined`, если конвертация невозможна.

## Примеры

<Source
  language='typescript'
  code={`
import { blobToBase64 } from '@dxtmisha/functional-basic'

// 1. По умолчанию (возвращает Data URL)
const dataUrl = await blobToBase64(file)
// 'data:image/png;base64,iVBORw0KGgo...'

// 2. Чистый Base64 (без префикса)
const rawBase64 = await blobToBase64(file, true)
// 'iVBORw0KGgo...'

// 3. Обработка случая недоступности API
const result = await blobToBase64(blob)
if (result) {
  // работа со строкой
}
  `}
/>
