UNPKG

@foxglove/rosbag2

Version:

ROS 2 (Robot Operating System) bag reader and writer abstract implementation

36 lines 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageIterator = void 0; /** * MessageIterator is a helper class to convert raw table rows into Message instances as an * asynchronous iterator. */ class MessageIterator { constructor(rowIterators, decoder) { this.rowIterators = rowIterators; this.decoder = decoder; } [Symbol.asyncIterator]() { return this; } async next() { while (this.rowIterators.length > 0) { const front = this.rowIterators[0]; const res = await front.next(); if (res.done === true) { this.rowIterators.shift(); continue; } const rawMessage = res.value; const { topic, timestamp, data } = rawMessage; if (this.decoder == undefined) { return { value: { topic, timestamp, data, value: undefined }, done: false }; } const value = { topic, timestamp, data, value: this.decoder(rawMessage) }; return { value, done: false }; } return { value: undefined, done: true }; } } exports.MessageIterator = MessageIterator; //# sourceMappingURL=MessageIterator.js.map