这是开发预览网站。请访问正式文档 lynxjs.org

Home > @lynx-js/genui > MessageStore

MessageStore interface

A pure append-only buffer of raw protocol messages produced by the developer's IO module. The store knows nothing about the v0.9 protocol — it does not parse, process, or interpret messages. It only:

  1. Stores them in arrival order. 2. Notifies subscribers when new ones land. 3. Hands the current snapshot back via getSnapshot() (referentially stable between mutations — required by useSyncExternalStore).

Protocol-aware processing — surfaces, signals, resources, action dispatch — is the responsibility of <A2UI> (the renderer component). Developers who don't want to learn the protocol should use <A2UI>; developers who do can run their own MessageProcessor against the snapshot directly.

Signature:

export interface MessageStore 

Properties

Property

Modifiers

Type

Description

getSnapshot

readonly

() => readonly ServerToClientMessage[]

useSyncExternalStore getSnapshot contract — stable between pushes.

subscribe

readonly

(cb: () => void) => () => void

useSyncExternalStore subscribe contract.

Methods

Method

Description

clear()

Reset the buffer. Notifies subscribers.

push(message)

Append one or more raw messages to the buffer. Notifies subscribers once per call (batches a single array argument into a single notify).