UNPKG

synapse-storage

Version:

Набор инструментов для управления состоянием и апи-запросами

45 lines (44 loc) 1.49 kB
interface BroadcastMessage<T = unknown> { type: string; payload?: T; senderId: string; targetId?: string; timestamp: number; } type MessageHandler<T> = (message: BroadcastMessage<T>) => void | Promise<void>; type SyncRequestHandler<T> = () => T | Promise<T>; export declare class SyncBroadcastChannel<T = unknown> { private channel; private readonly tabId; private messageHandlers; private syncHandler?; private syncTimeoutMs; private closed; private pendingSyncRequests; constructor(channelName: string); private error; private handleMessage; private handleError; private postMessage; /** * Подписка на сообщения канала */ subscribe(handler: MessageHandler<T>): () => boolean; /** * Установка обработчика запросов на синхронизацию */ setSyncHandler(handler: SyncRequestHandler<T>): void; /** * Отправка сообщения всем подписчикам */ broadcast(type: string, payload?: T): void; /** Закрыт ли канал (dev double-mount / teardown). Потребители могут пропустить initial-sync. */ get isClosed(): boolean; /** Запрос синхронизации данных с других вкладок. */ requestSync(): Promise<T | null>; /** * Закрытие канала */ close(): void; } export {};