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

<Meta title='@dxtmisha/ru/scripts/Classes/DesignFigma - Класс интеграции макетов Figma'/>

# Класс DesignFigma

Класс `DesignFigma` обеспечивает базовое поведение контроллера для подключения к Figma REST API и извлечения координат макетов и структур векторных изображений. Он абстрагирует авторизацию токенов и упрощает пакетные запросы изображений узлов в чистые асинхронные рабочие процессы.

> **Внимание**: Для использования этого класса и взаимодействия с целевыми эндпоинтами Figma строго требуется наличие корпоративной подписки Figma (Figma Enterprise или Organization).

## Ключевые возможности

- **Развязанная авторизация API** — автоматически использует системные свойства для получения активного токена Figma.
- **Опции генерации SVG** — запрашивает узлы с сохранением тегов исходных идентификаторов и параметров обводки текста.
- **Безопасное сетевое выполнение** — корректно обрабатывает сетевые ошибки и ограничения API, возвращая безопасные значения `undefined` в качестве альтернативы.

## Инициализация

Инициализируйте новый экземпляр `DesignFigma` с необходимыми учетными данными целевого файла Figma.

**Параметры:**
- `fileKey: string` — Уникальный идентификатор целевого файла Figma.
- `nodeId?: string` — Конкретный идентификатор узла внутри файла для нацеливания.
- `token?: string` — Необязательный токен Figma API. По умолчанию используется значение `PropertiesConfig.getFigmaToken()`.

```typescript
import { DesignFigma } from '@dxtmisha/scripts'

const integrator = new DesignFigma('abc123xyz456', '1-24')
await integrator.make()
```

## Методы

### `make`

Основной оркестрирующий метод, который запускает получение векторных ресурсов и выводит результирующее сопоставление в консоль.

**Возвращает:** `Promise<void>`

```typescript
await integrator.make()
```

### `initImage`

Запрашивает URL-адреса изображений векторных макетов из Figma API для указанных идентификаторов узлов в формате SVG.

**Возвращает:** `Promise<Record<string, string> | undefined>` — Промис, разрешающийся в объект, сопоставляющий идентификаторы узлов с соответствующими URL-адресами SVG, или `undefined` в случае ошибки.

```typescript
const images = await integrator.initImage()
console.log(images) // { "1-24": "https://..." }
```
