UNPKG

jinaga

Version:

Data management for web and mobile applications.

38 lines 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ControlFrameHandler = void 0; class ControlFrameHandler { constructor(onBookmark, onErrorMessage) { this.onBookmark = onBookmark; this.onErrorMessage = onErrorMessage; } handle(frame) { const { keyword, payload } = frame; if (keyword === "BOOK") { if (payload.length !== 2) { throw new Error(`Invalid BOOK frame payload length: ${payload.length}`); } const feed = JSON.parse(payload[0]); const bookmark = JSON.parse(payload[1]); this.onBookmark(feed, bookmark); return; } if (keyword === "ERR") { if (payload.length !== 2) { throw new Error(`Invalid ERR frame payload length: ${payload.length}`); } const feed = JSON.parse(payload[0]); const message = JSON.parse(payload[1]); this.onErrorMessage(feed, message); return; } if (keyword === "ACK") { // ACK confirms subscription is active, payload contains feed // Currently no action needed, but could be used for tracking return; } // Ignore SUB/UNSUB sent from server (defensive) } } exports.ControlFrameHandler = ControlFrameHandler; //# sourceMappingURL=control-frame-handler.js.map