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

<Meta title='@dxtmisha/vi/figma-code/Classes/FigmaPluginMessenger - Trình nhắn tin plugin (Backend)'/>

# Lớp `FigmaPluginMessenger`

Một trình nhắn tin chuyên dụng cho phía backend của plugin Figma. Nó mở rộng `FigmaPostAbstract` để cung cấp một lớp giao tiếp mạnh mẽ giữa logic chính của plugin (phía mã) và giao diện người dùng (UI).

## Các tính năng chính

- **Kiến trúc Singleton** — Sử dụng `getInstance()` để đảm bảo tất cả các phần của plugin đều sử dụng cùng một trung tâm giao tiếp.
- **API đơn giản hóa** — Bọc các tiêu chuẩn `figma.ui.postMessage` và `figma.ui.onmessage` vào một giao diện dễ quản lý hơn.
- **An toàn kiểu dữ liệu** — Hỗ trợ các kiểu generic cho tin nhắn để đảm bảo tính nhất quán của dữ liệu.

## Khởi tạo

Truy cập thực thể singleton bằng phương thức tĩnh `getInstance()`.

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

const messenger = FigmaPluginMessenger.getInstance()
```

## Các phương thức

### Giao tiếp (Communication)

Các phương thức để gửi và nhận tin nhắn.

- `post<Message>(type: string, message?: Message): void` — Gửi tin nhắn thuộc một loại cụ thể đến UI của Figma.
- `add(type: string, callback: (data: any) => void): this` — (Kế thừa) Đăng ký một trình lắng nghe cho các tin nhắn từ UI.
- `remove(type: string): this` — (Kế thừa) Xóa một trình lắng nghe.
