zustand-duck
Version:
Simple reducer writing and cross-process state sharing.
14 lines (13 loc) • 677 B
TypeScript
import { Mutate, StoreApi, StoreMutatorIdentifier } from "zustand";
export type SharedDuckChannelListener = (channel: string, event: 'add' | 'remove') => void;
export declare class SharedDuckChannels {
private defaultChannel;
private listeners;
get default(): string;
set default(channel: string);
notify(channel: string, event: 'add' | 'remove'): void;
subscribe(listener: SharedDuckChannelListener): () => void;
}
export declare const shareWithChannels: <T, Mos extends [StoreMutatorIdentifier, unknown][] = [], R = Mutate<StoreApi<T>, Mos>>(channels: SharedDuckChannels, creator: (channel: string) => R) => R & {
channel: (name: string) => R;
};