UNPKG

channelstate

Version:

A lightweight cross-context state management library built on the BroadcastChannel API.

21 lines (16 loc) 1.36 kB
import { C as CreateChannelStateOptions, a as ChannelStateApi } from './shared/channelstate.CFFwuxVi.js'; export { d as ChannelApi, b as ChannelMessage, c as ChannelMessageReceived, e as ChannelStateCreator, f as createChannelStateImpl } from './shared/channelstate.CFFwuxVi.js'; import { Draft } from 'immer'; import { MaybePartial } from './vanilla.js'; interface CreatePrimaryChannelStateOptions extends CreateChannelStateOptions { } interface CreateReplicaChannelStateOptions extends CreateChannelStateOptions { } type SetChannelState<T> = (nextStateOrUpdater: MaybePartial<T> | ((draft: Draft<T>) => void), replace?: boolean) => void; type UseChannelState<T> = ChannelStateApi<T> & (() => [state: T, setState: SetChannelState<T>]); declare function create<TState extends object, TOption extends CreateChannelStateOptions>(isPrimary: boolean, channelName: string, initialState: TState, options?: TOption): UseChannelState<TState>; declare namespace create { var primary: <T extends object>(channelName: string, initialState: T, options?: CreatePrimaryChannelStateOptions) => UseChannelState<T>; var replica: <T extends object>(channelName: string, initialState: T, options?: CreateReplicaChannelStateOptions) => UseChannelState<T>; } export { ChannelStateApi, CreateChannelStateOptions, type SetChannelState, type UseChannelState, create };