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

<Meta title='@dxtmisha/ru/figma-code/Classes/FigmaPluginMessenger - Мессенджер плагина (Backend)'/>

# Класс `FigmaPluginMessenger`

Специализированный мессенджер для фоновой части (backend) плагина Figma. Он расширяет `FigmaPostAbstract`, обеспечивая надежный уровень связи между основной логикой плагина (сторона кода) и его пользовательским интерфейсом (UI).

## Ключевые особенности

- **Архитектура Синглтон** — Используйте `getInstance()`, чтобы гарантировать, что все части плагина используют один и тот же центр связи.
- **Упрощенный API** — Оборачивает стандартные методы `figma.ui.postMessage` и `figma.ui.onmessage` в более удобный интерфейс.
- **Типобезопасность** — Поддерживает генерики для сообщений, обеспечивая согласованность данных.

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

Доступ к единственному экземпляру осуществляется через статический метод `getInstance()`.

```typescript
import { FigmaPluginMessenger } from '@dxtmisha/figma-code'

const messenger = FigmaPluginMessenger.getInstance()
```

## Методы

### Связь

Методы для отправки и получения сообщений.

- `post<Message>(type: string, message?: Message): void` — Отправляет сообщение определенного типа в UI Figma.
- `add(type: string, callback: (data: any) => void): this` — (Наследуется) Регистрирует слушателя для сообщений из UI.
- `remove(type: string): this` — (Наследуется) Удаляет слушателя.
