SubscribeMessageRangeArgs
type SubscribeMessageRangeArgs = object;
This type represents the arguments you pass to PanelExtensionContext.subscribeMessageRange.
Properties
topic
topic: string;
Topic to be subscribed to.
convertTo?
optional convertTo: string;
Convert messages to this schema before delivering to the subscriber.
MessageEvents for the subscription will contain the converted message and an
originalMessageEvent field with the original message event. If no convertTo schema is
specified, then no message converters will be used. If no message converter exists for
converting the original schema to the convertTo schema, then no messages are delivered for
this subscription.
onNewRangeIterator()
onNewRangeIterator: (batchIterator) => Promise<void>;
onNewRangeIterator is a function that receives an async iterable when there is message data available on
the subscription.
To read messages, your function should iterate through the provided async iterable. Each item of the iterable is a batch of message events for the subscription's topic. These batches and messages are in log time order. When there are no more messages to read the iterator will finish.
async function onNewRangeIterator(batchIterator) {
for await (const batch of batchIterator) {
//...
}
}
onNewRangeIterator is called again when the upstream topic data changes. I.E subscribing to a
user-script output topic and the user script changes, or subscribing to an aliased topic and
the alias changes. When topic data changes, the previous iterator will end, and its data is no
longer valid. When onNewRangeIterator is called, you should discard previously received data.
If your onNewRangeIterator function throws an error, the iterator will end and you will not receive any
more messages until onNewRangeIterator is called again. Your error will appear in the problems sidebar
for user visibility.
Parameters
| Parameter | Type |
|---|---|
batchIterator | AsyncIterable<Immutable<MessageEvent[]>> |
Returns
Promise<void>
onReset()?
optional onReset: (batchIterator) => Promise<void>;
Parameters
| Parameter | Type |
|---|---|
batchIterator | AsyncIterable<Immutable<MessageEvent[]>> |
Returns
Promise<void>
Deprecated
This method has been renamed. Use onNewRangeIterator.